第五届强网拟态挑战赛预赛-pwn
本文最后更新于:2023年10月31日 下午
bfbf



通过run_bfbf函数中看到,brain fuck的指针指向的地址位于栈中,且没有限制偏移大小,所以可以利用 <,>或[]将指针偏移到指定位置泄露run_bfbf的返回地址,__libc_start_main函数地址,并且可以控制返回地址,构造rop

程序中开启了沙盒,当程序执行过程中从非0或1句柄中读取数据,就退出程序,这让我们不能通过执行/bin/sh获取设立了,且不能直接使用orw读取flag文件,不过可以通过dup2将open("flag")开启的3句柄,转移到0句柄上,这样就可以获取flag了
1 | |
webheap






主要难点在于分析parse_packet函数比较麻烦,通过delete函数可以发现,程序存在uaf漏洞,那么剩下的就简单了
1 | |
webheap_revenge
程序主要逻辑与webheap相同,所以交互的脚本不需要重新写,直接拿webheap的就好了




分析程序发现,在执行edit功能时,向chunk中写入的数据长度为用户输入的数据长度,而且程序没有对输入数据长度进行限制,所以我们可以随心所欲的向程序发送任意长度的数据,就是说程序存在堆溢出漏洞
1 | |
第五届强网拟态挑战赛预赛-pwn
https://rot-will.github.io/page/wp/第五届强网拟态挑战赛预赛-pwn/