总的来说是ret2vdso
保护全开。

就如程序名,where_call,程序让你输入一个函数地址,结合下面的v5等于121,那么想的是找到一个函数,对v5进行一些操作,让它等于121,但是程序开了PIE,难点就在这里。
我们说平常PIE的绕过有两种方法,一种是泄露内存地址,但是那需要一些类似于read函数的东西,但是现在啥没有。另外一种就是partial write,但你看这显然不行,你去哪write?
所以就想到ret2vdso,或者说ret2vsyscall。
vsyscall是固定的,里面第二个函数是time函数,传入一个参数,调用time函数,返回一个时间值到buf,即相对于UTC(1970-01-01 00:00:00 +0000)所经过的秒数。当buf恰好等于121时即可进入后门函数调用system(“/bin/sh”)。
虽然说我们得到的时间是相对UTC的,但是它判断的时候值判断最后一个字节

所以还是可以爆破出来的。
然后就接爆破。
exp
from pwn import
利用ret2vdso技术绕过PIE保护的漏洞利用

本文介绍了如何在面对PIE(Position Independent Executable)保护的程序中,通过ret2vdso(return to VDSO)技术来实现代码执行。作者详细解析了ret2vdso的工作原理,特别是利用time函数来获取固定地址,并通过爆破方法找到使v5等于121的条件,从而触发后门调用system(/bin/sh)。文章还提供了一个exploit示例,展示了如何连接到程序并尝试爆破执行shell命令的过程。
最低0.47元/天 解锁文章
719

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



