이번에는 64bit 기반의 바이너리 문제를 풀어보도록 하겠다.
일단 보호 기법부터 확인하자.
Full RELRO가 걸려 있고, NX bit가 걸려 있는것을 보니 RET 변조만 가능할 것 같다. 즉, 기본적인 x64 BOF인 것이다.
64bit 기반에서는 SFP와 RET가 각각 8byte로 이루어져 있는것 빼고는 32bit 기반과는 거의 똑같다.
IDA로 코드부터 보자.
s의 크기가 0x110=272byte이고 SFP 8byte를 더미로 넣으면 된다! 문제는, system함수를 실행시키는 것이 필요한데...
그런데 함수 목록을 보니 callMeMaybe라는 함수를 볼 수 있었다...!!
딱보니 쉘을 실행시키는 함수였다...!! 이 함수의 주소는 0x400606이고 RET에 이 주소를 넣으면 될 것이다.
exploit code는 다음과 같다.
실행시켜보면..!
flag를 획득할 수 있게 된다.
'Hacking > HackCTF' 카테고리의 다른 글
HackCTF Simple_Overflow_ver_2 Write-up (0) | 2019.12.23 |
---|---|
HackCTF x64 Simple_size_BOF Write-up (0) | 2019.12.23 |
HackCTF 내 버퍼가 흘러넘친다!!! Write-up (0) | 2019.12.23 |
HackCTF Basic_FSB Write-up (0) | 2019.12.22 |
HackCTF Basic_BOF #2 Write-up (0) | 2019.12.22 |