本帖最后由 Guardian09 于 2026-1-27 14:34 编辑
进入某安充电
对充值一下抓个包看看,看到了sign验证
先对小程序进行反编译查看加密代码,找到小程序的包对其进行解密,然后再进行反编译
然后使用代码工具查看代码文件,然后再文件中全局搜索sign,看到有MD5加密的类型。
确定是MD5加密,然后直接搜索MD5查看
然后找到充值成功的的地方加密
然后去看加密的过程找到参数进行解密
这里看不懂代码不会分析怎么办,直接gpt分析看看
gpt的解释是它会将post的所传的参数加上key=8989898加起来,然后再进行MD5加密,说明找到关键的key。
自此已经知道了加密的所有方式。直接让GPT用python写一个加密脚本
[Python] 纯文本查看 复制代码 import hashlib
def md5_hash(s):
return hashlib.md5(s.encode()).hexdigest()
def generate_sign(params, key, timestamp):
# 将时间戳添加到参数字典中
params['timestamp'] = timestamp
# 将字典转换为参数字符串
param_str = '&'.join([f"{k}={v}" for k, v in params.items()])
# 对参数字符串进行排序
sorted_params = '&'.join(sorted(param_str.split('&')))
# 拼接密钥
string_to_sign = f"{sorted_params}&key={key}"
# 计算 MD5 并转换为小写
sign = md5_hash(string_to_sign).lower()
return sign
# 示例数据
params = {
"giftmoney": 0,
"money": 20,
"openid": "oZeIF5j56USO-ufytO7qklXSBRuA",
"cardid": 0
}
key = "8989898"
timestamp = "1719047836"
# 生成 sign
sign = generate_sign(params, key, timestamp)
print(sign)
将脚本里面的参数进行修改成bp抓包的参数验证
|