pie绕过


[NISACTF 2022]ezpie
已知:PIE保护——程序可能被加载到任意位置,所以位置是可变的。
程序返回了main的真实地址
存在后门函数shell
vuln()中的read 0x50u >> 28h,存在栈溢出
可以通过真实地址+偏移来计算任意函数真实地址
payload编写:溢出填充到返回地址前+后门函数真实地址(某函数真实地址+相对偏移量)
如果没有PIE——简单的ret2text,在vuln中的read处将程序执行流劫持到后门函数处即可。
然而存在PIE——所有的地址都是从一开始随机确定的,但是“相对偏移量保持不变”获取了main的真实地址——可以通过相对偏移量推出其他任意地址,然后就是正常的ret2text即可。


文章作者: sinksank
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 sinksank !
评论
  目录