【投稿】JS逆向系列-某鱼sign分析

【投稿】JS逆向系列-某鱼sign分析

0x00 前言

趁五一结束前再更新一篇文章,我突然意识到我好像很久没发关于逆向的文章了,所以今天就来更一篇针对某鱼的sign分析,难度为简单,初学者可以看一看这篇文章。

0x01 正文

打开某鱼:

d2b5ca33bd20250504181346

打开F12并搜点东西:

d2b5ca33bd20250504181356

随便复制一个商品名,然后确认一下调的是哪个接口:

d2b5ca33bd20250504181404

d2b5ca33bd20250504181412

d2b5ca33bd20250504181420

可以看到sign,将请求转为py代码,看看是不是sign作验证的。

复制curl格式:

d2b5ca33bd20250504181427

访问https://curlconverter.com/

d2b5ca33bd20250504181435

将刚刚复制的curl语句粘贴到框里:

d2b5ca33bd20250504181441

复制下来并执行:

d2b5ca33bd20250504181448

调用成功,现在修改一下sign的最后一位:

d2b5ca33bd20250504182733

d2b5ca33bd20250504181502

执行:

d2b5ca33bd20250504181509

确认是通过sign进行验证的,回到chrome查看请求参数:

d2b5ca33bd20250504181515

参数有点多,直接搜固定参数appKey:

d2b5ca33bd20250504181522

可以看到sign,打个断点验证一下是不是这里:

d2b5ca33bd20250504181528

确认是这里,分析一下代码:

d2b5ca33bd20250504181534

sign是用下面这段代码生成的:

k = i(d.token + "&" + j + "&" + h + "&" + c.data)

看一下d.token是什么:

d2b5ca33bd20250504181552

c570e4c7ea83f2e23cf914ed494e3ed7

查一下请求有没有携带这个值:

d2b5ca33bd20250504181608

看来是cookie,键为_m_h5_tk,我们把cookie清除了看看是哪个接口设置的这个键:

d2b5ca33bd20250504181616

刷新:

d2b5ca33bd20250504181624

d2b5ca33bd20250504181633

确认是我们获取商品的那个接口设置的_m_h5_tk,继续看下一个参数:

d2b5ca33bd20250504181642

j为时间戳:

j = (new Date).getTime()

h:

d2b5ca33bd20250504181657

h为固定值appKey:

d2b5ca33bd20250504181705

c.data:

d2b5ca33bd20250504181712

放掉查看请求:

d2b5ca33bd20250504181920

确认c.data为请求体,最后看一下代码把拼接后的字符串传递给的i函数内部做了什么:

d2b5ca33bd20250504181927

d2b5ca33bd20250504181935

说实话,这看着就像md5加密,拿上面的数据拼接加密看看是否是请求的sign。

_m_h5_tk:`47a31b745f9a96f2343a66aca3e03f72`

j:1746346593869

h:34839810

c.data:`{"pageNumber":1,"keyword":"手机","fromFilter":false,"rowsPerPage":30,"sortValue":"","sortField":"","customDistance":"","gps":"","propValueStr":{},"customGps":"","searchReqFromPage":"pcSearch","extraFilterValue":"{}","userPositionJson":"{}"}`

拼接:

47a31b745f9a96f2343a66aca3e03f72&1746346593869&34839810&{"pageNumber":1,"keyword":"手机","fromFilter":false,"rowsPerPage":30,"sortValue":"","sortField":"","customDistance":"","gps":"","propValueStr":{},"customGps":"","searchReqFromPage":"pcSearch","extraFilterValue":"{}","userPositionJson":"{}"}

放掉看一下请求的sign:

d2b5ca33bd20250504182000

0c89316a2479ddce8fe42bffaa941bbf

md5加密刚刚拼接的字符串:

d2b5ca33bd20250504182021

验证为md5加密。

脚本编写:

d2b5ca33bd20250504182028

将搜索的关键字修改为电脑测试一下:

d2b5ca33bd20250504182626

执行:

d2b5ca33bd20250504182634

成功请求。

© 版权声明
THE END
喜欢就支持一下吧
点赞51赞赏 分享
评论 共4条

请登录后发表评论

    请登录后查看评论内容