코드를 보면, 버퍼의크기를 256바이트로 지정해주고 있고,

argc가 2보다 작으면 argv error 를 출력하고 종료를 해주고 있다.


gdb로 까보면 버퍼는 0x100 = 256바이트이므로 Dummy는 없는것 같다.

따라서 | buffer(256) | sfp(4) | ret(4) |

이러한 스택구조를 가지고 있다.

그냥 buffer에 때려박아도 되지만 환경변수를 이용해서 풀자면,

위의코드를 짜서 환경변수의 주소를 알아낼것이다

넉넉히 nop을 3000개로 잡아주고 환경변수를 등록 후, 아까 짠 프로그램을 실행 하면, SHELLCODE의 주소가 나온다.

따라서 | \x90*260 | SHELLCODE's Adr |

과 같은 방법으로 넣어준다.


Flag : hello bof world

'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] gremlin  (0) 2016.07.12

+ Recent posts