其他分享
首页 > 其他分享> > ciscn_2019_es_7

ciscn_2019_es_7

作者:互联网

这是我第一次见到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

结束!!

 

标签:bin,ciscn,地址,sh,偏移,es,sigfrme,2019,srop
来源: https://www.cnblogs.com/zhuangzhouQAQ/p/15227741.html