rosieblue
article thumbnail
[ROP 시리즈 (4)] 드림핵(Dreamhack) - rop
Linux Exploitation/Wargame 2023. 4. 21. 22:03

🔁ROP 시리즈🔁 [ROP 시리즈 (1)] 라이브러리와 링크 [ROP 시리즈 (2)] PLT, GOT [ROP 시리즈 (3)] Return to Library 개념 및 실습 [ROP 시리즈 (4)] 드림핵(Dreamhack) - rop 2. read@got이 참조하는 값, 즉 read의 실제 주소 찾기(얘는 랜덤한 값이다.) -> 3. 미리 구한 오프셋으로 system함수 실제 주소 찾기 이 순서로 하나하나 가면 된다. 1. read@got 구하기 e = ELF("./rop") read_got=e.got["read"] #정수로 반환되므로 페이로드로 보낼 때는 바이트로 바꿔야 함 ELF 객체는 익스플로잇에 필요한 ELF 정보를 출력해준다. 2. read의 실제 주소 찾기 read의 실제주소는 랜덤하기 때문..

article thumbnail
[컴퓨터 구조] ALU

사전 지식 CPU는 명령어를 해석하고 실행하는 장치이다. ALU는 계산기이고, 레지스터는 임시 보관 장치, 제어 장치는 명령어를 해석해서 제어신호를 보내는 역할을 한다. ALU 3-10라는 연산을 한다고 가정해보자 ALU는 계산하는 부품이기 때문에 피연산자와 연산을 인풋으로 받아야한다. ALU는 레지스터로부터 피연산자(3,10)를 받고, 제어장치가 보내주는 제어신호(둘이 빼줘!)로 어떤 연산을 할지를 정한다. 그리고 결과값인 8을 새로운 레지스터에 저장한다. 또한 3-10

article thumbnail
[ROP 시리즈 (3)] 드림핵(Dreamhack) - Return to Library 개념 및 실습

🔁ROP 시리즈🔁 [ROP 시리즈 (1)] 라이브러리와 링크 [ROP 시리즈 (2)] PLT, GOT [ROP 시리즈 (3)] Return to Library 개념 및 실습

article thumbnail
[ROP 시리즈 (2)] PLT, GOT

🔁ROP 시리즈🔁 [ROP 시리즈 (1)] 라이브러리와 링크 [ROP 시리즈 (2)] PLT, GOT 첫번째로 함수를 호출할 때는 GOT에 아직 puts함수의 주소가 적혀있지 않다. 실제 puts함수의 주소는 puts함수 안에있는 _dl_runtime_resolve_fxsave라는 함수를 통해 구해진다. 그리고 이 함수가 GOT에 puts함수의 실제 위치를 적어준다. 그리고 다시 callee로 이동하게된다. 그리고 다시 calle에서 다음 코드들을 쫘르륵~ 실행한다. 이후 다시 프로그램에서 puts를 호출하면 PLT가 GOT의 값을 참조했을 때(GOT의 코드를 실행하는건 아니다! GOT에는 코드가 없다! PLT에만 코드가 들어있다!!), 다시 plt+6로 돌아오지 않고 바로 puts 함수의 실제 위치로 ..

article thumbnail
[ROP 시리즈 (1)] 라이브러리와 링크

🔁ROP 시리즈🔁 [ROP 시리즈 (1)] 라이브러리와 링크

article thumbnail
[드림핵(Dreamhack)] ssp_001
Linux Exploitation/Wargame 2023. 4. 14. 10:50

문제정보 Description 이 문제는 작동하고 있는 서비스(ssp_001)의 바이너리와 소스코드가 주어집니다. 프로그램의 취약점을 찾고 SSP 방어 기법을 우회하여 익스플로잇해 셸을 획득한 후, “flag” 파일을 읽으세요. “flag” 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{…} 입니다. Environment Ubuntu 16.04 Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000) Reference Stack Smashing Protector Canary Leak을 통해 버퍼오버플로우를 하는 문제이다. NX enabled..