1.指令行注入介紹
指令執行概念
指令執行漏洞指在可以随意執行系統指令,屬于高危漏洞之一,也屬于代碼執行範圍内,好比說一句話木馬<[email protected]($_POST[‘cmd’]);?>
分類
代碼過濾不嚴格或者無過濾
系統漏洞造成的指令執行,bash破殼漏洞,該漏洞可以構造環境變量的值來執行具有攻擊力的腳本代碼,會影響到bash互動的多種應用,例如http,ssh,dhcp
調用第三方元件,例如php(system(),shell_exec(),exec(),eval()),java(struts2),thinkphp(老牌的php架構)
&&和&和|和||
&&: command1&&command2
指令執行順序:兩個都執行,如果第一個指令不可執行第二個也不執行了。
&:command1&command2
指令執行順序:兩個都執行第一個指令不可執行第二個也可以執行
|:command1|command2
指令執行順序:隻執行command2的指令
||:command1||command2
指令執行順序:隻執行command1的指令,如果第一個執行不了,就執行第二個指令
一些常用指令
windows下
dir,
ipconfig,
arp-a,
calc,
regedit,
netstat-ano
arp-a:(arp欺騙攻擊)在這個表裡面假設
linux下
cat /etc/passwd,
id,
groups,
cat /etc/group,whoami,pwud,
name-a,
netstat-pantu,
netstat-nr
2.Command Injection(指令行注入)
實驗環境
- Windows伺服器:Windows xp,IP位址:192.168.65.128;

2.測試機:Windows10實體機(開啟代理,代理伺服器為burpsuit)
實驗過程
安全級别:Low
- 設定安全級别;
2.檢視源碼;
3.源碼分析;
stristr(string,search,before_search)
string | 必需。規定被搜尋的字元串。 |
search | 必需。規定要搜尋的字元串。 如果該參數是數字,則搜尋比對該數字對應的 ASCII 值的字元。 |
before_search | 可選。預設值為 "false" 的布爾值。 如果設定為 "true",它将傳回 search 參數第一次出現之前的字元串部分。 |
php_uname(mode)
這個函數會傳回運作php的作業系統的相關描述,參數mode可取值”a” (此為預設,包含序列”s n r v m”裡的所有模式),”s ”(傳回作業系統名稱),”n”(傳回主機名),” r”(傳回版本名稱),”v”(傳回版本資訊), ”m”(傳回機器類型)。
可以看到,伺服器通過判斷作業系統執行不同ping指令,但是對ip參數并未做任何的過濾,進而導緻了嚴重的指令注入漏洞;
4.實驗操作;
指令行執行漏洞
127.0.0.1
127.0.0.1&&ipconfig
127.0.0.1&ipconfig
127.0.01|ipconfig
127.0.0.1||ipconfig
安全級别:Medium
- 設定安全級别;
2.檢視源碼;
3.源碼分析;
Medium級别相比Low級别的代碼,伺服器端對ip參數做了一定過濾,把”&&”“ ;”;”替換為空;
Medium級别的過濾方式本質上采用的是黑名單機制,相比白名單依舊存在安全問題;
4.實驗過程
4.1 嘗試使用&&,被過濾;
4.2 伺服器過濾了&&,并未過濾&;
4.3 伺服器過濾了&&,并未過濾 | ;
繞過方法
4.4 繞過方法1 : 采用&&&的方式;這種方法實際就是&模式;
4.5 繞過方法2 : 采用&;&的方式;(沒有循環檢測機制,是以這裡相當于還是過濾了;于是還可以用&&);
安全級别:High
1.設定安全級别;
2.檢視源碼;
3.源碼分析;
'&' => '',
';' => '',
'| ' => '', #“| ”後面有個空格;
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
'||' => '
伺服器對IP參數做了限制,過濾了如上字元,将如上字元都替換為空;
注:源碼中是将“| ”替換為空,并不是“|”,是以可以采用“|”的方式繞過;
4.實驗過程;
4.1 嘗試采用"&","| "等方式實作指令行注入;
繞過方式
4.2 繞過方法“|”;
安全級别:Impossible
1.設定安全級别;
2.檢視源碼;
3.源碼分析;
在Impossible級别中,代碼加入了Anti-CSRF token,同時對參數ip進行了嚴格的限制,隻有諸如“數字.數字.數字.數字”的輸入才會被接收執行,杜絕了指令注入漏洞;
4.實驗過程;