JS逆向之爱拍password

篇幅有限

完整内容及源码关注公众号:ReverseCode,发送

http://www.aipai.com/

抓包

登录url:

POST http://www.aipai.com/login.php

参数:

1
2
3
4
5
6
action: loginNew
user: 15806204095
password: 202cb962ac59075b964b07152d234b70
keeplogin: 1
comouterTime: 1
userNowTime: 1618281089

分析

参数中只有password加密,搜索/login.php,出现在了sea.js,header.js?t=20210312,global.js的多个地方中

image-20210413103749230

逐步分析各个位置的/login.php,初步定位到两个地方的js处可能是加密password 的位置,因为这两处附近都有user,action等其他参数生成。

image-20210413104218105

image-20210413104328159

这两处同样的通过md5函数加密password所在id的内容,我们为这两处加上断点,重新登录发现停在了header.js?t=20210312

F10单步逐行跳过到metadata='action='+ action +'&account='+ user +'&password='+ _ts.md5(pass) +'&keeplogin='+ keep +'&comouterTime='+ keep +'&userNowTime='+ userNowTime;

通过Watch面板拿到idPass,pass和_ts.md5(pass)的值

image-20210413104814198

点击进入md5方法,打上断点后,F9单步跳入后抠出md5算法js

image-20210413105023016

爬虫实现

通过python调用js实现password的逆向分析。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import requests
import execjs

username = "15806204095"
password = "123"
with open(r'aipai_password.js', encoding='utf-8', mode='r') as f:
JsData = f.read()
password = execjs.compile(JsData).call('pwd', password)
print(password)
data = {
'action': 'loginNew',
'user': username,
'password': password,
'keeplogin': '1',
'comouterTime': '1',
'userNowTime': '1618281089',

}
r = requests.post("http://www.aipai.com/login.php", data)
print(r.text)

完整源码请关注微信公众号:ReverseCode,回复:JS逆向

文章作者: J
文章链接: http://onejane.github.io/2021/04/13/js逆向之爱拍password/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 万物皆可逆向
支付宝打赏
微信打赏