freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

挖洞经验 | 利用PDF生成器的XSS漏洞读取系统本地文件
2020-10-23 08:40:02

本文介绍了作者针对某安卓应用App中的PDF生成器进行测试,发现可以利用其中存在的XSS漏洞读取系统本地文件。

漏洞背景

测试目标为某健康管理APP,它可以被预装在安卓系统的移动设备中,且其文件系统是封闭不可被访问读取的。该APP设置了自定义启动器(custom launcher),用户无法更改其界面或访问其内置接口数据。所以在这里,由于利用XSS读取本地文件绕过了该APP本来的业务逻辑,算是一个比较严重的漏洞了。

XSS => LFI

虽然XSS漏洞比较常见,但要想在移动应用APP中发现XSS漏洞也不简单,而且我还是在其内置的PDF生成器(PDF generator)中发现了一个XSS。

由于该APP应用允许用户编辑自己的病历记录,然后保存为PDF打印,因此,我尝试在病历记录中加入了以下正常的HTML Payload,想看看它会否在PDF生成时触发XSS。

<h1>test</h1>test2

然后,在PDF生成过程中,该Payload被触发了,但这没啥大惊小怪的, 接下来我们要看看如何利用该XSS来破坏APP的逻辑。那就从读取本地文件数据下手吧,然后我构造了以下读取本地文件的代码:

<script>
 x=new XMLHttpRequest;
 x.onload=function(){
  document.write(this.responseText)
 };
 x.open("GET","file:///etc/passwd");
 x.send();
</script>

测试之后,没啥显示的。接着,我又用<img>继续构造:

<img src="xasdasdasd" onerror="document.write('<iframe src=file:///etc/passwd></iframe>')"/>

哪想到这一构造测试就直接把APP搞崩溃了,不知道是否用到了onerror或img标签才这样,那就来个简单的吧:

<script>document.write('<iframe src=file:///etc/passwd></iframe>');</script>

哦,执行之后,在PDF生成时跳出了以下美妙画面:

技术参考

https://book.hacktricks.xyz/pentesting-web/xss-cross-site-scripting/server-side-xss-dynamic-pdf

https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html

参考来源:dixitaditya,编译整理:clouds,转载请注明来自Freebuf.com



# PDF生成器 # XSS读取本地文件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者