声明:
本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
名称:爱奇艺
目标:登入参数
加密类型:RSA
目标网址: https://www.iqiyi.com/
第一步: 查看接口参数
加密值:passwd
第二步: 搜索参数名
直接搜索参数名passwd我们就可以定位到这个加密的地方,很明显这就是一个RSA加密,我们看一下是调用了a.rsaFun 那我们只要找到这个a是哪里来的再去拿到这个a调用他的方法我们就可以直接搞定了,我们接着向上找a是哪里来的 这里我们可以看见a=s(16),这里有经验的就知道这个s应该是一个分发器
我们在a=s(16)处下断点然后刷新网页进入s我们可以看到,这不是一个标准的分发器吗?那我们可以直接全部拿下来再把分发器导出全局直接调用就可以了
我们先定义一个window=global;然后再把o函数放到window.linshu里,然后在最下面我们打印window.linshu看看是不是一个方法?
我们一运行发现报错了navigator没有找到,那就是缺少了一些浏览器的环境,这里我们直接补上
这里我们把缺少的环境补上后可以看到出结果了,至此可以说是完成了一大半接下来,就按原来的方式去处理就可以了
第三步:实现加密参数
window = global;
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
location = {
'protocol':'https:',
'hostname':'www.iqiyi.com'
}
navigator = {
'userAgent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}
由于篇幅太长就不放完整的代码了
这里放网页上拿来下的那一整块代码就行
a = window.linshu(16)
o = a.rsaFun('123456')
console.log(o)
结果展示:
看完点个赞吧,喜欢的可以点个关注!