前言(废话)
群友发了个app说帮忙脱壳。登录有加密参数
我就打开看了一下。
app名我就不说了 看截图识软件
看图很明显了 180*2的壳
先用frida 扫一下常用算法
启动后啥都没打印。。。。 好奇怪 就算找不到关键的加密 也不至于一条没有。。
此时A群友提示 uniapp
搜迪斯奈 果然是。就是js写的转成了app。
尝试Chrome远程调试
https://github.com/WankkoRee/WebViewPP
试了一下 卡在打开界面了 可能我不会用 算了不用了
2023-4-27日更新
使用了 稍微强点的手机 能进去了 但是非常卡
分析包
代码在这个文件里
抓包
搜索 passWord 大写的W
然后找r
找0901
测试可用
https://try8.cn/tool/cipher/rsa
完成
完成
import requests
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64
key_str = """-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/0PTDpYWvnZA1uRL0WTvpLPV6
/rPp72JnXr/a6Tb/G4ZA/1iOISsLxgE4vLAggYuPZvBozF0qzsC9X5riHwVgHarJ
o20OQQMWRxZ3qQgI0Ipv72mTtpMUe+4R7j0EkTmKF7NA8itYQfeRuxmnz5PVonmG
prS//k30GWkwxZo/KQIDAQAB
-----END PUBLIC KEY-----
"""
pub_key = RSA.importKey(key_str)
# 明文
plaintext = b'186xxxx6528'
# 使用 PKCS#1 填充模式进行加密
cipher = PKCS1_v1_5.new(pub_key)
ciphertext = cipher.encrypt(plaintext)
# 输出加密结果
userName = base64.b64encode(ciphertext).decode('utf-8')
print(userName)
headers = {
'appCurrentVersion': '2.3.1',
'user-agent': 'Mozilla/5.0 (Linux; Android 8.1.0; Pixel Build/OPM4.171019.021.D1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 uni-app Html5Plus/1.0 (Immersed/24.0)',
'Content-Type': 'application/json',
'Host': 'stu.teacher.com.cn',
}
json_data = {
'userName': userName,
'passWord': 'IingJYrlKy0zPZ3Wo+Be+rkqSsbWzXuy4H71TqamdL+ZqYKOYy+U47CHCJHsnE+HJcZ3kelNYVE1LTWW92C1D+yzhPrNEIqYf6ZD9U3pbHqZVCjIIvSgfAA/XofDe7fJLivWLC/Bq7TZx/+DUyf+jHzq9O2LBSZ26RKBwnin190=',
}
response = requests.post('https://stu.teacher.com.cn/auth/loginApp', headers=headers, json=json_data)
print(response.text)
响应
{"data":"","isSuccess":9999,"msg":"用户名或密码错误。您还可修改2次。"}