Wargame/CTF(Capture The Flag)

LOB orge -> troll

𝓛𝓾𝓬𝓮𝓽𝓮_𝓢𝓽𝓮𝓵𝓵𝓪 2015. 10. 15.
728x90
반응형

먼저 소스를 확인해보자!

인자는 2개를 넘을수 없고 argv[1]은 48자 또한 memset으로 초기화가 된다. 그럼 일단 생각을 해보면 기본적으로 파일이름 때문에 argv[0]은 먹고 간다. 그러므로 생각을 해야하는데;;;

파일이름을 심볼릭링크를 이용해서 쉘코드를 등록 하면 어떨까? 저자는 48바이트를 쉘코드를 사용하였다. 이유는 \x2f 즉 / 가있으면 심볼릭 링크를 만들수 없기 때문이다. 

이렇게 심볼릭 링크를 걸고 난후 gdb 를 이용해 들어가서 

공격을 하고 주소값이 뒤덮인 것을 확인 해보고


주소값을 이용하여 공격을 한다. 물론 심볼릭 링크를 이용한다. 그렇게 되면 core파일이 만들어 지는데 이를 이용하여 진짜 주소값을 구해볼 껀데


core를 gdb 로 확인 하고 x/700s $esp를 하다보면 이렇게 공격자가 넣은 소스를 볼수 있다. 이를 기점으로 bffff92d에서 ./값 2를 빼면 2b가 된다. 이게 진짜 주소값이다. 이를 이용하여 payload를 만들어 공격하자

payload는 심볼링 링크 건 파일명 + 다시 파이썬 버퍼(40+더미값(4)+주소값이다.

이렇게 쉘을 딸수 있게 된다. 


728x90
반응형

'Wargame > CTF(Capture The Flag)' 카테고리의 다른 글

CodeGate 2013 f300  (0) 2016.09.23
LOB troll -> vampire  (0) 2015.10.15
pwnable.kr shellshock  (0) 2015.10.11
LOB orge  (0) 2015.09.15
LOB darklf  (0) 2015.09.15

태그

,

댓글0

💲 추천 글