cgy12306

[LOB] darkknight 본문

Wargame/LOB

[LOB] darkknight

cgy12306 2019. 9. 30. 10:48

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