분류 전체보기 (157) 썸네일형 리스트형 [SWING] Web Hacking 02 과제 1 Cookie Cookie (쿠키)는 웹 브라우저에 저장하는 데이터이다. 클라이언트 상태 정보를 로컬에 저장했다가 선별하여 String 형태로 이루어진 Key-value 쌍의 작은 데이터 파일이다. 사용자 인증이 유효한 시간을 명시하고 그 시간이 경과되기 전에는 브라우저가 종료되어도 인증이 유지된다. 이는 Connectionless(클라이언트에게 응답 후 연결을 끊는 비연결지향), Stateless(연결이 끊김과 동시에 통신이 종료되어 정보와 데이터가 유지되지 않음), 이러한 특성을 갖는 HTTP에서 상태를 유지하기 위함이다. HTTP 요청마다 새로운 커넥션을 열기 때문에 사용자 인증을 계속해서 해야한다는 점에 대한 해결책이라 볼 수 있다. 방문 사이트에 로그인 시 "아이디와 비밀번호를 저장하시겠.. [SWING] Web Hacking 01 Web 인터넷은 모든 기종의 컴퓨터들을 연결한 통신망으로 TCP/IP를 사용한다. 웹, 이메일, FTP, DNS 등이 인터넷 서비스에 해당한다. 웹 (World Wide Web)은 하나의 사이트 혹은 사이트들 간의 관계가 복잡하게 얽혀있으며, 하이퍼텍스트 구조를 활용해 수많은 정보들을 연결한다. HTML, HTTP, URL 등으로 구성된다. 웹은 프론트엔드와 백엔드로 나뉜다. 프론트엔드는 눈에 보이는 클라이언트에 위치하는 정적 페이지로 수동적이며 고정적으로 처리되며 단방향 통신이 이루어진다. 주로 사용하는 언어는 HTML, CSS, Javascript 이다. 프레임워크는 Angular JS, Bootstrap을 사용한다. 백엔드는 서버에 위치하는 동적 페이지로 처리도 통신도 실시간으로 이루어진다. 주로 .. [SWING] Reversing 05 UPX 실행 압축된 노트패트 디버깅 UPX 실행 압축된 notepad_upx.exe를 디버깅하여 실행압축에 대한 개념을 이해하는 것이 목표이다. 즉, 코드를 트레이싱하면서 원본 notepad.exe 코드를 찾아내는 것이라고 할 수 있다. https://github.com/upx/upx/releases 위의 링크에서 upx-3.96-win64.zip 을 다운받는다. 코드 트레이싱 명령 위의 것이 원본 EP 코드이고 아래의 것이 실행 압축된 메모장의 EP 코드이다. Notepad_upx.exe를 디버거로 열어보면 위와 같이 UPX EP 코드가 나타난다. UPX 파일 트레이싱을 해볼 것인데, 이때 “루프(Loop)를 만나면 그 역할을 살펴본 후 탈출한다” 라는 방대한 코드에 대한 원칙이 있다고 한다. 압축 해.. [SWING] Reversing 04 과제 1 RVA to RAW란 PE File이 메모리에 로딩되었을 때, 각 Section에서 16진수의 Memory 주소(RVA)와 File Offset을 매핑(Mapping)하는 과정이다. 여기서 RAW는 File Offset을 의미한다. 기본적인 방법은 다음과 같다. 1. RVA가 속해 있는 section을 찾는다. 2. 다음의 비례식을 이용해서 RAW(File Offset)을 계산한다. RAW - PointerToRawData = RVA - VirtualAddress RAW = RVA - VirtualAddress + PointerToRawData Q2. RVA = 13314일 때 FILE OFFSET = ? RVA = 13314 이므로 ImageBase(01000000)을 고려해 계산해보면 VA .. [SWING] Reversing 03 과제 1 fastcall 기본적으로 stdcall과 방식이 같다. 함수에 전달하는 파라미터 일부(2개까지)를 스택 메모리가 아닌 레지스터를 이용하여 전달한다. 함수의 파라미터가 4개라면 앞의 두개는 ECX, EDX파라미터를 이용하여 전달한다. 파라미터 전달시 스택이 아닌 레지스터에 접근하기 때문에 훨씬 더 빠르다는 장점이 있다. 과제 2 Lena's Reversing 파일이 잘 열리지 않아서 구글링해서 같은 파일을 찾아 다운받았는데 코드가 중간에 조금 다른 부분이 있어 잘 되었는지 모르겠습니다. 너른 양해 부탁드립니다. 미션 : Nag 를 제거하고, 올바른 등록 코드를 찾아라! MsgBox 쓰여있는 곳 클릭. 해당 함수가 사용된 모든 곳에 breakpoint 가 걸린다. F9 눌러 실행하여 도착한 곳에서.. [SWING] Reversing 02 과제 1 stackframe.exe 다운받기 >> book/StackFrame.exe at master · reversecore/book · GitHub #include "stdio.h" long add(long a, long b) { long x=a, y=b; return (x+y); } int main(int argc, char* argv[]) { long a=1, b=2; printf("%d\n", add(a, b)); return 0; } stackframe.exe 의 소스 코드는 다음과 같이 이루어져 있다. 1. 메인함수 시작 2. a 변수에 1 저장, b 변수에 2 저장 3. add() 함수 호출 4. add() 함수의 a 파라미터에 1, b 파라미터에 2가 들어가 있음 5. a의 값을 x 변.. [Dreamhack] rev-basic-1 rev-basic-1 | 워게임 | Dreamhack rev-basic-1 Reversing Basic Challenge #1 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출 dreamhack.io 위 링크에서 문제 파일을 다운받아 압축을 풀면 chall1.exe 파일이 나온다. 이를 x64dbg에서 열어준다. 문자열을 검색해 Correct를 찾아 더블클릭한다. 아래의 사진의 주석에 따르면 Input을 입력 받아서 test eax, eax를 이용해 정해진 값과 비교를 하여 Correct와 Wrong을 출력하는 모양이다. 구해야 할 것은 Correct를 출력하는 입력값이 .. [Dreamhack] rev-basic-0 rev-basic-0 | 워게임 | Dreamhack rev-basic-0 Reversing Basic Challenge #0 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출 dreamhack.io 여기서 문제 파일을 받아 압축을 풀어준다. 리버싱할 파일은 chall0.exe이다. 파일을 Immunity Debugger로는 열 수가 없어서 (여는 방법이 있는데 내가 모르는 것일 수도 있지만) 구글링을 하다가 아래 링크에서 64 bit 파일을 열 수 있다고 하는 Ollydbg 를 다운받았다. SourceForge.net 에서 x64dbg 다운로드 크게 다르지 않다. 문자열.. 이전 1 ··· 15 16 17 18 19 20 다음