記第一個js加密登入
阿新 • • 發佈:2018-12-10
最近在研究js加密登入的問題,使用python的第三方庫execjs進行js的載入,進行密碼的載入的演算法的載入。具體過程如下
登入的網站是粉筆題庫
使用谷歌的抓包工具f12進行請求追蹤登入頁面的抓包的結果如下
我們可以看到登入的請求只有一個就是loginV2,這個請求是post請求,打卡這個請求 可以看到密碼password的引數是加密的
這個密碼熟悉的人 都知道是一種動態加密 ,你完全可以直接複製,然後去登入,當你需要大批量的登入或者在某些引數加密而且,不同的頁面的加密結果不同的時候 你就需要進行加密的破解,這時候需要你去進行js的破解。加密的過程不進行詳細解釋 程式碼見。
import execjs import requests def get_js(password): f = open('fenbi.js','r',encoding='utf-8') line = f.readline() html_str = '' while line: html_str = html_str + line line = f.readline() cts = execjs.compile(html_str) password = cts.call('getpwdnum', password) return password def login(password): url = 'http://fenbi.com/web/users/loginV2' data={ 'password':get_js(password), 'persistent': 'true', 'phone': '1111111111', } headers = { 'Referer': 'http://fenbi.com/web/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36', } s = requests.Session() r = s.post(url=url,headers=headers,data=data) print(r.text) password = '1111111111' login(password)