爬虫研究分析-请求包含验证参数
# 爬虫-请求包含验证参数### 目标网站
某修改运动步数网站
### 目的
使用接口发送请求或者自动化
(暂不清楚)
### 分析网络请求
打开Network视图
找到请求修改步数接口
请求包含sing字段,应该是用作验证请求是否合法
### 定位加密方法
首先定位到发送请求的JS文件
点击左下角大括号,格式化JS文件
定位到加密方法
### 解析加密方法
稍微格式化一下加密方法
```JavaScript
_0x4dd058(
md5,
_0x4dd058(
_0x4dd058(
String(_0x4dd058(_0x4dd058(parseInt, _0x136350, '10'), 0x16)) +
_0x4dd058(String, _0x3f5e81) +
String(_0x5c2e93),
_0x4dd058(String, _0x4dd058(_0x5ea5ce, 0x3e8))
),
_0x4dd058['Eygbd']
)
)
```
经过分析,首先要确认如下变量
```JavaScript
_0x3122('0xb1')
_0x3122('0xf3')
...
```
在console执行命令
发现结果都是字符串,那么猜测_0x4dd058应该是一个object,根据这里的key取对应的方法
同样在console中执行_0x4dd058,结果为未定义
全局检索_0x4dd058 = 寻找在何处进行定义
继续检索_0x260d9f =
至此,已经非常清晰了,再看一遍加密方法
```JavaScript
_0x4dd058(
md5,
_0x4dd058(
_0x4dd058(
String(_0x4dd058(_0x4dd058(parseInt, _0x136350, '10'), 0x16)) +
_0x4dd058(String, _0x3f5e81) +
String(_0x5c2e93),
_0x4dd058(String, _0x4dd058(_0x5ea5ce, 0x3e8))
),
_0x4dd058['Eygbd']
)
)
```
将_0x4dd058替换为_0x260d9f进行检索即可得到每一层的方法逻辑
例如
从最外层方法_0x4dd058替换为_0x260d9f。得到方法逻辑如图
据此,替换每一层方法,得到化简后的加密方法如下
```JavaScript
const account = "账号"
const password = "密码"
const step = "步数"
const time = Date["parse"](new Date())
md5(String(parseInt(account, 10) + 0x16) + String(password) + String(step) + String(time / 0x3e8) + "422")
```
### 测试
输入如下信息后发送请求
账号:18888888888
密码:18888888888
步数:999999
查看Network面板得到
时间戳:1628655276
sing:5eba2de213710d18d51e22db732b0674
构造加密函数
```JavaScript
md5(String(parseInt("18888888888", 10) + 0x16) + String("18888888888") + String("999999") + String(1628655276000 / 0x3e8) + "422")
```
在浏览器console面板中计算结果和sing字段结果一致
结束 我的爬虫教程永远不会说明是哪个网站,所以不要问了 shayu2021 发表于 2021-8-11 12:37
谢谢大神,这个用易语言怎么整
不会易语言,不过已经分析到这个地步了,剩下就很简单了 想要一个爬虫招投标网站信息的,呵呵 shayu2021 发表于 2021-8-11 12:47
php我能看懂,能不能简单的写一下啊
这个加密方法,哪步你不明白啊? 厉害,写的很详细,感谢 哪个网站