吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5399|回复: 16
收起左侧

[Python 转载] JS逆向分析某国外电商网站加密参数

  [复制链接]
小怀卜坏 发表于 2020-4-25 01:58
我之前抓过一个国外电商网站(shopee)的数据,其中列表页接口的请求头中有个加密参数需要破解,这个例子很简单,拿出来给新手们练练手,我写得很详细,希望对爬虫初学者有所帮助。

  • 加密参数:
headers 中有个加密参数: if-none-match-,如下所示。经测试,如果不携带该参数去请求接口,返回来的是假数据
if-none-match-: 55b03-4aa77c3bd8c96843e7fad61a4ff76088


  • JS逆向分析:

1. 首先观察该参数,每次都是以 "55b03-" 开头,后面是一串会变的32位字符,然后在开发者工具 按 "Ctrl + Shift + F" 全局搜索一下 "if-none-match-",没有搜到,再试试搜:"55b03",也没搜到。搜不到参数定位不到加密位置怎么办?下面从第2步开始是常规的方法,其实常用的经典加密算法中就只有 MD5 和 HmacMD5 加密生成的是32位字符串,那么还可以碰运气地搜一下:"md5",很快就能定位到加密位置,直接跳到第6步。

2. 既然接口是 Ajax 加载的,那就下一个XHR断点,如下图所示。
1.png

3. 然后点击商品列表页的下一页,就会自动断在此处,如下图所示。可以看到参数 t 里面有个 headers,果然有 if-none-match- 参数。
    那么接下来就应该查看函数调用的堆栈,往上找生成 headers 的函数,
2.png

4. 在调用栈(Call Stack)往上走两步就看到了headers生成位置,如下图所示:
3.png

5. 关键位置打上断点,并取消XHR断点,再点击下一页 停在该处,如下图所示。可以看到 参数 t 就是加密前的字符串了,也就是 url 后面的参数:t = "by=pop&limit=50&match_id=16&newest=200&order=desc&page_type=search&version=2"
4.png

6.  接下来按 F11 进入 O 函数,一眼就看到 md5,它赋值给了 u,这个 O 函数里就只有第 5656 行使用了 u,那么就在该行打上断点。
5.png

7. 然后按 F8 直接跳到该断点处,看到这一行有个等号 = ,像是在做赋值操作。鼠标框选等号前面的对象,自动显示出它的值,如下如图所示,就是我们要找的 if-none-match-,那么等号后面可能就是在生成加密字符串了。
6.png

同样把等号后面全部框选,显示出了一个字符串,这就是加密后的密文了,印证了我们的猜想,如下图所示:
7.png

8. 最后就来好好看看他具体是怎么加密的,首先选中 c.a ,显示出:"55b03",是个固定的字符串,再根据前面的信息可以判断 u() 函数就是 MD5 加密。
8.png

那么,c.a + "-" + u("" + c.a + u(t) + c.a) 就可以改写成:"55b03" + "-" + md5("55b03" + md5(t) + "55b03")
用 python 代码实现如下:
[Python] 纯文本查看 复制代码
from hashlib import md5

def encrypt(param):
    text = "55b03" + md5(param.encode()).hexdigest() + "55b03"
    return "55b03-" + md5(text.encode()).hexdigest()
    
t = "by=pop&limit=50&match_id=16&newest=200&order=desc&page_type=search&version=2"
print(encrypt(t))



最后验证 用 python 实现的加密和浏览器的结果一致,破解完成。

免费评分

参与人数 6吾爱币 +9 热心值 +6 收起 理由
hj170520 + 1 + 1 谢谢@Thanks!
ajax小白 + 1 我很赞同!
麦田孤望者 + 1 + 1 谢谢@Thanks!
木子_子木 + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
唯一丶 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 小怀卜坏 发表于 2020-4-26 18:25
cvbtvbwu 发表于 2020-4-25 15:58
其实我很不懂,在网页上做加密有什么用?连代码都可以看到,知道加密方法。求解

人家加密的代码可以混淆,可以做反调试啊,很多加密你要想逆向破解需要付出巨大的时间和精力,如果技术不够调试到哭都破解不出来,我分享的这个案例连入门都不算
魔道书生 发表于 2020-7-4 21:37
cvbtvbwu 发表于 2020-4-25 15:58
其实我很不懂,在网页上做加密有什么用?连代码都可以看到,知道加密方法。求解

https://www.52pojie.cn/thread-1043758-1-1.html
这个JS加密了解一下
oycl 发表于 2020-4-25 15:32
cvbtvbwu 发表于 2020-4-25 15:58
其实我很不懂,在网页上做加密有什么用?连代码都可以看到,知道加密方法。求解
pojie888 发表于 2020-4-25 16:19
感谢分享,shopee商城解密
夜泉 发表于 2020-4-25 20:35
很不错,说得很详细,学习了。。。
星刃 发表于 2020-4-27 08:31
amazon逆了吗
thinkingbullet 发表于 2020-4-27 09:05
开了眼界
libaiddufu 发表于 2020-4-27 15:39
这玩意考验的就是人的耐心哈,多多学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-11 05:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表