ls 명령어로 디렉터리를 확인해보면 orge, orge.c가 있다.
이번 레벨에서는 전 레벨과 달라진 점은 check argv [0]이 추가되었다.
argv [0]의 길이를 77로 검증하는 부분이다. orge파일을 길이가 같은 이름으로 복사한다.
이제 argv[0]의 길이를 맞추고 argv [2]의 주소를 이용하여 공격해보자.
gdb는 실행 시에 절대 경로로 실행되기 때문에 분석할 때 길이를 맞춰서 분석한다.
strcpy() 함수가 호출된 후인 main+283에 브레이크를 걸고 실행시킨다.
이제 argv [2]의 주소를 찾아보자
argv[2]의 주소는 0 xbffffda6이다.
argv [2]의 주소를 알았으니 Python으로 exploit code를 작성해보자.
Payload
buffer(40) + SFP(4) + RET(4) + ' ' + NOP(100) + shellcode(25)
argv [0]의 길이
/home/darkelf/ (14) + / (59) + orge (4)
다음 레벨의 orge의 권한의 쉘이 실행되었다.
darkelf -> orge
password : timewalker
'Wargame > LOB' 카테고리의 다른 글
troll -> vampire (0) | 2020.09.13 |
---|---|
orge -> troll (0) | 2020.09.12 |
wolfman -> darkelf (0) | 2020.09.07 |
orc -> wolfman (0) | 2020.09.06 |
goblin -> orc (0) | 2020.09.06 |
댓글