PHP的命令執行漏洞學習

2021-10-02 13:01:39 字數 2201 閱讀 8475

首先我們來了解基礎

命令執行漏洞

應用程式有時需要呼叫一些執行系統命令的函式,如在php中,使用system、exec、shell_exec、passthru、popen、proc_popen等函式可以執行系統命令。當黑客能控制這些函式中的引數時,就可以將惡意的系統命令拼接到正常命令中,從而造成命令執行漏洞,這就是命令執行漏洞。

先了解下這些知識

windows管道符

「|」:直接執行後面的語句。如:ping 127.0.0.1|whoami

「||」:如果前面執行的語句出錯澤執行後面的語句,前面的語句智慧型為假 如:ping 2 || whoami

「&」:如果前面的語句為假則直接執行後面的語句,前面的語句可真可假 如 ping 127.0.0.1&whoami

「&&」:如果前面的語句為假則直接出錯,也不執行後面的語句,前面的語句只能為真。例如:ping 127.0.0.1&&whoami

linux管道符

「;」:執行完前面的語句再執行後面的 例如:ping 127.0.0.1;whoami

「|」:顯示後面語句的執行結果 例如:ping 127.0.0.1|whoami

「||」:當前面的語句只能怪出錯時,執行後面的語句,例如:ping 1||whoami

「&」:如果當前面的語句為假則直接執行後面的語句,前面的語句可真可假。例如:ping 127.0.0.1&whoami

「&&」:如果前面的語句為假則直接出錯,也不執行後面的,前面的語句只能為真 例如:ping 127.0.0.1&&whoami

測試學習我們可以寫乙個簡單的php

1

<?php23

echo

system(「pint -n 2 」.$_get

[『ip』]);

45 ?>

搭建好我們可以進行簡單漏洞攻擊 如圖我們執行了檢視系統當前使用者命令

dvwa靶場的命令執行漏洞

low

low command injection source

先分析**!

1.    <?php 

2.

3. if( isset( $_post[ 'submit'] ) )

12. else

16. //

feedback for the end user

17. echo "

";

18.}

19.

20. ?>

我們分析這個靶場的**可以看到$_request接受使用者傳過來的值 我們並沒有看到有什麼過濾機制的**所以 可以輸入任何東西。

測試執行ping127.0.0.1沒問題 我們利用管道命令來 再加命令語句

我這邊環境時本地windows我們選用windows的管道符 來執行  ok

繼續先分析**

1.    <?php 

2. if( isset( $_post[ 'submit'] ) )

17. else

21. //

feedback for the end user

22. echo "

";

23. }

我們注意6-9行 這裡是個黑名單過濾 我們可以想辦法繞過    這裡雖然把&&和分號;加入了黑名單,但是我們還可以用邏輯或(||)、管道符(|)或(&)來命令執行  繞過

命令執行漏洞

命令執行漏洞 命令執行漏洞是指攻擊者可以隨意執行系統命令。os命令執行漏洞 部分web應用程式提供了一些命令執行的操作。例如,想要測試是否可以正常連線,那麼web應用程式底層就很可能去呼叫系統操作命令,如果此處沒有過濾好使用者輸入的資料,就很有可能形成系統命令執行漏洞 在windows中,的作用是將...

命令執行漏洞

原理 由於開發人員在編寫源 時,沒有對源 中可執行的特殊函式入口做過濾,導致客戶端可以提交一些cmd命令,並交由伺服器程式執行。導致攻擊者可以通過瀏覽器或者其他客戶端軟體提交一些cmd命令 或者bash命令 至伺服器程式,伺服器程式通過system eval exec等函式直接或者間接地呼叫cmd....

命令執行漏洞

目前已爆出的命令執行漏洞web應用程式給使用者提供指定的遠端命令操作介面,在呼叫這些函式時,將使用者的輸入作為系統命令引數拼接到命令列中,如果對使用者輸入的引數過濾不嚴格,就到造成命令執行漏洞。1.以當前 的許可權去執行系統命令。2.繼承web服務程式許可權,向伺服器寫檔案,讀取敏感資料等。3.sh...