大家好,我是TheWeiJun,欢迎来到我的公众号。今天给大家带来星图sign参数的解密分析,希望大家能够喜欢。如果你觉得我的文章内容有价值,记得点赞👍🏻+关注!
特别声明:本公众号文章只作为学术研究,不用于其他用途!
逆向与爬虫的故事(公众号)
专注于网络爬虫、JS逆向、APP逆向、安全攻防实战经验分享及总结。
目录
一、参数分析
二、JS断点调试
三、算法还原
四、思路总结
一、参数分析
打开目标网站,进行模拟登录,然后fn+f12快捷键打开调试界面。对指定页面json进行参数分析,如下:
定位到json的原始地址,我们发现参数sign值为加密。计算长度为32位,初步怀疑为md5加密,找到加密参数后,进行断点调试。
二、JS断点调试
确定好需要还原的加密值sign之后,我们可以根据发送get请求发起的params参数,进行参数js参数定位,最后确定到加密的js地址如下:
对js代码打上断点,关注入参和出参,进行调试,展示的效果如下:
进入y函数,我们会发现y函数的结果值重新定位到了如下的函数地址:
将断点定位到113023行,选择return后面的返回值,可以看到加密后的结果值为:
"dbe3db84b5559fc87ca43fe4e48842c7"
如下所示:
因为我们怀疑sign值生成和MD5算法有关联,我们将加密的值:也就是:
c+"e39539b8836fb99e1538974d3ac1fe98"
此刻e的值即为他们拼接后的结果,如下:
最后我们将e通过md5加密查看结果:
通过分析,可以确定和js调试的sign值结果一致,接下来进行算法还原!
三、算法还原
查看原始的url地址如下:
可以确定,刚刚的js调试的sign值和请求的url的sign值一致,那么我们对所有的js算法进行还原成python代码吧!完整代码如下:
"""
var c = s.sort().map((function(t) {
var n = e[t];
return function(e) {
return null == e
}(n) ? "" : t + (!a.includes(t) && function(e) {
return ["string", "number"].includes(Object(m["a"])(e))
}(n) ? n : t)
}
加密前的值n = c + "e39539b8836fb99e1538974d3ac1fe98"
"""
params = (
('resource_id', '1012'),
('limit', '1'),
('service_name', 'marketing.AdStarMarketingService'),
('service_method', 'GetBannerList'),
('sign_strict', '1'),
)
data = list(params)
data.sort()
c = ""
ori_c = "limit1resource_id1012service_methodGetBannerListservice_namemarketing.AdStarMarketingServicesign_strict1"
for item in data:
c += item[0] + item[1]
print(c) # 还原的c
print(ori_c) # js调试的c
打印还原的c参数和js调试的c参数,结果如下:
limit1resource_id1012service_methodGetBannerListservice_namemarketing.AdStarMarketingServicesign_strict1
limit1resource_id1012service_methodGetBannerListservice_namemarketing.AdStarMarketingServicesign_strict1
经过分析,我们发现初始化的c值结果一致,那么接下来进行md5计算吧:
# md5加密
import hashlib
ori_sign = "dbe3db84b5559fc87ca43fe4e48842c7"
c = f"{c}e39539b8836fb99e1538974d3ac1fe98" # 需要拼接指定的key
sign = hashlib.md5(c.encode()).hexdigest()
print(sign)
print(ori_sign)
打印的结果如下:
dbe3db84b5559fc87ca43fe4e48842c7
dbe3db84b5559fc87ca43fe4e48842c7
结果完全一致。
四、思路总结
从入参到出参去进行算法还原,对比入参和出参是否与结果值一致。
本篇分享到这里就结束了,欢迎大家关注下期,我们不见不散☀️☀️😊
往期推荐
被魔改md5加密坑了?某网站魔改md5加密逆向还原 (多种语言还原)
推荐一个干货满满的公众号:
逆向与爬虫的故事
专注于网络爬虫、JS逆向、APP逆向、安全攻防实战经验分享及总结。
作者简介
我是TheWeiJun,有着执着的追求,信奉终身成长,不定义自己,热爱技术但不拘泥于技术,爱好分享,喜欢读书和乐于结交朋友,欢迎加我微信与我交朋友。
分享日常学习中关于爬虫、逆向和分析的一些思路,文中若有错误的地方,欢迎大家多多交流指正☀️
文章来源:逆向与爬虫的故事(公众号)
原文链接:某某星图sign参数解密分析
微信搜:逆向与爬虫的故事;给我一个关注!