通过LIBC基址来爆破TLS
警告
本文最后更新于 2022-05-01,文中内容可能已过时。
在有些情况下,我们需要知道 TLS 的位置以便于修改其中的一些值,例如 canary、tcache struct ptr、key。
但是在大多数情况下,远程的 ld.so 距离 libc 基址的位置不确定与本地 patchelf 之后的不一致,这时候优先可以考虑起一个 docker 来看看偏移(因为题目大多数都是用 docker 搭建的),我这里推荐这个项目:https://github.com/PIG-007/pwnDockerAll。
如果还是不正确,则说明我们需要爆破偏移,这里的爆破偏移和往常的不同,因为这个偏移值的量在每次连接的时候都是固定的,所以我们只要循环执行足够多的次数,那么就一定能够攻击成功。而且偏移的变化值往往在地址末尾的第四个、第五个数(末三位不变),我们只需要考虑爆破这两个数字即可。
这里提供一个爆破的模版,可以参考一下
|
|