Open utterances-bot opened 5 years ago
大佬,你这个exp编译会报错 “exp.c:17: Error: too many memory references for `mov'” 汇编那里出了问题 gcc exp.c -static -o .exp
@23R3F 奥,我用的是intel风格的汇编,需要加上 -masm=intel
这个参数。
另外推荐你用musl-gcc代替gcc,参考 https://uaf.io/exploitation/2018/11/22/Hitb-2017-babyqemu.html
为啥我搜出来的gadgets和大佬的不一样。。ROPgadget获取的
0xffffffff8181bfc5 : mov rsp, rax ; dec ebx ; jmp 0xffffffff8181bf83
。
还有iretq
gadget的地址(0xffffffff814e35ef
)处,机器码是4DCF,但iretq
机器码是48CF。。
为啥我搜出来的gadgets和大佬的不一样。。ROPgadget获取的
0xffffffff8181bfc5 : mov rsp, rax ; dec ebx ; jmp 0xffffffff8181bf83
。 还有iretq
gadget的地址(0xffffffff814e35ef
)处,机器码是4DCF,但iretq
机器码是48CF。。
晓得了。。
jmp
相对跳转地址的计算似乎有问题,实际应该是这个0xffffffff8181bfc5 : mov rsp, rax ; dec ebx ; jmp 0xffffffff8181bf7e
,而0xffffffff8181bf7e
恰好是ret
,所以构成了mov rsp, rax ; dec ebx ; ret
。iretq
执行(rex.WRB iretq
)
Linux Kernel Pwn ABC(II) - localhost - Done with development, it's time to pwn.
这一篇讲 ret2usr 攻击和 smep 保护。主要参考了 Pratical SMEP bypass techniques on Linux。
https://bash-c.github.io/post/linux-kernel-pwn-abc-2/