本文首發於奇安信攻防社區:
https://forum.butian.net/share/1441
哈嘍everyone,我又雙回來了,猴子點點的滲透測試工程師這次來分享一個關於前端JS滲透測試的實戰教程,這一次也是干公司的項目,老樣子還是一個登錄框的滲透測試。前端JS通常會泄漏一些接口用於與後台服務器交互,時常會出現未授權或者越權等操作,這一次遇到一個很有意思的接口,下面進入正題吧
首先登錄框還是那個登錄框,他又來了
用Wappalyzer識別一下看看用了什麼技術搭建的網站,一看vue就知道了這是一次很費眼睛的JS前端代碼審計了
F12到web前端控制台看看,vue框架就是前後端分離的居多,其中有個特性就是js文件很多接口都寫在前端,通過js文件去跟服務器後端交互的,先看app這個js文件是主文件,很多接口都寫在這個文件裡面
這裡教一些前端看代碼的小技巧,第一個是js代碼格式化,點擊下面這個花括號,就能格式化JS代碼比較好看
第二點就是如何找接口,通過ctrl+F搜索path: ',就能看到他的路由配置或者直接搜routes或者home(有沒有大佬還有好的方法可以評論區說說)
這裡能看到有127個接口,接下來一個個測試
接口這麼多我只能說未來可期,發現一個接口是https://X.X.com/#/XXXXconferenceRoomList,拼接直接get請求訪問,前端會自動向後端發起對應接口的查詢,替換部分參數即可查詢到想要查詢到信息,未做權限校驗,未授權直接調用接口查到一些敏感信息了
下面有發現一個接口時XXXXAddressBookByProjectId,也是直接泄漏了地址、姓名、電話等敏感信息
下面就不一一展示了,泄漏的東西太多,接下來看到一個很有趣的接口XXXXUserInfo,這明顯是一個用戶信息的接口,訪問後顯示系統修復中
見到這個不要慌,URL後面直接?id=1試試->不行,把數據包改成POST果然可以了,直接可以遍歷用戶了,接口還返回了用戶名和密碼,這不就齊活了
輸入賬號密碼,直接就進來了,還是管理員權限,真希望以後都遇到這樣的開發,我愛死他
接下來就找上傳接口了,其實在前端找上傳接口也有,但是他上傳的filename名猜不到,只能進來找找了,果然在合同的地方找到了一個上傳
使用burp抓包上傳,一看他的name叫enclosure,牛的這我確實猜不到,一般上傳name都是什麼upload、file等
雖然顯示導入失敗,但是用之前在前端查到接口可以查詢這個文件的id,裡面是有返迴路徑的
接着上冰蠍結束這次滲透之旅
總結寫在後面,前面也說了找接口用通過ctrl+F搜索path: ',就能看到他的路由配置或者直接搜routes或者home,還有就是有的js下面會配置POST包或者GET包參數,如果POST就是data,GET就是params,不像這次這麼簡單直接訪問就把參數補齊了,我只能說細心再細心很重要~,再見各位期待下次再見。
掃碼關注