js逆向——RSA加密参数的实战案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文在对房地产预售信息收集,在post的请求表单中发现token参数被加密,通过对密文以及在源文件中进行全局搜索发现该网站将token参数进行了RSA加密且使用了自己的加密文件,

一、全局搜索寻找加密参数的生成位置

网站链接:https://zfcj.gz.gov.cn/zfcj/fyxx/projectdetail?sProjectId=e5c21c37c4a849d79004900f85f33056
token参数
在这里插入图片描述
第四个搜索结果符合本文要求,进入源文件寻找加密方式
在这里插入图片描述
至此已经找到token的生成及其加密位置,但此处JSEncrypt()并不是通用的库的类,而是网站自建类。因此需要找到该网站的加密js文件,通过搜索找到加密的js文件
在这里插入图片描述

二、编写代码

1.js文件

也就是将网站的js代码扣进自己的js文件中,JSEncrypt()请自行放进js文件中,由于篇幅过长不便展示

function DoSearch(sProjectId, buildingId, houseFunctionId, unitType, houseStatusId, totalAreaId, inAreaId) {
   
    var ak = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1nflpr8o4Jh74z0KPEIBSt+Q4+eCkz6LdyxGZESFgpiQcdIBbWXujhczBCpGO8n1Mo+purvzyxWJIM/I41wjY9JHQSKZF2FL0IfSP8d+V3knz9MA4QHiIzwtrQEpq5U2VmzvSrLsIcPILFPQLZHgaEdQkGVu0NGAzclsMxYmNSQIDAQAB';
    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;
}

2.其他代码

代码如下(示例):

def get_PreSell(url_jbxx):#获取预售证号,输入基本信息页面的链接
    resp_jbxx=requests.get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值