Try to be the expert.

Ainsetin's Hacking & PS & Math

Hacking/HackCTF

HackCTF RTL_World Write-up

Ainsetin 2020. 1. 6. 20:32

아까 전에 작성한 Yes or no가 너무 난해해서 이번 문제는 쉽게 풀 듯하다. 문제 풀이 스타트!

 

 

RTL 문제이다. world가 붙어있는 것을 보니 간단하거나 전형적인 RTL은 아닌듯하다.

 

우선 checksec부터 해보자.

 

NX만 걸려있는 것을 보니 RTL을 사용할 수 있다는 것을 알 수 있다.

 

바이너리를 IDA로 까보자.

 

main()의 일부분

이 문제에서는 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