某某星图sign参数解密分析

您所在的位置:网站首页 爬虫params参数写法 某某星图sign参数解密分析

某某星图sign参数解密分析

2023-06-12 01:21| 来源: 网络整理| 查看: 265

大家好,我是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) # 还原的cprint(ori_c) # js调试的c 打印还原的c参数和js调试的c参数,结果如下:limit1resource_id1012service_methodGetBannerListservice_namemarketing.AdStarMarketingServicesign_strict1limit1resource_id1012service_methodGetBannerListservice_namemarketing.AdStarMarketingServicesign_strict1

经过分析,我们发现初始化的c值结果一致,那么接下来进行md5计算吧:​​​

# md5加密import hashlib ori_sign = "dbe3db84b5559fc87ca43fe4e48842c7"c = f"{c}e39539b8836fb99e1538974d3ac1fe98" # 需要拼接指定的keysign = hashlib.md5(c.encode()).hexdigest()print(sign)print(ori_sign) 打印的结果如下:dbe3db84b5559fc87ca43fe4e48842c7dbe3db84b5559fc87ca43fe4e48842c7结果完全一致。

四、思路总结

    从入参到出参去进行算法还原,对比入参和出参是否与结果值一致。

本篇分享到这里就结束了,欢迎大家关注下期,我们不见不散☀️☀️😊

往期推荐

猿人学逆向比赛第四题-gRPC题解 | Go版本

DX滑块验证码别乱捅!一不小心就反爬了。

某安网别逆向,一不小心就......

微信自动聊天机器狗,配置chatGPT,比Siri还智能!

被魔改md5加密坑了?某网站魔改md5加密逆向还原 (多种语言还原)

爬虫最快框架collyx,今天开源了...

某站弹幕Protobuf协议逆向分析  |  Go语言版本

某游戏社区App | So层逆向分析

推荐一个干货满满的公众号:

逆向与爬虫的故事

专注于网络爬虫、JS逆向、APP逆向、安全攻防实战经验分享及总结。

作者简介

我是TheWeiJun,有着执着的追求,信奉终身成长,不定义自己,热爱技术但不拘泥于技术,爱好分享,喜欢读书和乐于结交朋友,欢迎加我微信与我交朋友。

分享日常学习中关于爬虫、逆向和分析的一些思路,文中若有错误的地方,欢迎大家多多交流指正☀️

文章来源:逆向与爬虫的故事(公众号)

原文链接:某某星图sign参数解密分析

微信搜:逆向与爬虫的故事;给我一个关注!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3