코드를 보면, 버퍼의크기를 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 |