命令執行漏洞(Command Injection)
Command Injection,即命令注入,是指通過提交惡意構造的參數破壞命令語句結構,從而達到執行惡意命令的目的。
命令介紹:
ping 127.0.0.1 && ipconfig
ping 127.0.0.1&&ipconfig
ping 127.0.0.1 & ipconfig
ping 127.0.0.1&ipconfig
ping 127.0.0.1000 || ipconfig(前面指令錯誤,執行后面)
ping 127.0.0.1000||ipconfig
ping 127.0.0.1 | ipconfig
ping 127.0.0.1|ipconfig
ping 127.0.0.1 ; ipconfig(Linux)
ping 127.0.0.1 |ipconfig
級別:Low
工具:burpsuite
源碼審計:直接拼接輸入指令,無任何防護
測試:burp抓包,命令介紹中指令制作字典,進行跑包。查看返回包。
級別:Medium
工具:burpsuite
源碼審計:對輸入指令進行了黑名單防護,過濾了&&和;
可進行黑名單繞過,可更換指令繞過。
測試:burp抓包,命令介紹中指令制作字典,進行跑包。查看返回包。
級別:High
工具:burpsuite
源碼審計:對輸入指令進行了黑名單防護,過濾了大多數連接符,可進行黑名單繞過,可通過指令之間的空格加減繞過。
測試:burp抓包,命令介紹中指令制作字典,進行跑包。查看返回包。
級別:Impossible
工具:burpsuite
源碼審計:使用了token進了CSRF防護,對接受ip參數進行非法字符過濾,對ip地址進行分隔,並判斷每個數字進行是否是數字判斷。
測試:無法命令執行
防御方法: