首页 > 其他 > 详细

ciscn_2019_es_7

时间:2021-09-06 04:48:20      阅读:11      评论:0      收藏:0      [点我收藏+]

这是我第一次见到srop的用法的题目,于是在此记录方便以后的复习

拿到程序例行检查

技术分享图片

 

 技术分享图片

 

 将程序放入ida中

技术分享图片

 

 可以看到栈的大小是0x10,却可以显示出0x30的内容,所以我们可以通过这个溢出泄露出/bin/sh在栈的偏移值

关于srop的解析,我在这里贴一个ctfwiki的解析

SROP - CTF Wiki (ctf-wiki.org)

所以当我们使用sigreturn,需要让不同的寄存器对应不同的值,然后将返回地址覆盖为sigfrme的地址就能获取到系统的shell

首先我们需要获取/bin/sh在栈中的偏移

 

技术分享图片

 

 技术分享图片

 

 

通过计算可以计算出偏移为296

于是我们让sigfrme的各个寄存器的条件满足各个的条件,然后在ret覆盖为sigfrme的地址

 

技术分享图片

 

 

sigfrme = sigreturnFrame()是pwntools的功能

完整exp如下

 

技术分享图片

 

 成功获得flag

结束!!

技术分享图片

 

ciscn_2019_es_7

原文:https://www.cnblogs.com/zhuangzhouQAQ/p/15227741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!