登录后台

页面导航

本文编写于 177 天前,最后修改于 86 天前,其中某些信息可能已经过时。

demo

add函数存在空字节溢出,edit函数存在任意地址写一字节,程序结束时有沙箱

这道题的独特点在一个条件判断,如下图所示:只有在满足malloc_hook和free_hook都为0的时候才能进行add,delete,edit

开了沙箱保护,禁用了execve和mprotect函数

看到沙箱在最后觉得怪怪的?没有做出来,最后看wp才看到解法:
1.修改stdout泄露栈地址,然后修改stdin构造rop链
2.修改malloc_hook为onegadget,然后scanf输入很多字节可以绕过malloc_hook的检查

注意他那个溢出,溢出的是size大小的一字节,不是你输入字符的一字节

出题人思路:
在IO_stdout中泄露stack_addr
更改_IO_write_base为environ里初始地址
更改_IO_write_ptr为environ+8
在IO_stdin中(stack中写入rop)
更改_IO_buf_base 为返回地址
更改_IO_buf_end 为要写入的末地址

出题人wp:https://blog.csdn.net/qq_43116977/article/details/106326075?fps=1&locationNum=2