栈溢出基础练习题——6(字符串漏洞64位下)

37 篇文章 3 订阅

题目地址:请看pwn栈溢出基础练习题——1 ;放了本博客的所有练习题目
fmtstr2 —> goodluck
在这里插入图片描述
64位,打开了canary,栈不可执行,地址没有随机化
放入ida,分析程序
在这里插入图片描述
程序流程为读入一个txt文件,并将文件信息保存到v10中,程序读入我们输入,若输入和v10即flag相同,则输出flag,由程序可知不可能输入和flag相同,但我们知道flag存在v10中,且printf()的只有一个参数并且我们可控,则存在printf()漏洞
gdb调试:
在这里插入图片描述
由于这是64位程序,前6个参数被存入寄存器中,并不在栈中,并且发现flag在后面3个位置,但注意应该是6+3给参数位置
所以只要读取第9个参数即可,输入%9$s
在这里插入图片描述

tis:找不到可以用暴力法试,一般不会太高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值