挖掘后臺api的未授權訪問漏洞
現在越來越多的網站前后端分離,javascript代碼基本都會使用webpack這樣的工具進行打包,打包過后的javascript代碼會被混淆壓縮,一個js文件就上萬行代碼,增加了讀取javascript源碼業務邏輯的難度。
(如果存在xxx.js.map可以進行還原js,但現在很多安全性做的還可以的都沒有),很多人可能會因此放棄去看這些js的api并測試,但是其實就是在這種api里面會存在很多漏洞。
這個方式對測試那種需要登錄的后臺特別管用,首先清空瀏覽器緩存,打開burpsuite抓包功能,訪問一個打包了javascript的網站。

如上圖在網站的根路徑,前后端分離使用webpack打包的巨大壞處就是即使這里是網站的登錄界面,但是這里加載的app.xxxxxx.js(不是類似這個js,那你就點一下登錄看他的登錄接口路徑或者用其他接口的路徑在burpsuite里面搜看js接口在哪個文件)里面一般就會包含后臺的所有接口。

如上圖所示有個api的路徑包含is-login-need,我直接在response搜索哪個js存在這個api,然后就找到這個包含所有api的js。
基本網站的api都存在共性,這個地方就可以直接讀取整個js文件內容,使用雙引號對文件內容進行分割,遍歷所有分割的結果,如果遍歷分割的單個值存在 /api/就保存下來,這樣就拿到了后臺的所有api接口。
然后拿著這些api接口送的intruder使用GET/POST(或者部分網站存在PUT/DELETE自己視情況而定)遍歷一遍,對于返回結果顯示需要授權的可以直接忽略,如果存在未授權的接口就需要你去構造參數。
(這里需要提一下有些網站的api接口參數直接存在于這個api的js里面(即使在這個js里面有時候運氣不好也不好找,但是有些網站的參數就需要你在后臺訪問相應的那個接口頁面然后那個頁面的js會存在參數,這個真的就是要看運氣了)。
使用這個方式找到某滴(不是滴滴)一個后臺未授權接口,直接提示我哪些參數需要提供然后直接構造可以看到用戶的身份證地址電話等信息。
也找到某直聘一個后臺api返回一個內部app下載地址,app的登錄界面直接fastjson rce,還有其他很多網站那種垃圾的未授權的接口,還有很多文件上傳接口都是未授權。
(很可惜要么只能傳圖片要么傳到oss服務器,希望哪天可以rce)。