携程旅行 酒店testab

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

分析过程

写一个调用方法

function getTestAB(){
    result[1]()
    result = result.map(function(num) {
    return String.fromCharCode(num);
}).join('');
    return result
}

放到vm执行

const {VM} = require("vm2")
const m = new VM({
     require: {
    external: true, // 允许引入外部模块
    root: './' // 设置根目录,确保 vm2 可以找到 jsencrypt 模块
  },
    sandbox: {
        atob: atob,
        btoa: btoa,
        eval:eval,

    }
});
m.setGlobal('bodadominoWindow', dominoWindow)



var code = fs.readFileSync('./环境.js')
code += "\n\n\n\n\n"
code += fs.readFileSync('./携程旅行temp.js')
debugger

function getEncrypt() {
    code += `;debugger;headers1()`;
    res = m.run(code)
    // console.log(res,res.length)
    return res
}

补环境代码

const jsdom = require('jsdom');
const crypto = require('crypto');
const {JSDOM} = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`, {
    url: ''
});

window = dom.window;
document = window.document;  //document对象:代表给定浏览器窗口中的HTML文档,
navigator = window.navigator; // 关于运行当前脚本的应用程序的相关信息
location = window.location; //对象包含当前页面的URL信息
history = window.history; // 历史会话
screen = window.screen; // 浏览器屏幕

setInterval = function () {
}
setTimeout = function () {
}

结果

总结 

1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值