練手餵飯系列來嘍~
這周在讀者羣順手搞了個小活動,在羣裏摸魚的時候有水友說練手系列能不能來點簡單的寫詳細點。python
因此我此次準備了兩個比較簡單的練手加密,從分析到複寫加密一步一步截圖, 我就不信這樣你還學不會!
算法
先打開受害網站 -> 打開控制檯 -> 切換至 XHR
完美,刷新就看到了。瀏覽器
這裏要解決的只有兩個:markdown
接下來定位加解密位置。cookie
按照以前的套路,咱們第一步是要搜索加密參數名 token編輯器
打開 search ,搜索參數名就找到咱們要的 token 了。
ide
按照搜索的結果文件名,猜也猜到是第二個結果,點擊打開就能夠看到 token 的生成代碼了。函數
var token = md5(String(page) + String(num) + String(timestamp));
這段代碼咱們能夠用 js 實現也能夠用 python。
網站
偷懶一點用 python 實現 token 加密算法:加密
按照請求裏看到的參數生成 token 試試
如今有了 token 參數以後接下來看看這個解密怎麼搞:
右鍵 查看源代碼 發現了這個:
圖中 ip 列表的位置是沒有數據的,只有 id ip_list ,這是個惟一值,因此值得再搜索一下:
追進去以後就能夠看到下面的代碼了:
打上斷點,執行兩步能夠看到 decode_str 後就開始出現咱們須要的數據了,因此這裏的 decode_str 就是咱們要的解密方法:
咱們複製到編輯器裏調試運行一下:
能夠看到提示 Base64 未定義, 咱們追進去把 Base64 的算法複製出來:
再次運行,根據提示缺失 window 對象, 根據以前的方式是缺啥補啥,但咱們先接下來分析一下這裏調用的方法:
這裏調用的是 String.fromCharCode 方法,咱們替換下再次運行:
能夠看到這裏就解出來了。
加密一,完。
此次要分析的網站不一樣上一個的是,此次網站使用的是 cookie 加密, cookie 的有效期過了以後就會返回一段 js 。
使用有效的 cookie 請求咱們須要的數據就在返回的網頁中,因此咱們只要解決這段 js 就行了。
把返回的 js 複製到編輯器裏格式化,能夠看到代碼分爲兩個部分:
參數定義部分:
函數執行部分:
直接執行沒得出結果,爲了方便知道這段代碼發生了什麼,咱們複製到 瀏覽器 console 裏看看:
爲了方便觀察,咱們把第二段的 eval 修改成 console.log
能夠看到這段代碼寫入了 cookie:
繼續分析,咱們把這段 cookie 相關的代碼複製出來執行一下:
能夠看到這裏成功生成了一段 cookie 值 和咱們在網頁上看到的同樣!
到這裏加密就分析結束了,獲取所有代碼,請後臺回覆「JS逆向」
加密二,完。