아까 전에 작성한 Yes or no가 너무 난해해서 이번 문제는 쉽게 풀 듯하다. 문제 풀이 스타트!
RTL 문제이다. world가 붙어있는 것을 보니 간단하거나 전형적인 RTL은 아닌듯하다.
우선 checksec부터 해보자.
NX만 걸려있는 것을 보니 RTL을 사용할 수 있다는 것을 알 수 있다.
바이너리를 IDA로 까보자.
이 문제에서는 6번까지의 메뉴를 선택할 수 있고, 5번에서 BOF attack을 할 수 있다.
2번으로 돈을 벌거나 3번, 4번으로 system과 binsh의 주소를 알 수 있긴 하다.
하지만 system의 plt값이 고정되어 있고, Shift + F12를 눌러서 문자열 검색을 해보니 /bin/sh이 고정 주소에 있는 것을 알 수 있다.
따라서 우리는 system_plt=0x80485b0, binsh=0x8048eb1이므로 전형적인 RTL을 사용할 수 있다.
exploit code는 다음과 같다.
실행시켜보면....!
쉘을 획득할 수 있다.
이번 문제는 간단하게 풀 수 있어서 한시름 놓았다..ㅜㅜ
'Hacking > HackCTF' 카테고리의 다른 글
HackCTF poet Write-up (0) | 2020.01.07 |
---|---|
HackCTF g++ pwn Write-up (0) | 2020.01.07 |
HackCTF Yes or no Write-up (0) | 2020.01.06 |
HackCTF BOF_PIE Write-up (0) | 2020.01.06 |
HackCTF offset Write-up (0) | 2019.12.29 |