简单的32位栈溢出

有system无binsh字符串处理


在这里插入图片描述

无聊打打题,又是我最爱的简单栈溢出
经典32位栈溢出,首先打算使用常规办法试一试

32bit:
	system_addr + return_addr + bin_sh_str_addr
64bit:
	ret_addr + pop_rdi_ret + bin_sh_str_addr +  system_addr

看看程序里面是否存在可调用的函数和字符串
(如果没有也没关系,劫持got表和泄露libc都行,不知道这是啥也没关系,后面有机会的话讲两句)
在这里插入图片描述
有system函数但无binsh字符串,看来这题想给我们制造一点小麻烦
在这里插入图片描述
翻翻bss段总会有些小惊喜,发现一个变量,那么就好办了
在这里插入图片描述
可以利用gets函数来把/bin/sh字符串传入变量buf2,然后system后面接返回地址后再接上buf2的地址

payload 构造如下:
	payliad = [填充字符] + [gets] +[buff2] + [system] + [_start] + [buff2] # 构造好后养成一个好习惯,返回地址填充为 _start的地址 

如果是64位程序可以:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjjjjones

笑死,根本没人打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值