大众点评 web mtgsig 1.2分析
声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间头像私信联系我删除博客!
前言
简单分析一下大众点评mtgsig1.2。
mtgsig
为了搞快点我就拿了一个脚手架弄了。
const {VM, VMScript} = require('vm2'); const fs = require('fs'); const file = fs.readFileSync('./mtgsig.js') // By providing a file name as second argument you enable breakpoints const script = new VMScript(fs.readFileSync(file), file); new VM().run(script)
然后开始补环境缺什么补什么。主要需要补的一些环境。
XMLHttpRequest = function XMLHttpRequest() { // 构造函数 }; catvm.safefunction(XMLHttpRequest); XMLHttpRequest = catvm.proxy(XMLHttpRequest); sessionStorage = {}; sessionStorage = catvm.proxy(sessionStorage); indexedDB = {}; indexedDB = catvm.proxy(indexedDB); document.createEvent = function createEvent(event_type) { if(event_type == 'TextEvent'){ throw new TypeError("Illegal constructor"); } } AudioContext = function AudioContext() { // 构造函数 }; catvm.safefunction(AudioContext); AudioContext = catvm.proxy(AudioContext); fetch = function fetch() { // 构造函数 } catvm.safefunction(fetch); fetch = catvm.proxy(fetch); getOwnPropertyDescriptor_ = Object.getOwnPropertyDescriptor; Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(obj, prop) { return getOwnPropertyDescriptor_(obj, prop); } catvm.safefunction(Object.getOwnPropertyDescriptor);
token
这个随便抠一下代码就好了。