buuctf——[第五空间2019 决赛]PWN5 1

查看文件权限

在这里插入图片描述
设置了canary,无法栈溢出。

F5查看源程序

在这里插入图片描述
源程序大意是把随机数放入到bss段的0x804c044处,用户输入用户名和密码,如果密码和随机数相等,则拿到权限。

解题思路

看到了printf,又加了canary权限,可以想到考查格式化字符串漏洞。可以更改0x804c044处的值,所以要精心构造一个合适的格式化字符串。构造的方法很多。

在用户输入用户名处,先输入一个AAAA,试探会写在栈的哪个位置。
在这里插入图片描述
“AAAA”写在了第10个位子。构造:
bss=0x804c044
payload=b"AAAA%16$n%17$n%18$n%19$n"+p32(bss)+p32(bss+1)+p32(bss+2)+p32(bss+3)
"AAAA%16$n%17$n%18$n%19$n"这一段一共是24个字节,当写入栈里时,会占满第10,11,12,

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值