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清理了一資料所以不存在可利用的注入命令列漏洞