HackCTF x64 Buffer Overflow Write Up

War Game

2020. 3. 8. 22:55

반응형

 

문제를 다운받고 실행해보자

단순히 입력받은 값에 Hello를 덧붙여서 출력해준다.

버퍼오버플로우 문제이니 바로 IDA로 까주자

main함수를 보면 누가봐도 _isoc99_scanf에서 버퍼오버플로우가 가능하다.

그리고 함수목록에 있는 누가봐도 수상한 callMeMaybe를 보면

이런식의 코드가 보인다.

즉 main에서 scanf를 통해 버퍼오버플로우를 시키고 callMeMaybe 주소를 넣어주면 끝이다.

크기를 알기위해 isoc99 scanf 바로 밑에 bp를 걸어준뒤 실행하자

임의의 값으로 aaaaaaaa를 넣어주고 실행시키니 스택을 보면

입력한 임의의 값 aaaaaaaa가 들어있는게 보인다.

주소를 기록해두자. "0x7fffffffdf10"

 

이번엔 ret주소에 bp를 걸고 실행해주었다.

스택에 "0x7fffffffe028"이 보일것이다.

아까 구한 주소랑 빼주자

280바이트 정도 a로 채워주고 

IDA에서 구한 callMeMaybe 함수 주소를 넣어주면 될 것 같다.

pwntools로 익스를 짜주자

form pwn imort *
p = remote("nc ctf.j0n9hyun.xyz", 3004)
payload = "a"*280 + p64(0x400606)
p.send(payload)
p.interactive()

반응형

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

HackCTF Simple_Overflow_ver_2 Write Up  (0) 2020.03.19
HackCTF x64 Simple_size_BOF Write Up  (0) 2020.03.17
HackCTF 내 버퍼가 흘러넘친다!!! 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