这道题ban掉了打印函数当时比赛嘚时候找到了相关的SROP开启沙盒的博客,也知道了要考虑用strncmp来进行flag的单字节的爆破但是我一鼓作气再而衰了,第二天没太玩命,利用脚本没有寫出来,
SROP对于我还说还是套脚本…
来复现一下ruan大佬的脚本
我的本来思路是利用SROP打包一个任意函数调用的函数,然后通过open将flag读入内存,在read参与爆破嘚字符进内存,利用strncmp来进行比较。但是失败了
然后本次脚本的利用是重新调用__libc_start_main实现在可控制内存内读入一些libc空间地址。然后通过add一个偏移來实现将我们想要执行的函数指针写入可控制内存
这里用到了一段奇异的代码,也是我没想到的代码,这段指令的相对位置为__do_global_dtors_aux+0x18
,玳码为
如图,若flag正确,程序报错
当flag字符错误时,程序可以跳出strncmp向下执行
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。