點選"仙網攻城獅”關注我們哦~
不當想研發的滲透人不是好運維
讓我們每天進步一點點
簡介
CTFHub 為網絡安全工程師提供網絡安全攻防技能教育訓練、實戰、技能提升等服務。
「賽事中心」提供全網最全最新的 CTF 賽事資訊,關注賽事定制自己專屬的比賽月曆吧。
「技能樹」提供清晰的 CTF 學習路線,想要變強就加點,哪裡不會點哪裡。
「曆年真題」提供無限次賽後複盤,邊學邊練。
「工具」提供各類常用工具,打仗沒有一把趁手的武器怎麼行。
實戰
應用有時需要調用一些執行系統指令的函數,當伺服器沒有經過嚴格過濾使用者的參數,這時候就可能導緻指令執行,進而導緻指令執行漏洞
本章将講解下面三個内容比較實用,eval執行、檔案包含(讀取源代碼)、綜合過濾。
一、eval執行
eval() 函數可将字元串轉換為代碼執行,并傳回一個或多個值,在進行源代碼審計時可以直接搜尋eval來進行分析是否安全。
1.運作靶機,輸入靶機位址後傳回一段源代碼,說明參數的處理邏輯。
2.分析後發現cmd參數使用eval進行傳參,參數沒有經過任何的處理,在url後面加入cmd=system(“ls”); 發現傳回目前目錄下檔案。
3.接着加../查找到flag檔案
4.使用cat ../../flag_946獲得flag
二、讀取源代碼
1.運作靶機檢視源代碼中處理邏輯發現使用php僞協定。
2.最下面告訴我們了flag的位址,我們可以嘗試利用php://filter去嘗試讀取一下這個檔案,建構payload:?file=php://filter/read/resource=/flag成功擷取flag
三、綜合過濾
1.運作靶機發現正則過濾,過濾了目錄操縱符、運算符、分号、空格、cat、flag、ctfhub字元
2.可以使用%0a換行進行繞過,空格可以用${IFS}、cat可以用more、flag可以用正則f***,%0a因為是url編碼是以需要寫在url中,如果寫在輸入框中會被再次編碼而注入不成功。
建構payload:127.0.0.1%0als 檢視目錄
3.檢視檔案夾内容127.0.0.1%0acd${IFS}f***_is_here%0als
4.檢視flag、127.0.0.1%0acd${IFS}f***_is_here%0amore${IFS}f***_31393309531738.php
總結:
漏洞成因:
1.代碼過濾不嚴格
2.系統的漏洞造成指令執行
3.調用的第三方元件存在代碼執行漏洞
常用指令執行函數:
system(): 該函數會把執行結果輸出。
passthru(): 該函數隻調用指令,并把運作結果原樣地直接輸出沒有傳回值
exec(): 不輸出結果,傳回執行結果的最後一行
shell_exec(): 不輸出結果,傳回執行結果
修複建議:
1. 盡量少使用執行指令的函數或者直接禁用
2.參數值盡量使用引号包括
3.在使用動态函數之前,確定使用的函數是指定的函數之一
4.在進行執行指令的函數|方法之前,對參數進行嚴格過濾,對敏感字元進行轉義
往期内容
ATT&CK實戰-紅隊評估之二
簡單講解一下什麼是ATT&CK架構
CTF學習和比賽平台簡介
更多資訊長按二維碼 關注我們
覺得不錯點個“贊”呗