簡述:
oasys是一個OA辦公自動化系統,使用Maven進行專案管理,基於springboot框架開發的專案,mysql底層資料庫,前端採用freemarker模板引擎,Bootstrap作為前端UI框架,整合了jpa、mybatis等框架。
下載地址:https://github.com/misstt123/oasys
此專案部署極為簡單,我使用的是phpstudy的5.7版本mysql,修改application.properties配置,在IDEA匯入oasys.sql資料後,就可以直接執行
並訪問後臺地址:http://localhost:8088/logins
注意別埠衝突
CSRF:
登入後臺,在使用者皮膚處,修改便籤功能存在csrf漏洞。
點選修改,抓包,點選生成CSRF的Poc:
將生成Poc的URL複製到瀏覽器,訪問:
訪問後,發現已經按照Poc上內容進行了修改:
SQL隱碼攻擊:
程式碼分析:
在pom檔案發現採用mybatis依賴:
全域性搜尋${
找到outtype引數,定位到xml檔案:
符合sql注入條件,於是開始找對應介面,引數,全域性搜尋allDirector欄位:
定位到介面層,於是找介面實現類,發現無,於是全域性搜尋該介面名稱,找哪裡引用了此介面:
發現AddController層引用該介面,並透過mapper進行資料庫操作,在該controller層搜尋原介面方法,定位到具體程式碼塊:
可以看到該引數沒有經過任何過濾,於是根據程式碼塊註釋進行漏洞復現:
在後臺找到通訊錄,找到外部通訊錄,點選新增聯絡人:
抓包找到對應資料包:
將localhost換成自己對應的IP,放入sqlmap驗證成功:
其實從最初的xml檔案來看,其它幾個引數也存在sql注入。
【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “部落格園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
儲存XSS:
登入後臺後,使用者處點選修改資訊,插入xss程式碼造成彈窗。
根據提交儲存的介面全域性搜尋:
找到相關資訊,根據程式碼分析,無任何過濾直接儲存,造成xss漏洞:
此後臺很多地方也均無過濾,可以直接插入xss程式碼執行。
任意檔案讀取漏洞:
在控制層UserpanelController處,如下程式碼存在邏輯錯誤導致任意檔案讀取:
可以看出此程式碼塊是用來處理影像請求,並將資料返回到http響應的程式碼。
這段程式碼我初看並沒看懂,於是對程式碼進行詳細分析:
紅框程式碼邏輯很簡單,先傳入的f.getPath()值,再透過FileInputStream進行檔案讀取並返回到http響應。
關鍵就是f.getPath()的值怎麼來的?
如上紅框程式碼,f.getPath()的值來自於rootpath與path的拼接,而path的值則是,先透過request.getRequestURI()獲取,再將/image替換為空得來。
但rootpath的值呢?
於是我在該類搜尋rootpath找到其定義程式碼:
發現以@Value註解定義rootpath的值,而@Value註解的作用就是從專案配置檔案中獲取資訊,於是轉到配置檔案,搜尋關鍵字:rootpath
繼續回到controller程式碼,此時找到rootpath的值,也明白了讀取檔案的邏輯,於是嘗試構造多個/image..路徑讀取我D盤upload下的檔案:
如下圖,讀取成功:
更多網安技能的線上實操練習,請點選這裡>>