티스토리 뷰

pwnable/LOB

[LOB] cobolt -> goblin write-up

ba0bab 2018. 1. 26. 16:56





LOB cobolt -> goblin


id : cobolt

pw : hacking exposed



코드입니다.


전 레벨과 달라진 점은 argv를 이용해서가 아닌 gets로 입력을 받군요.


bof가 발생하는 군요.  ret값을 조작하여 공격하면 될 것 같습니다.


바로 분석을 해보겠습니다.


분석을 하기 위해 tmp라는 폴더를 만들고 cp하겠습니다.




스택프레임이 16만큼 형성되어 있고



ebp-16 즉 esp부터 gets로 입력을 받습니다.


메모리 구조는


buf(16) | sfp | ret 이 되겠습니다.


저는 RTL기법으로 풀도록 하겠습니다.


먼저 system 함수의 주소를 구하도록 하겠습니다.



0x40058ae0입니다.


이제 /bin/sh의 주소를 구해보겠습니다.




주소를 구하는 코드입니다.







컴파일을 해주고 실행하면 주소가 나옵니다.


0x40058ae0 이 시스템함수의 주소이고 인자 값이 0x400fbff9임을 알 수 있네요.


페이로드를 짜보겠습니다.


gets 이기 때문에 | 파이프 명령을 이용해서 값을 넘겨줘야 합니다.


페이로드 입니다.


(python -c ‘print “A”*20+”\xe0\x8a\x05\x40”+”AAAA”+”\xf9\xbf\x0f\x40”’;cat) | ./goblin


공격 해보겠습니다.



쉘을 얻었습니다.


실제파일에 공격 해보겠습니다.



권한을 얻었습니다.


cobolt의 키는 hackers proof 입니다.

'pwnable > LOB' 카테고리의 다른 글

[LOB] wolfman -> darkelf write-up  (0) 2018.01.27
[LOB] orc -> wolfman write-up  (0) 2018.01.27
[LOB] goblin -> orc write-up  (0) 2018.01.27
[LOB] gremlin -> cobolt write-up  (0) 2018.01.26
[LOB] gate -> gremlin write-up  (0) 2018.01.26
Comments