[모각코] TIL정리 및 회고
시작하기에 앞서… 이번 기회를 통해 해킹에 대해 공부할 수 있어서 좋은 경험이었다. 화이트 햇 해커를 꿈꾸는 사람 중 하나로서 기존에는 어떻게 공부해야 할지 감이 안잡혔지만, 이제는 어느정도 방향이 잡히게 된 것 같다. 시작하기 전 방향 해킹은 시스템 해킹, 리버싱, 웹 해킹...
시작하기에 앞서… 이번 기회를 통해 해킹에 대해 공부할 수 있어서 좋은 경험이었다. 화이트 햇 해커를 꿈꾸는 사람 중 하나로서 기존에는 어떻게 공부해야 할지 감이 안잡혔지만, 이제는 어느정도 방향이 잡히게 된 것 같다. 시작하기 전 방향 해킹은 시스템 해킹, 리버싱, 웹 해킹...
08-25 웹해킹 복습 SQL DML 구문이해 DML 구문 이해 SQL DML은 데이터베이스에서 데이터를 조회하거나, 추가/삭제/수정을 수행하는 구문 SELECT 데이터를 조회하는 구문 SELECT 문자열을 시작으로 조회의 결과로 사...
08-21 리버싱 리버싱은 소스 코드가 없는 상태에서 컴파일된 대상 소프트웨어의 구조를 여러 가지 방법으로 분석하고, 메모리 덤프를 비롯한 바이너리 분석 결과를 토대로 동작 원리와 내부 구조를 파악하는 것 리버싱 방법 정적 분석 방법(Static Analysi...
08-18 crackme를 통한 디버거 사용법-1 예제 문제: 2개의 정수를 입력받아 값이 특정 조건을 만족하면 correct!을 출력하고 틀리면 wrong!을 출력 문제 풀이 - 0 프로그램에서 input: 을 출력하고, 숫자 2개를 입력받고, 무언가 받은 숫자를 처...
08-14 패치 Options > Debugging options Events 탭에서 Entry point of main module을 선택하면 처음으로 프로그램을 정지시킬 부분을 설정하는 것 Entry Point는 운영체제가 프로그램을 실행시킬 때 가장 먼저 실행되는 ...
08-11 x64dbg x64dbg는 윈도우 디버거로, UI나 기능 등 많은 면에서 ollydbg를 닮았지만, ollydbg는 소스 코드가 공개되어 있지 않고, 32비트만 지원하는데 x64dbg는 오픈소스이며, 32비트와 64비트 둘다 지원함 x64dbg는 강력한 디스어셈블 ...
08-07 토요일 한 줄 리버싱 실습 코드 #include <stdio.h> int main() { int lv = 2; printf("%x\n", lv); return 0; } 어셈블리어 코드 0x012613EE MOV DWORD PTR SS:...
08-04 수요일 x64 기초 Intro 어셈블리 코드는 기계 코드와 대응되기 때문에, CPU가 어떤 역할을 하고 어떻게 동작하는지를 알아보는 것이 어셈블리 코드를 이해하는데 도움이 됨 CPU는 기본적으로 다음 실행할 명령어를 읽어오고(Fetch)->읽어온 명령어를 해...
07-31 토요일 리버스 엔지니어링 개요 리버스 엔지니어링은 우리말로 역공학이라 불리며 제품, 도구를 분해해서 분석하거나 재조합하는 것 이를 줄여서 리버싱 이라고도 함 개발과 리버싱에 필요한 기초 지식은 거의 동일하며, 각종 어셈블리어, 운영체제, 실행 파일 구조 등 학습해...
07-28 수요일 Sever-side Advanced - File Vulnerability 리눅스 파일 시스템 웹 서버는 Unix 계열의 운영체제가 많이 사용되며, 그중 상당수가 Linux 운영체제 사용 Linux 디렉터리 로그 및 데이터 ...
07-24 토요일 데이터베이스 해킹 웹 언어별 일반적 DBMS 선택 웹 언어 DBMS 공통 특징 ...
07-21 수요일 NoSQL Not Only SQL 로 많이 사용되며 데이터를 다루기 위해 꼭 SQL을 사용하지 않아도 데이터를 다룰 수 있다는 의미를 가짐 SQL을 사용해 데이터를 조회/추가/삭제하는 괸계형 데이터베이스와 달리 SQL을 사용하지...
07-17 토요일 크로스 사이트 스크립팅 크로스 사이트 스크립팅(XSS) 웹 페이지에 스크립트를 삽입할 수 있는 취약점 JavaScript를 통해 공격이 이루어짐 /*msg 파라미터를 출력하는 xss.php 예제*/ <? echo $_GET['msg'];...
07-14 수요일 Sever-side Basic 서버에서는 사용자가 요청 한 데이터를 해석하고 처리한 후 사용자에게 응답 이 과정에서 사용자의 요청 데이터에 의해 발생하는 취약점이 서버사이드 취약점 주 목적 서버 내에 존재하는 사용...
07-10 토요일 1. 개요 웹 어플리케이션이 활성화되면서 중요 서비스들의 다수가 웹을 통해 이뤄지고 있음 수많은 웹 어플리케이션이 공격에 노출되어 있고 대규모 개인정보 유출 등 크고 작은 웹 해킹 사고들이 끊임없이 발생 2. 사례 DDoS 파일 업로드 ...
07-07 수요일 1. 개요 해킹을 공부하다 보면 자칫 기술 자체에만 너무 몰입한 탓에 기술보다 더 중요한 것을 간과하기 쉬움. 대표적으로 법과 윤리와 관련된 부분, 이는 해킹을 이해하는 데 있어서 중요하고 가장 먼저 접해야하는 내용 2. 해커의 종류와 의미 ...
원래 문제를 풀 수 있을 정도의 작은 크기의 부분 문제들로 분할해 각각 해결한 후, 부분 문제의 해답을 잘 모아 원래 문제의 해답을 얻는 방법 크기가 작아질 뿐 문제 자체는 변하지 않기 때문에, 분할은 재귀적인 분할 재귀적인 분할이므로...
알고리즘 단계 현재의 후보 중에서 임의로 수 하나를 선택 pivot이라 부르고 p로 표기 후보 수를 하나씩 p와 비교하여 p보다 작은 수는 집합 S에, 같은 수도 있을 수 있으니 집합 M에 p보다 큰 수는 집합 L로 분류 ...
알고리즘 단계 L의 수를 다섯 개씩 묶는다 -> n/5개의 묶음 존재 각 묶음에 대해, 다섯 개의 수들의 중간값을 찾는다 중간값보다 작은 2개의 수 -> 중간 값 -> 중간값보다 큰 2개의 수 순서로 재배열 ...
Lists, tuples, sets, dictionaries Loop and Lists list는 [e1, e2, …, ek]의 형태로 순서가 유지 되는 mutable, iterable, sequence 자료형 linearly orde...
최단 경로 문제(Shortest Path Problem)는 일상생활에서 자주 경험하는 문제로, 문제 자체의 역사도 깊고, 응용가치도 커 많은 연구가 이루어진 문제 dijkstra는 인접 노드 중 최단 경로의 길이의 노드로 계속해서 이동하여 최소 경로 길이 계산, 적응형 힙 이...