网页爬虫之路 x拍
抓包


JS加密分析








编码
调试JS

得到参数
var userNowTime = Date.parse(Date()) /1000 var md5 = function(value) { var hex_chr = "0123456789abcdef", rhex = function(num) { var str = ""; for (j = 0; j <= 3; j++) str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F); return str; }, str2blks_MD5 = function(str) { nblk = ((str.length + 8) >> 6) + 1; blks = new Array(nblk * 16); for (i = 0; i < nblk * 16; i++) blks[i] = 0; for (i = 0; i < str.length; i++) blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8); blks[i >> 2] |= 0x80 << ((i % 4) * 8); blks[nblk * 16 - 2] = str.length * 8; return blks; }, add = function(x, y) { var lsw = (x & 0xFFFF) + (y & 0xFFFF); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF); }, rol = function(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); }, cmn = function(q, a, b, x, s, t) { return add(rol(add(add(a, q), add(x, t)), s), b); }, ff = function(a, b, c, d, x, s, t) { return cmn((b & c) | ((~b) & d), a, b, x, s, t); }, gg = function(a, b, c, d, x, s, t) { return cmn((b & d) | (c & (~d)), a, b, x, s, t); }, hh = function(a, b, c, d, x, s, t) { return cmn(b ^ c ^ d, a, b, x, s, t); }, ii = function(a, b, c, d, x, s, t) { return cmn(c ^ (b | (~d)), a, b, x, s, t); }, MD5 = function(str) { x = str2blks_MD5(str); var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (i = 0; i < x.length; i += 16) { var olda = a; var oldb = b; var oldc = c; var oldd = d; a = ff(a, b, c, d, x[i + 0], 7, -680876936); d = ff(d, a, b, c, x[i + 1], 12, -389564586); c = ff(c, d, a, b, x[i + 2], 17, 606105819); b = ff(b, c, d, a, x[i + 3], 22, -1044525330); a = ff(a, b, c, d, x[i + 4], 7, -176418897); d = ff(d, a, b, c, x[i + 5], 12, 1200080426); c = ff(c, d, a, b, x[i + 6], 17, -1473231341); b = ff(b, c, d, a, x[i + 7], 22, -45705983); a = ff(a, b, c, d, x[i + 8], 7, 1770035416); d = ff(d, a, b, c, x[i + 9], 12, -1958414417); c = ff(c, d, a, b, x[i + 10], 17, -42063); b = ff(b, c, d, a, x[i + 11], 22, -1990404162); a = ff(a, b, c, d, x[i + 12], 7, 1804603682); d = ff(d, a, b, c, x[i + 13], 12, -40341101); c = ff(c, d, a, b, x[i + 14], 17, -1502002290); b = ff(b, c, d, a, x[i + 15], 22, 1236535329); a = gg(a, b, c, d, x[i + 1], 5, -165796510); d = gg(d, a, b, c, x[i + 6], 9, -1069501632); c = gg(c, d, a, b, x[i + 11], 14, 643717713); b = gg(b, c, d, a, x[i + 0], 20, -373897302); a = gg(a, b, c, d, x[i + 5], 5, -701558691); d = gg(d, a, b, c, x[i + 10], 9, 38016083); c = gg(c, d, a, b, x[i + 15], 14, -660478335); b = gg(b, c, d, a, x[i + 4], 20, -405537848); a = gg(a, b, c, d, x[i + 9], 5, 568446438); d = gg(d, a, b, c, x[i + 14], 9, -1019803690); c = gg(c, d, a, b, x[i + 3], 14, -187363961); b = gg(b, c, d, a, x[i + 8], 20, 1163531501); a = gg(a, b, c, d, x[i + 13], 5, -1444681467); d = gg(d, a, b, c, x[i + 2], 9, -51403784); c = gg(c, d, a, b, x[i + 7], 14, 1735328473); b = gg(b, c, d, a, x[i + 12], 20, -1926607734); a = hh(a, b, c, d, x[i + 5], 4, -378558); d = hh(d, a, b, c, x[i + 8], 11, -2022574463); c = hh(c, d, a, b, x[i + 11], 16, 1839030562); b = hh(b, c, d, a, x[i + 14], 23, -35309556); a = hh(a, b, c, d, x[i + 1], 4, -1530992060); d = hh(d, a, b, c, x[i + 4], 11, 1272893353); c = hh(c, d, a, b, x[i + 7], 16, -155497632); b = hh(b, c, d, a, x[i + 10], 23, -1094730640); a = hh(a, b, c, d, x[i + 13], 4, 681279174); d = hh(d, a, b, c, x[i + 0], 11, -358537222); c = hh(c, d, a, b, x[i + 3], 16, -722521979); b = hh(b, c, d, a, x[i + 6], 23, 76029189); a = hh(a, b, c, d, x[i + 9], 4, -640364487); d = hh(d, a, b, c, x[i + 12], 11, -421815835); c = hh(c, d, a, b, x[i + 15], 16, 530742520); b = hh(b, c, d, a, x[i + 2], 23, -995338651); a = ii(a, b, c, d, x[i + 0], 6, -198630844); d = ii(d, a, b, c, x[i + 7], 10, 1126891415); c = ii(c, d, a, b, x[i + 14], 15, -1416354905); b = ii(b, c, d, a, x[i + 5], 21, -57434055); a = ii(a, b, c, d, x[i + 12], 6, 1700485571); d = ii(d, a, b, c, x[i + 3], 10, -1894986606); c = ii(c, d, a, b, x[i + 10], 15, -1051523); b = ii(b, c, d, a, x[i + 1], 21, -2054922799); a = ii(a, b, c, d, x[i + 8], 6, 1873313359); d = ii(d, a, b, c, x[i + 15], 10, -30611744); c = ii(c, d, a, b, x[i + 6], 15, -1560198380); b = ii(b, c, d, a, x[i + 13], 21, 1309151649); a = ii(a, b, c, d, x[i + 4], 6, -145523070); d = ii(d, a, b, c, x[i + 11], 10, -1120210379); c = ii(c, d, a, b, x[i + 2], 15, 718787259); b = ii(b, c, d, a, x[i + 9], 21, -343485551); a = add(a, olda); b = add(b, oldb); c = add(c, oldc); d = add(d, oldd); } return rhex(a) + rhex(b) + rhex(c) + rhex(d); }; return MD5(value); }

登录
import execjs import requests def get_password_time(password): with open('aipai.js', encoding='utf-8') as f: js_code = f.read() ctx = execjs.compile(js_code) password = ctx.call('md5', password) userNowTime = ctx.eval('userNowTime') return password, userNowTime def login(account): url = 'http://www.aipai.com/login.php' data = dict( action='loginNew', user=account['user'], password=account['password'][0], keeplogin='1', comouterTime='1', userNowTime=account['password'][1], ) print(data) headers = { "User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)", } resp = requests.post(url, headers=headers, data=data) print(resp.status_code) print(resp.text) if __name__ == '__main__': account = dict( user='18879404697', password=get_password_time(password='123456'), ) login(account)
{ "code":0, "login":"69179585", "user":{ "bid":"69179585", "password":"2f786aac18ddbacb312cf60fd0ca2d7a", "email":"18879404697@aipaimobile.com", "nickname":"ecithy", "exp":"90", "gender":"1", "sid":"0", "flower":"0", "level":"2", "clientLasttime":"0", "createTime":"1590763267", "status":"0", "type":"0", "bookCount":"0", "cardCount":"0", "achieve":"0", "vip":"0", "userText":null, "lasttime":"1590763267", "levelName":"布衣2级", "levelCss":"u1_lv2", "levelCssWebApp":"uv_1", "expTotal":200, "achieveName":"初学乍练", "small":"http://www.aipai.com/app/www/templates/common/img/userdefaultnew_5_1_small.jpg", "middle":"http://www.aipai.com/app/www/templates/common/img/userdefaultnew_5_1_middle.jpg", "_48":"http://www.aipai.com/app/www/templates/common/img/userdefaultnew_5_1__48.jpg", "big":"http://www.aipai.com/app/www/templates/common/img/userdefaultnew_5_1_big.jpg", "normal":"http://www.aipai.com/app/www/templates/common/img/userdefaultnew_5_1_normal.jpg", "thumbFileName":"http://www.aipai.com/app/www/templates/common/img/userdefaultnew_5_1_big.jpg", "url":"http://www.aipai.com/space.php?bid=69179585", "homeUrl":"http://home.aipai.com/69179585" }, "msg":"login success" }
谢谢

浙公网安备 33010602011771号