记录某一天安服仔的漏洞挖掘过程
前言
作為一個拿著幾 K 工資的安服仔,某一天上級給了一個網站需要挖挖洞。客戶不愿意提供測試賬號,通過其他位置拿到賬號規則,然后進行爆破的時候把賬號都鎖了,因此還被投訴了。記錄一下一天的漏洞挖掘過程,過程有點啰嗦。
干活
拿到目標,通常先掃一下端口
訪問目錄提示 404
三大搜索引擎和github都沒找到相關網站的信息,這個時候只能先掃目錄了。
發現net版本的ueditor,還以為能shell了,訪問發現報錯了,問了一下大佬說可能需要登錄。看到了網站的絕對路徑,二話不說先寫個低危報告。
訪問wap目錄,需要在微信打開:
在微信打開,提示要關注企業號,沒找到企業號。
訪問目錄的時候有一個跳轉過程,在還沒跳轉之前先暫停。發現使用了webpack.
F12?-->?源代碼?發現可以看到 webpack:// ,可以直接在這看 JS ,也可以還原出來在本地看
webpack 還原代碼
方法一:
使用谷歌插件可以直接下載代碼:https://github.com/SunHuawei/SourceDetector
需要編譯,我編譯失敗了
方法二:
# 安裝reverse-sourcemap npm install --global reverse-sourcemap# 下載 *.js.map(右鍵查看源代碼,找到js,在js后面加上.map) curl -O https://127.0.0.1/*.js.map# 使用reverse-sourcemap reverse-sourcemap --output-dir ./test xxx.js.map# 得到js未授權訪問
API 要未授權才能撿到洞,要驗證感覺沒什么戲了。
查看JS,URL,參數,請求方式 都寫明了,跟著構造就對了。
發現這是通行碼的二維碼base64編碼的圖片,可以通過這個通行碼到門崗處領取訪客卡。
創建一個html,使用img標簽成功得到二維碼。
信息泄露
這是一個搜索用戶的接口
成功獲取到 3568 條員工信息
SQL注入
通過構造請求,發現 area 參數存在SQL注入
手工把幾個參數都嘗試一遍,沒 waf 沒什么難度。看長度證明漏洞
第二個注入
通過手工把上面的參數都測試一遍,一開始沒發現什么。當在 ProcLnstID 使用運算符的時候發現漏洞
ProcLnstID=1/1 返回正常
ProcLnstID=1/0 返回錯誤
任意文件下載
發現文件上傳的 JS
// 上傳 const upload = function (file) {let url = '/xxxxxxxxxx/loadFile'let postData = new FormData() // 創建form對象postData.append('file', file, file.name) // 通過append向form對象添加數據let config = {headers: { 'Content-Type': 'multipart/form-data' }}return ajax.post(url, postData, config) }構造請求,發現只能上傳圖片,又一次與getshell無緣。
burpsuite 右鍵 點擊 change body encoding ,從post 轉成 form-data ,在 Content-Dispostition: 加上 name="file" 就可以成功上傳了
發現圖片查看的 JS
一開始先測試一下 SSRF ,報錯了。然后嘗試讀取文件,成功讀取
總結
大概流程:拿到目標-->掃端口-->掃目錄--> 發現webpack-->查看JS-->構造請求-->撿到漏洞
?
總結
以上是生活随笔為你收集整理的记录某一天安服仔的漏洞挖掘过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业参加HVV的防守思路总结
- 下一篇: 渗透测试中dns log的使用