php bypass disable_function 命令執行 方法匯總簡述


1.使用未被禁用的其他函數

exec,shell_exec,system,popen,proc_open,passthru (python_eval?perl_system ? weevely3 wiki中存在這兩個函數)

要求:看看哪個函數沒在禁用列表里的

2.pcntl_exec

使用pcntl_exec函數可命令執行

要求:linux系統特有模塊,需編譯選項中存在--enable-pcntl

3.windows com組件繞過

通過生成的com對象調用wscript.shell或shell.application以執行命令

 

要求:windows系統,com_dotnet模塊開啟

4.使用ld_preload劫持環境變量

利用ld_preload劫持動態鏈接庫的優先加載路徑,通過會調用系統程序的php函數,來觸發對我們偽造的標准庫函數的調用,從而執行惡意代碼

要求:linux系統,putenv函數未被禁用,可以上傳so文件

5.php7.4+ ffi特性

php7.4加入的新特性,利用ffi可以執行c代碼

要求:php版本7.4+,ffi模塊開啟,ffi.enable 狀態為enable(這個有三個狀態,一定要是enable才可以)

6.構造數據包直接與php-fpm模塊通信

跳過中間件分配請求的過程,直接構造特定的數據包與php-fpm模塊通信

要求:目標使用了php-fpm模塊,php-fpm的進程端口暴露在外網(一般為9000端口),知道一個php腳本的絕對路徑和名稱

7.通過.htaccess使其他后綴文件被mod_cig模塊處理

主要思路和6思路差不多

要求:使用mod_cig模塊,可以上傳文件,.htaccess模塊被開啟(蟻劍有個bypass disable function的模塊存在此方法)

8.imap_open()

cve-2018-19518,通過構造exp,在調用rsh的時候插入可執行命令的-oProxyCommand參數執行系統命令

 

要求:開啟了imap擴展,enable_insecure_rsh選項打開,imap_open未被禁用,漏洞未被修復

9.破殼漏洞

cve-2014-6271

要求:php<5.6.2,linux系統

10.imagemagick組件命令執行

利用的是imagemagic本身的命令執行漏洞,有2個,利用的exp也不相同

要求:開啟了imagemagic模塊且漏洞未被修復

11.其他 

還有一些其他的方法,要結合具體情況使用,例如現權限是否可以讀取寶塔的session.db,redis的利用等等,這個需要平時對漏洞的積累。

 更新:

Json Serializer UAF && PHP7 GC with Certain Destructors UAF

php7-gc-bypass漏洞利用PHP garbage collector程序中的堆溢出觸發進而執行命令
影響范圍是linux,php7.0-7.3
https://github.com/mm0r1/exploits/blob/master/php7-gc-bypass/exploit.php

php-json-bypass

漏洞利用json序列化程序中的堆溢出觸發,以繞過disable_functions並執行系統命令
影響范圍是linux,php 7.1-7.3
https://github.com/mm0r1/exploits/blob/master/php-json-bypass/exploit.php

想要深入了解上列具體原理的推薦看這位大佬的文章

https://github.com/mi1k7ea/Mi1k7ea.github.io/blob/master/index.html

 

以上內容如有不妥之處,敬請斧正

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM