JS逆向实战案例2——某房地产token RSA加密

这篇具有很好参考价值的文章主要介绍了JS逆向实战案例2——某房地产token RSA加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除

作者:zhu6201976

一、 反爬分析

url1:aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94a2I/c1Byb2plY3RJZD05MzBlMDQ0MmJjNjA0MTBkYTgzNzQ0MmQ5ZGRiN2UwMiZzUHJlU2VsbE5vPTIwMjQwMDA1

url2:aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94bXhrYnh4Vmlldw==

浏览器访问url1得到销控表(楼栋列表),点击某一楼栋,下方展示房号列表:

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

但这一切只是在浏览器中发生的,中间所有的请求和过程,浏览器都帮我们完成了,我们感受不到中间到底发生了什么。真实情况是:我们访问url1,服务器只返回了上半部分内容,而下半部分房号列表信息是缺失的,需要我们POST请求url2,传递project_id、building_id、token等关键参数,才能拿到。然而,token参数是这样的:

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

到这里,我们可以非常明显的看到,网站做了核心数据的反爬。如果不能解决token参数的生成逻辑,想要协议模拟根本无法实现。

想想也非常正常,对于这个房地产网站,数据量最大,最具核心价值的资源,就在于房号信息。网站一方面为了保护核心数据的安全,另一方面为了防止爬虫程序的滥用,对服务器造成巨大压力,必须对网站进行反爬处理。

效果或许也非常明显,一些初级爬虫,看到这么一大串令人头疼的加密字符,估计已经第一时间放弃抵抗:抬走!

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

那么,它是如何实现的呢?采用了什么样的加密算法?

1. 首先,我们观察token值的特征,初步判断可能采用了现代密码学:RSA/AES/DES等。
 

iBVW+duWe26lZzi6HVffsw/foveymgr/3kAS3d/2c3TAg/6l1EqnJIXyIsiINANVjrNKzAHgsR80XaTJu2QX96FrVCrNHdCEONr0Iy4qTWHQ5w+Ddptv37bY0PLpX/UYYAAfltxpcCjnxDYGudT9QWqJqfqw2mOuO6rz74/lw8o=@QuZYt/TaVypfEAl0omOoYDP/p8Jn3V5RGz6Bh95bzztU2mEKTqKRY2HfPwgz2pUF9BnPW0BL1vsdvPc+ZHMSgt488Zg++hpXH3r/NcE1J4EofuvI4Ii8JgvtY8oZuR2FSjfwZkLZiwo7YxvcGb+C4J+TqoAyUSRrt9BOnTmS8LQ=@NsXfjXtuNeJX3D51rcd61cmWpTAYISPzw+a4P394pZiXw4TAMFlMwanMdGVLHprXJrv/64D0MIF0qZ+6IvpC7JRWSMUVwRACDTyWTBEyjQmn1YouboOtOr87PV34GUSbe9tXxNlcSVBff7n/3S+ZCHt4t4IDp6tB32ko8r7B3zw=@RENxFEgkEOsQlXZvsvOT4tz0LVzqJq+SwpP0rgbpfWc6KHRN/kpzwTd4563PPhDIY6ASoDVJPdxSZiggCM9jGq+EiaR3d2ZUV5xA7fcjVOC3MkjYoWYKKBAc97LuJ/JGUqpdHMawN6HBthf+iVXmeeeFSxGUzmduRziGfPLZw/g=@RdxwEZPC1HK2X1SxIB8cOQJ7CNX0irA+e76cQYRFRCwg3/Zth/KM6T3gQRdjwNSQ6p5DjnWrLuywSWA1UuXe7m55PXiQDnWIcWP9O46wQfhW7YTeqy1WrIr8THQ+OkfNK2QDj/CRX0wiuZugV5sVrwicqX15/mJv+WeBggoQHow=@FnosIVqEz6WFYIWTPlg/1V+S+ImqiCmv79yfdiQ+J9STWjG1uClgWOP72jkysPD15KxUX5MQA/+fOrNvQxG5ZePg3PbLALB89KIaUkrhFVTySV+FDpmtW/3H1pGC3y8eqQtYbLzKH9pKAA8GaS1gtcMl9tHovz8l8VlYtY3xqMo=@cEtL7FF07gSN8OJUBrDUDlEoAHaRL5S7jxcR2MTD7LfTa1b71upYmTd+xX4UKJ2K0Dpq0IVbiYEK/5JfGbLZ1ioJFXYQytWsJnry1S/Qw5MJ7SjEvDoAcy3w39h+4XQiEh6tedfRWNBeXaqJd0pPNN5tQ1JFkX0EqO6rpIpyFrM=

2. 其次,观察url1的返回document,很明显绑定了点击事件。

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

当我们点击具体楼栋时,会触发对应绑定的DoSearch函数,并执行对应JS逻辑,发送POST请求url2,获取对应楼栋房号列表信息。

3. 最后,DoSearch函数具体实现在哪?如何快速定位?

在JS逆向中,快速定位很重要。Python之父Guido van Rossum 曾说过:人生苦短,我用Python。那么,我想请问:此处用Python,对我们快速定位有帮助吗?

怎么快怎么来吧,投机取巧一把,全搜搜索 DoSearch 关键词,如果代码没有混淆,肯定是能找到的。果然不出所料,非常轻易的追踪定位到了,上边ak是RSA公钥,说明果然是RSA加密,这也太简单了吧?

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

二、扣取代码,模拟执行

既然token加密函数DoSearch已定位,那么,我已经迫不及待想扣取代码执行看看效果了。废话不多说,直接完整扣取,放到NodeJS中尝试执行:

function DoSearch(ak, sProjectId, buildingId, houseFunctionId, unitType, houseStatusId, totalAreaId, inAreaId) {
    var encrypt = new JSEncrypt();
    encrypt.setPublicKey(ak);
    var token = encrypt.encrypt(sProjectId) + "@" + encrypt.encrypt(buildingId) + "@" + encrypt.encrypt(houseFunctionId) + "@" + encrypt.encrypt(unitType) + "@" + encrypt.encrypt(houseStatusId) + "@" + encrypt.encrypt(totalAreaId) + "@" + encrypt.encrypt(inAreaId);
    return token;
}

var ak = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1nflpr8o4Jh74z0KPEIBSt+Q4+eCkz6LdyxGZESFgpiQcdIBbWXujhczBCpGO8n1Mo+purvzyxWJIM/I41wjY9JHQSKZF2FL0IfSP8d+V3knz9MA4QHiIzwtrQEpq5U2VmzvSrLsIcPILFPQLZHgaEdQkGVu0NGAzclsMxYmNSQIDAQAB';
var sProjectId = '930e0442bc60410da837442d9ddb7e02';
var buildingId = '63097ed0eb04496b8f9306fc408fe554';
var houseFunctionId = '0';
var unitType = '';
var houseStatusId = '0';
var totalAreaId = '0';
var inAreaId = '0';

var ret = DoSearch(ak, sProjectId, buildingId, houseFunctionId, unitType, houseStatusId, totalAreaId, inAreaId);
console.log(ret);

报错:ReferenceError: JSEncrypt is not defined

通过调试,发现JSEncrypt在文件jsencrypt.min.js中定义,行数大概2700,非常明显的RSA加密工具,直接扣取,再次尝试运行:

报错:ReferenceError: navigator is not defined

尝试补环境头:

var Navigator = function Navigator(){

}
Navigator.prototype.appName = 'Netscape';
var navigator = new Navigator();

再次运行:

报错:ReferenceError: window is not defined

尝试补环境头:

window = global;

成功出值!

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

PostMan测试生成的token是否可用,成功拿到正确结果:

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript

三、 完整代码

项目已开源,请访问github获取,期待你的一键三连、star、交流。

github项目地址:https://github.com/zhu6201976/zfcj20240111

项目运行完整截图:

JS逆向实战案例2——某房地产token RSA加密,javascript,开发语言,ecmascript文章来源地址https://www.toymoban.com/news/detail-799853.html

到了这里,关于JS逆向实战案例2——某房地产token RSA加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • chatGPT应用于房地产行业

    chatGPT应用于房地产行业

        作为 2023 年的房地产专业人士,您无疑认识到技术对行业的重大影响。近年来,一项技术进步席卷了世界——人工智能。人工智能彻底改变了房地产业务的各个方面,从简化管理任务到增强客户互动。 在本文中,我们将探讨几种巧妙的人工智能技巧,作为房地产经纪人,

    2024年02月13日
    浏览(14)
  • 数字化房地产的安全与隐私挑战

    随着我国房地产市场的不断发展,数字化房地产已经成为我国房地产行业的重要发展方向之一。数字化房地产通过信息化、智能化、网络化等技术手段,将传统的房地产业务进行数字化处理,为房地产市场创造了更多的价值。然而,随着数字化房地产的不断发展,安全与隐私

    2024年02月19日
    浏览(17)
  • VB+SQL房地产评估系统设计(源代码+系统)

    房地产评估系统对房地产评估信息进行全面现代化管理。但一直以来人们使用传统人工的方式进行评估,这种管理方式存在着许多缺点,如:效率低、计算量大,容易出错。另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不

    2024年02月09日
    浏览(12)
  • 无需设计经验,也能制作出精美的房地产电子传单

    无需设计经验,也能制作出精美的房地产电子传单

    在数字化时代,传统的纸质传单已经不能满足人们对于互动和个性化的需求。为此,许多房地产公司开始将目光转向H5微传单,这是一种通过互联网和手机浏览器来传达信息的创新方式。今天,我们将教你如何使用乔拓云网制作房地产微传单H5,让你的产品更加吸引人。 首先

    2024年02月09日
    浏览(12)
  • 区块链溯源:实现区块链技术在房地产交易中的应用

    作者:禅与计算机程序设计艺术 随着时间的推移,金融系统已越来越复杂。从最早的结算系统到现代支付系统、征信管理系统、风控系统,现代金融系统已经发生了巨变,而在房地产市场中,由于金融服务的需求增加,更多的客户选择居住地或商业中心进行投资,由此带来的

    2024年02月14日
    浏览(9)
  • VB.NET基于WEB房地产评估系统(源代码+论文)

    房地产评估系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本系统特有的房屋基本情况、专业评

    2024年02月13日
    浏览(12)
  • 三防加固平板在房地产行业的应用|亿道三防onerugged

    三防加固平板在房地产行业的应用|亿道三防onerugged

    近期, 有 一款引人注目的解决方案——亿道三防onerugged平板电脑,它以其出色的性能和多功能的设计,为房地产行业带来了全新的应用体验。 首先,亿道三防onerugged平板电脑的NFC功能在小区业主身份验证中发挥着重要作用。传统的身份验证方式往往繁琐且容易出现纰漏,而

    2024年02月21日
    浏览(46)
  • 易服客工作室:Houzez主题 - 超级房地产WordPress主题/网站

    易服客工作室:Houzez主题 - 超级房地产WordPress主题/网站

    Houzez主题 是全球流行的 房地产 经纪人和公司的 WordPress主题 。 Houzez Theme是专业设计师创造一流设计的超级灵活起点。它具有您的客户(房地产经纪人或公司)甚至可能做梦也想不到的功能。 网址:Houzez主题 - 超级房地产WordPress主题/网站 - 易服客工作室 Houzez主题一键导入

    2024年02月12日
    浏览(16)
  • 毕业设计-基于大数据的房地产数据分析与预测-python

    毕业设计-基于大数据的房地产数据分析与预测-python

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学

    2024年02月08日
    浏览(21)
  • asp.net+C#房地产销售系统文献综述和开题报告+Lw

    asp.net+C#房地产销售系统文献综述和开题报告+Lw

    本系统使用了B/S模式,使用ASP.NET语言和SQL Server来设计开发的。首先把所有人分为了用户和管理员2个部分,一般的用户可以对系统的前台进行访问,对一般的信息进行查看,而注册用户就可以通过登录来完成对房屋信息的查看和对房屋的预订功能。管理员可以通过登录进入

    2023年04月22日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包