-
LEVEL 03 cobolt write-upSystem hacking training/Hackerschool LOB 2018. 3. 15. 21:13
[문제]
이번 문제도 간단한 bof 문제인걸 알 수 있다.
buffer가 16byte인데 gets() 의 사용으로 인해서 bof 가 일어난다.
gets() 는 문자열의 길이를 제한하지 않기 때문에 buffer에 입력을 받는다면 buffer의 영역을 넘어서 return address를 변조할 수 있다.
예상되는 스택은 이러하다.
| char buffer[16] | SFP | RET |
버퍼가 작으니 쉘코드를 스택에 직접 올리는 방법은 제한된다.
따라서 환경변수에 쉘코드를 올리고, 쉘코드를 넣은 환경변수의 주소를 return address 로 변조하면 쉘을 띄울 수 있다.
like this..
반응형'System hacking training > Hackerschool LOB' 카테고리의 다른 글
LEVEL 06 darkelf write-up (0) 2018.03.21 LEVEL 05 wolfman write-up (0) 2018.03.16 LEVEL 04 goblin write-up (0) 2018.03.16 LEVEL 02 gremlin write-up (0) 2018.03.15 LEVEL 01 gate write-up (0) 2018.03.11