코드를 보면 버퍼의 크기가 작아졌다. 따라서 25바이트 쉘코드를 그대로 때려넣는 방법은 사용하지 못한다.
그래서 이런 문제들은 환경변수를 사용해 쉘코드의 주소를 가지고 풀이를 할 것이다.
gdb로 까보아도, 16바이트를 주고 있다. 따라서 dummy는 없다는 것을 알 수있다.
| buffer(16) | sfp(4) | ret(4) |
이러한 스택 구조를 띄고 있다.
총 20바이트와 4바이트의 주소값을 넣어주면 bof가 일어난다.
먼저 환경변수부터 만들어 준다.
그 후 SHELLCODE의 주소 알아낸다
SHELLCODE의 주소는 0xbffff32b 이므로
리틀엔디언 방식으로 바꾸어 \x2b\xf3\xff\xbf 로 만들 수 있다.
그냥 buffer부터 ret까지 24바이트를 전부 주소를 넣기로 했다. 다른 것을 넣어 20바이트를 채워주고 ret에 쉘코드의 주소값만 들어가면 무엇이 들어가도 무방하다.
Flag : hacking exposed
'IT > LOB' 카테고리의 다른 글
[LOB] wolfman (0) | 2016.07.17 |
---|---|
[LOB] orc (0) | 2016.07.17 |
[LOB] goblin (0) | 2016.07.17 |
[LOB] cobolt (0) | 2016.07.12 |
[LOB] gate (0) | 2016.07.11 |