2018 XNUCA gets

这道题有中奖成份在里头,针对不同的libc版本,RIP与0x7fffffffdc88 --> 0x7ffff7deab03 (<_dl_init+275>: add r15,0x8) distance不一样,测试本机libc版本2.17,distance是 16,而题目所用libc版本是2.3,distance是18。

题目所用的exp为return to csu_init的最后5个pop,3个ret + 5*3 刚好=18,算好了的。

本机libc版本2.17 distance 16,只能是3个ret,每个ret只能4个pop,这样的话3 + 4*3=15,还差一个地址到达<_dl_init+275>,只能用vsyscall slide所差地址。

libc 2.17所要尝试的65536次数,在新版本中使用这个技能很难行得通。

one gadget地址我选择的是 0x4309c(注:选地址时眼花了,最好选择0x43048,限制条件rax =0比较容易满足,第一个vsyscall就使rax=0)


但是,通过coredump发现,溢出后实际RIP地址是7fd8e700309c

而libc one gadget地址是0x7fd8e6d5e09c

要爆破16^4=65536次

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • BROP对存在栈溢出的ELF进行指令盲注,Papper描述攻击可谓充满了艺术。要满足BROP,需要几个条件:1.进...
    clive0x阅读 974评论 0 1
  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys阅读 3,381评论 0 2
  • 0. 引言 如果你学的第一门程序语言是C语言,那么下面这段程序很可能是你写出来的第一个有完整的 “输入---处理-...
    pandolia阅读 14,197评论 13 27
  • 消息发送和转发流程可以概括为:消息发送(Messaging)是 Runtime 通过 selector 快速查找 ...
    lylaut阅读 1,881评论 2 3
  • 春天 下了一场 桃红色的雪 融化了 冰封的王座 靠近 还是离开 早已不再重要 转身 你依旧 如花静开 在俗世...
    喜宁123阅读 201评论 0 2