1. 程式人生 > 實用技巧 >Dvwa教程之命令列注入(二)

Dvwa教程之命令列注入(二)

Command Injection,即命令注入,是指通過提交惡意構造的引數破壞命令語句結構,從而達到執行惡意命令的目的。PHP命令注入攻擊漏洞是PHP應用程式中常見的指令碼漏洞之一

使用者通過瀏覽器提交執行命令,由於伺服器端沒有對執行函式進行過濾,從而造成可以執行危險命令。

命令連線符:

command1 && command2先執行command1後執行command2

command1 | command2只執行command2

command1 & command2先執行command2後執行command1

以上三種連線符在windows和linux環境下都支援

常用的注入命令:

command1 & command2

不管command1執行成功與否,都會執行command2(將上一個命令的輸出作為下一個命令的輸入)

command1 && command2

先執行command1執行成功後才會執行command2

command1 | command2

只執行command2

command1 || command2

command1執行失敗,再執行command2(若command1執行成功,就不再執行command2)

常用的url編碼:

%20 = 空格

%5c = \

%26 = &

%7c = |

若Dvwa顯示亂碼

則要修改 ....\WWW\DVWA-master\dvwa\dvwaPage.inc.php 這個檔案把u-f8修改成gbk2312 (277行).

檢視伺服器原始碼

low 級別

未作任何字串過濾,因此什麼命令列都可以注入 && || & |

Medium 級別

做了&&過濾 因此還可以使用& || 和|進行命令列注入

High 級別

雖然過濾了所有字串 但是有一個漏洞 '|'=>'', 多了一個空格 命令列注入的時候輸入如

127.0.0.1|net user
就匹配失敗

Impossible 級別

用stripslashes函式和explode清理了一資料所以不存在可利用的注入命令列漏洞