一、数据接口分析
主页地址:阿某某营
1、抓包
通过抓包可以发现登录接口是Users/Login
2、判断是否有加密参数
- 请求参数是否加密?
通过查看“载荷”模块可以发现有一个s
加密参数
- 请求头是否加密?
无 - 响应是否加密?
无 - cookie是否加密?
无
二、加密位置定位
1、看启动器
查看启动器发现里面包含异步,所以无法正确找到加密位置
2、搜索关键字
搜索时发现,有一个js文件谷歌浏览器的控制台无法加载,我也不知道什么情况,如果有知道或者有办法解决的大佬可以私信或者评论教我一下
后面我就换成了360极速浏览器来调试。
通过搜索.s=
关键字,可以发现有一处赋值的位置,并且下方会发送ajax请求,所以可以怀疑此处就是加密位置,在这一行打断点进行调试。
打上断点之后,再次点击登录,发现可以断住,并且k.s
就是密文,k
就在这一行上方生成的。
三、扣js代码
将定位到的加密位置的代码抠出,缺啥补啥即可。在c.default
中使用的是SHA1标准加密,所以c.default
里的加密可以换成标准模块加密
源代码:
// 引用 crypto-js 加密模块
var CryptoJS = require('crypto-js')
function c_default(e, t) {
var n = (new Date).getTime() + 2592e6 + (t || 3e4)
, r = (e || "") + "&t=" + n;
return {
t: n,
s: CryptoJS.SHA1(r).toString()
}
}
function get_param(username, password) {
var n = "/WebApi/Users/Login"
var w = "username=" + username + "&password=" + password
var x = "DUE$DEHFYE(YRUEHD*&"
var k = c_default(n + "?" + w + x)
return {
username: username,
password: password,
t: k.t,
s: k.s
}
}