墨者學院-命令注入執行分析
阿新 • • 發佈:2021-12-06
命令執行漏洞
1、命令執行(Command Execution)漏洞即黑客可以直接在Web應用中執行系統命令,從而獲取敏感資訊或者拿下shell許可權。2、命令執行漏洞可能造成的原因是Web伺服器對使用者輸入命令安全檢測不足,導致惡意程式碼被執行。
3、更常見的命令執行漏洞是發生在各種Web元件,包括Web容器、Web框架、CMS軟體、安全元件等。
通常就是在正常命令後加上 & 或者 | 來達到執行惡意程式碼的目的,因為計算機在執行完成一條命令之後遇到管道符會繼續執行下一條命令,這就導致了漏洞的可利用性。
靶場操作
靶場地址:https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe
背景介紹
開啟靶場環境,是一個ping的命令
先嚐試ping一下本地,發現是可以ping通的
即可以執行shell命令,嘗試使用管道符執行 ls 命令
無法執行,但會彈窗,判斷應該是前段js驗證,把js禁用試試
果然是這樣,成功回顯了,試試看key
127.0.0.1|cat key_30702215758394.php
結果什麼都沒有,所以就是是這一步出問題的,目前我們輸入這句命令大概有幾個問題點
1.cat過濾
2.空格過濾
3.php過濾
我都試了一遍,折騰了很久,最後發現是過濾的空格。
空格被過濾的話,大致可以用這幾種方法繞過
< > %20%09 %IFS < ${IFS} $IFS$9
此時構造payload
127.0.0.1|cat<key_30702215758394.php
成功獲得key
心得
命令執行主要是考慮過濾,每種可能性都會有,都需要考慮,在不知道原始碼的情況下,測試過濾就會變得複雜,瞭解各類繞過方法才是解決問題的關鍵。