js逆向实操2(犀牛数据解密)

第一篇文章中企名片的数据带有关键字,使得我们能够非常方便的定位到js文件中去。而对于无关键字的数据,可能会用到今天介绍的xhr断点定位:

视频参考:https://www.bilibili.com/video/BV1Gy421q7Fm?p=4&vd_source=1c1bd87c4da3354fc14f193d7119e8eb

示例网页:

https://www.xiniudata.com/industry/54e9866b42d2fdf3db9c986328ce4534/overview

首先还是打开检查观察包,在滑动加载页面后可以注意到这个包:

点击预览,可以看到其返回的密文数据:

由于数据d并不像之前的encrypt_data一样容易过滤和识别,因此不建议直接搜索过滤,这个时候复制这个包的路径并设置xhr断点:

刷新页面,断点会自动帮我们来到目标文件的位置,这个时候就可以开始查找了:

因为后端渲染的数据必须要通过JSON数据来进行交互,所有解密函数一定会包含JSON.parse()这个方法,所以我们直接以JSON.parse( 为关键字进行搜索,得到八个结果:

根据上一篇文章中所说的原则,可以确定其中第六个有可能是我们需要的解密方法:

先断点并手动运行到此处,在控制台试着输出:JSON.parse(y)

返回的是用户信息,并不是我们需要的企业信息,不要急,再执行两次次到断点,再次输出:JSON.parse(y),可以得到我们需要的数据:

因为每次网页会发送多个接口,可能会需要多次调试才能拿到我们需要的数据。

这个时候就得到了我们的解密主体,开始编写js解密文件:

试运行得到报错:

回去给相关部分打上断点:

再到控制台输出得到Object(u.a)

定位到函数定义处得到定义:

并将其添加到我们的js文件中。

记得要改名!!!

再试着运行获得报错:

这里可以直接以_keyStr为关键字进行搜索即可得到结果:

在方法d1中补充其定义,并再次运行文件获得报错:

可以看出是第二个u未定义,即:Object(u.b)。方法同上,此处省略。

最终可以成功解密数据,最后再与python交互,方法同第一篇文章一样:

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,似乎是在讨论对于一个加密的网址进行解密的问题。其中使用了AES加密算法和CryptoJS库来解密作。具体代码如下: const CryptoJS = require('crypto-js'); function getRealUrl(hh) { var s = "qnbyzzwmdgghmcnm"; var aa = hh.split("/"); var aaa = aa.length; var bbb = aa[aaa - 1].split('.'); var ccc = bbb; var cccc = bbb; var r = /^\ ?[1-9][0-9]*$/; if (r.test(ccc) && cccc.indexOf('jhtml') != -1) { var srcs = CryptoJS.enc.Utf8.parse(ccc); var k = CryptoJS.enc.Utf8.parse(s); var en = CryptoJS.AES.encrypt(srcs, k, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); var ddd = en.toString(); ddd = ddd.replace(/\//g, "^"); ddd = ddd.substring(0, ddd.length - 2); var bbbb = ddd + '.' + bbb; return bbbb; } } getRealUrl() 这段代码是用于对加密的网址进行解密,具体的解密过程如下: 1. 将加密前的字符串cc分割成数组aa,获取数组长度aaa和数组最后一个元素bbb。 2. 判断最后一个元素bbb是否符合一定的格式要求。 3. 如果符合要求,则将cc转换成CryptoJS的Utf8格式的srcs,并生成一个Utf8格式的密钥k。 4. 使用AES加密算法将srcs和k进行加密作,采用ECB模式和Pkcs7填充方式。 5. 将加密结果转换成字符串ddd,并替换其中的'/'字符为'^'。 6. 截取ddd中除去最后两个字符的部分,然后与bbb拼接起来,得到解密后的网址bbbb。 7. 返回解密后的网址bbbb。 关于js逆向深圳信数据服务的问题,根据提供的引用内容,目前并没有相关的信息来回答该问题。请提供更多相关的信息,以便更好地回答您的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [js逆向-某市公共资源交易网](https://blog.csdn.net/weixin_46672080/article/details/126003502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [aqistudy真气网JS逆向 + 数据采集(20220801)](https://blog.csdn.net/zhu6201976/article/details/126124548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值