日常我們在工作時做安全測試或者日常的漏洞挖掘中,往往會遇到請求加密,參數加密的情況,而且絕大部分都是前端加密的情況,那么我們就可以手動調試跟蹤去解決這個加密問題,對我們自己要發送的數據進行編碼來幫助我們進行測試
一般定位都會采用關鍵函數跟蹤的方式,流程如下:
選擇需要定位的標簽,一般都是提交、登錄、保存等按鈕,通過這些按鈕再去查找其中對應的事件函數,然后到調試器欄ctrl+shift+f全局搜索函數名定位,定位到關鍵函數后,對其打個斷點,然后跟一跟基本就能確定走了什么加密流程。
隨后就需要手工在控制臺對函數進行調用對自己要測試的數據進行編碼,當然也可以把這些js文件保存下來,通過python腳本調用js函數。
burp也有一個jsEncrypter插件,詳情可以去github主頁瞅瞅,是把js保存下來然后使用phantomjs調用加密函數對數據進行加密。
登錄時抓包查看到數據包如下,可以看到passwd字段進行了明顯的加密
一般密碼加密會在登錄事件進行加密處理,那么我們從這里開始跟蹤,選中登錄按鈕右鍵檢查元素定位。
可以看有一個checkusernew()函數,轉到調試器,直接ctrl+sgift+f全局搜索這個函數。
然后轉到函數定義處,直接點擊右側加個斷點
然后重新走登錄流程,自動運行到斷點處,然后F10 不過、F11 步入、shift+F11 步出。
對關鍵函數如hex_md5和Encrypt需要跟進去看下做了什么。
跟進encrypt函數
我們需要去跟進獲取加密的key和iv么,當然是不需要的,我們只需要在控制臺調用執行即可
但是如何批量呢?有兩種方案,一個直接在控制臺寫js代碼或者拉取相應JS,調用python的PyExecJS模塊。
我更傾向于直接在控制臺調用
let arr=['a', 'b', 'c', 'd', 'e'] //定義一個列表
var a="" //定義一個空字符串
for (let i in arr) {a=a + Encrypt(hex_md5(arr[i])) + "\n"} //循環跑
最后輸出字符a即可
在測試過程遇到的情況往往可能要復雜得多,跟了半天都沒有跟到關鍵函數也有可能發生。再加上web前端項目打包導致函數更加不好找。
這個時候就要果斷放棄,打開下一個。
序源碼全開源,全部內容均可修改,無任何加密,視頻解析接口失效請看上圖更改接口地址即可。
需要具體資料可以私信我
天小白給大家推薦一款視頻加密軟件
軟件只有2MB不到
一款簡單易用,小巧的視頻加密軟件
單文件綠色版,打開即可使用
請注意加密的方式
單純想加個密碼而已,選第三個
打開視頻輸入密碼即可播放
如果想綁定電腦,需要對方發機械碼給你,點“創建播放密碼”進行解密!
高級設置,貌似可以自定義設置解密的窗口
原文及下載地址:https://hezibuluo.com/ppvm.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。