小怀卜坏 发表于 2020-4-25 01:58

JS逆向分析某国外电商网站加密参数

我之前抓过一个国外电商网站(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断点,如下图所示。


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


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


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


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


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


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


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


那么,c.a + "-" + u("" + c.a + u(t) + c.a) 就可以改写成:"55b03" + "-" + md5("55b03" + md5(t) + "55b03")
用 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 实现的加密和浏览器的结果一致,破解完成。

小怀卜坏 发表于 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

这玩意考验的就是人的耐心哈,多多学习了
页: [1] 2
查看完整版本: JS逆向分析某国外电商网站加密参数