Web應用程序接收用戶輸入,並拼接到要執行的系統命令中執行。php
產生漏洞的緣由:git
1.用戶輸入未過濾或淨化;github
2.拼接到系統命令中執行。shell
system:執行外部程序,而且顯示輸出apache
exec:執行一個外部程序函數
shell_exec:經過 shell 環境執行命令,而且將完整的輸出以字符串的方式返回。工具
passthru:執行外部程序而且顯示原始輸出測試
popen:打開進程文件指針url
<?php echo "<pre>"; if(isset($_GET["cmd"])){ system($_GET["cmd"]); } echo "</pre>"; ?>
示例代碼:spa
<?php echo "<pre>"; $arg = $_GET['cmd']; if ($arg) { system("ping $arg"); } echo "</pre>"; ?>
拼接符介紹:
&:不管前面的語句的真假,後面都會執行
&&:前面的語句爲假,後面的也不執行
|:直接執行後面的語句
||:前面的語句爲假,纔會執行後面的
示例代碼:
<?php echo "<pre>"; $arg = $_GET['cmd']; if ($arg) { system("ping -c 4 $arg"); } echo "</pre>"; ?>
能夠用kali的apache2來搭建。
拼接符介紹:
;:分號是前面的語句執行完後,纔會執行後面的語句
|:管道符,顯示後面的語句的執行結果
||:前面的語句爲假,才執行後面的
&和&&也是同Windows的。
1.Commix是一個使用Python開發的漏洞測試工具,這個工具是爲了方便的檢測一個請求是否存在命令注入漏洞,而且對其進行測試,在其做者發佈的最新版本中支持直接直接導入burp的歷史記錄進行檢測,大大提升了易用性。
項目地址:https://github.com/stasinopoulos/commix
2.幫助信息:
kali自帶commix。
commix -h獲取幫助信息。
3.基本使用:
commix -u "url"