京东h5st逆向分析
本文最后更新于 361 天前,其中的信息可能已经有所发展或是发生改变。

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

由于该文章是从我的公众号迁移过来的,所以带有水印

逆向目标

目标接口:aHR0cHM6Ly93d3cuamQuY29tLw==

流程分析首先先抓包分析一下,可以看到h5st版本是5.1

下个xhr断点进去look一下,发现url包含了h5st了

正常方法可以一步一步慢慢跟 跟到最后可以找到h5st参数,也可以用搜索方式去快速定位;但其实你仔细看堆栈就会发现有send和ajax这两个,这我就不多说了,直接定位过去就行

到这里你会发现有h5st这个参数,打个断点看看

发现h5st参数已经生成

往上看发现是调用了这个参数然后生成了h5st,并用encodeURI编码后存入colorParam对象,.then表示Promise成功后执行function(signedParams){}这个函数 signedParams参数包含了h5st,根据分析这个参数是window.PSign.sign(colorParamSign)异步生成返回的。

所以重点在window.PSign.sign(colorParamSign)这一块;我们先分析colorParamSign,它是由上面JSON.parse(JSON.stringify(colorParam))生成的,colorParam就是一些明文数据,所以把colorParam扣下来就行了

接着发现colorParamSign包含了body,看着像加密的参数,下个断点看看

发现这个sha256是标准加密,所以我们本地用库模拟就行了(当然你可以选择扣)

接着我们就得解决window.PSign.sign这个函数了,既然他能用window作为对象使用,那说明他在函数内已经赋给全局,说到底就是导出为全局对象了,下个断点,跟进去看看发现进到了这个函数,所以window.PSign就是_$pC

往下看发现window.ParamsSign = _$pC已经被导出了,所以我们把整段代码扣下来运行就行。

然后接下来就是生成h5st参数的问题了,看,h5st是通过signedParams.h5st来的,signedParams是由window.PSign.sign(colorParamSign)这个异步方法生成返回的(ps:当调用window.PSign.sign(colorParamSign)时,他会执行异步操作,操作完成后通过Promise返回结果,h5st就是在异步中生成的)所以我们可以改写一下,将返回值通过箭头函数处理异步生成的结果,然后打印出来就可以了

接着就是补环境,缺啥补啥,我目前分析的是h5st5.0,所以只有900多位

笔者水平有限,如有疑问,欢迎留言指正,一起交流,有任何问题可以添加我微信;
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇