示範案例:
postmapping注解_Spring注解介紹
Javaweb 路徑周遊
靶場:webgoat-Path traversal(路徑周遊)
路徑(目錄)周遊是一種漏洞,攻擊者可以通過該漏洞通路或存儲應用程式運作位置之外的檔案和目錄。這可能會導緻從其他目錄讀取檔案,以及在檔案上傳覆寫關鍵系統檔案的情況下。
第一關
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 檔案上傳配合目錄周遊 覆寫檔案自定義檔案存儲位址-基于使用者名存儲問題
在此關卡中,目标是覆寫檔案系統上的特定檔案。當然,WebGoat 關心使用者,是以您需要将檔案上傳到正常上傳位置之外的以下位置,得知他的任務是将檔案上傳到webgoat指定的其他目錄上
1、随便上傳一個檔案抓包檢視:
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 2、抓包放行後,得到存儲路徑
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 3、可以看出是将fullName作為檔案的上一目錄上傳,即\username\fullname\檔案名
4、故我們嘗試通過…/存儲到上一路徑
5、将fullname改為…/test
6、放行,成功
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 7、白盒審計
POST、GET、@RequestBody和@RequestParam差別
@RequestParam有三個配置參數:
required 表示是否必須,預設為 true,必須。
defaultValue 可設定請求參數的預設值。
value 為接收url的參數名(相當于key值)。
關鍵代碼:
@ResponseBody
public AttackResult uploadFileHandler(@RequestParam("uploadedFile") MultipartFile file, @RequestParam(value = "fullName", required = false) String fullName) {
return super.execute(file, fullName);
}
預防:
目錄解析
springframework javaweb的spring架構,類似于php的phpthink架構
第二關
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 同樣的任務,隻是用了一個replace将…/去掉而已,雙寫即可
Payload: …//x
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 白盒審計:
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 過濾fullName中的…/一次
第三關
可知不對fullname驗證
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 發現fullname指派為什麼,最終都是test
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 抓包檢視,修改filename,在前面加…/
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 成功
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 第四關
這關要求找到名叫path-traversal-secret.jpg的檔案。
1、先點一下show random cat picture按鈕,burpsuite抓包
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 2、請求包沒有什麼有用的資料,放行檢視響應包
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 3、而任務是想讓我們嘗試找到一個名為path-traversal-secret.jpg,
4、像下圖這樣random-picture後面增加?id=1.jpg,發送封包之後,響應404 Not Found,發現伺服器查找的檔案名在id的值後面加上了.jpg。是以如果要檢視1.jpg的内容,應該在random-picture後面增加?id=1
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 接下來可以試試random-picture後面增加?id=path-traversal-secret
結果傳回了400 Bad Request
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 再試試random-picture後面增加?id=…/path-traversal-secret
也傳回了400 Bad Request,而且提示請求參數中有非法字元
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 把上述payload中的…/改為%2e%2e%2f(…/的url編碼)
還是傳回400 Bad Request,但是不提示有非法字元了。
那再往上一級目錄看看,?id=%2e%2e%2f%2e%2e%2fpath-traversal-secret
從傳回結果來看,已經找到要找的檔案了。
提示使用者名的SHA-512 hash就是本題的答案
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 網上搜一下SHA512線上,然後把使用者名進行SHA512 hash
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 将得到的結果填入小旗子後面的輸入框,submit secret即可通過本關
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 Javaweb 代碼分析-前端驗證安全問題
不安全登入 Insecure Login-基于前端認證
1、頁面提示單擊登入抓包
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 2、得到使用者和密碼,登入通過
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 1、黑盒測試檢視源代碼發現是js判斷,關閉js即可
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 2、白盒測試,檢視函數,發現有16進制,解碼後是賬号密碼
16進制轉換網頁
轉換前把\x去掉
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 3、白盒測試,檢視submit點選的源代碼
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 Javaweb 代碼分析-邏輯越權安全問題
代碼分析過關邏輯
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 此題目是為了說明請求傳回的包裡可能包含了更多的内容。此題目要求将response包傳回的所有參數比界面上View Profile中顯示的多的幾個參數,具體如下。
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 枚舉使用者參數對應資料庫的其他資料資訊
role,userid
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 url接口
在Stage 3中知道了tom的userId是2342384。
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 {
"role" : 3,
"color" : "yellow",
"size" : "small",
"name" : "Tom Cat",
"userId" : "2342384"
}
該題目就是通過路由通路tom的配置資訊,在輸入框裡輸入WebGoat/IDOR/profile/2342384,就通過了此題目。
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 白盒測試
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 通過參數值構造 URL 擷取使用者更多的資訊
WebGoat/IDOR/profile/2342384
Javaweb 代碼分析-XSS 跨站安全問題
XSS 跨站
代碼分析結合頁面解釋過關
第2關:yes
第7關:修改card number + 繞過黑名單
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼
JAVA 安全 - 目錄周遊通路控制 XSS 等安全問題Javaweb 路徑周遊Javaweb 代碼分析-前端驗證安全問題Javaweb 代碼分析-邏輯越權安全問題Javaweb 代碼分析-XSS 跨站安全問題拓展-安卓 APP 反編譯 JAVA 代碼 拓展-安卓 APP 反編譯 JAVA 代碼
#核心知識點:Java 代碼分析 === Apk_App 分析
子產品引用(架構,自帶等),路由位址,靜态檔案(html.js 等),簡易代碼了解等