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
[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
[드림핵(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..

article thumbnail
[드림핵(Dreamhack)] basic_exploitation_000
Linux Exploitation/Wargame 2023. 4. 10. 19:59

문제 설명 Return Address Overwrite를 통해 BOF를 이끌어내서 해킹하는 문제이다. 문제 정보에 보면 NX 비트나 canary 등 보안 기법은 설정되어있지 않다는 것을 볼 수 있다. 그리고 Arch를 보니 i386-32-little 이므로 32bit 기준으로 쉘 코드를 작성해주면 된다. 주어진 코드 분석 #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { //초기화 setvbuf(stdin, NULL, _IONBF, 0); //stdin 버퍼 사용x setvbuf(stdout, NULL, _IONBF, 0); //stdout 버퍼 사용x sign..

article thumbnail
[BOF] Stack Buffer Overflow (스택 버퍼 오버플로우), BOF 기초 및 실습

들어가며 스택 오버플로우는 보안직이 아닌 일반 개발직무 분들도 많이 들어본 용어일 것이다. 심지어 구글링할 때 항상 참고하게 되는 Stack Overflow 이름도 말그대로 스택 오버플로우이다. 아래는 CVE에 등록된 보안 취약점의 종류를 보여주는 도표이다. 이중에서 주황색 막대기로 체크된 Overflow가 꽤나 높은 수치를 가지는 것을 볼 수 있다. 그렇다면 정확히 스택 오버플로우와 스택 오버플로우는 어떤 공격이고 어떻게 공격할 수 있는지 간단한 실습을 통해 알아보는 시간을 가질 것이다. 스택 오버플로우(Stack Overflow) vs 스택 버퍼 오버플로우(Stack Buffer Overflow) 스택은 함수를 실행하면서 동적으로 크기가 줄거나 늘어날 수 있다. 이때 스택 오버플로우는 스택의 크기가 ..