일단 main문 길이보고 한번 놀라고 이것저것 존재하는 함수보고 한번 더 놀랐다. 느낌을 보니 맨처음 ret주소는 DO를 가르켜야 된다 했으니 그 뒤로 계속 함수를 호출해주면 될 것 같다.
nm명령어를 써주면 각 함수의 주소가 순차적으로 나온다. 이제 공격로드를 작성해보자.
[버퍼44]+[DO]+[GYE]+[GUL]+[YUT]+[MO]+[/bin/sh]
역시 저렇게 넣으면 안되는 듯 하다.
/bin/sh주소를 찾아주자. 코드를 보면 버퍼 48부터 100자리까지 지우지 않는 것을 볼 수 있다.
A로 ret를 덮고, 인자 받을 부분을 B로 채운 뒤 C를 잔뜩 넣으니 이런식으로 나온다.
/bin/sh의 주소는 0xbffffc38이겠다.
잉 아니네.
적게 채워주면 주소가 달라지나보다.
0xbffffc58로 다시 가면~
성공~
'war game > LOB' 카테고리의 다른 글
LOB-level19(fgets + destroyers) (0) | 2019.07.04 |
---|---|
LOB-level18(plt) (0) | 2019.07.03 |
LOB-level16(fake ebp) (0) | 2019.07.03 |
LOB-level15(no stack, no RTL) (0) | 2019.07.02 |
LOB-level14(RTL2, only execve) (0) | 2019.07.02 |