当前位置: 首页 > wzjs >正文

做ui什么图库网站好呀软文营销步骤

做ui什么图库网站好呀,软文营销步骤,印刷设计营销网站,dropbox wordpress文章目录 概要整体架构流程技术细节小结 概要 提示:仅供学习,不得用做商业交易,如有侵权请及时联系 逆向:某某航空 同盾 blackbox 补环境 URL:aHR0cHM6Ly9wYXNzcG9ydC5qdW5leWFvYWlyLmNvbS8 目标:blackbox参…

文章目录

    • 概要
    • 整体架构流程
    • 技术细节
    • 小结

概要

提示:仅供学习,不得用做商业交易,如有侵权请及时联系

逆向:某某航空 同盾 blackbox 补环境

URL:aHR0cHM6Ly9wYXNzcG9ydC5qdW5leWFvYWlyLmNvbS8=

目标:blackbox参数

整体架构流程

提示:分析流程

1、登录接口:blackbox值

在这里插入图片描述
验证码为鸡眼3

2、通过堆栈找到该值生成的地方:

在这里插入图片描述
在这里插入图片描述
进一步搜索该值生成的地方:
在这里插入图片描述
3、断住该位置,重新初始化加载(刷新页面):
在这里插入图片描述
在这里插入图片描述

该接口加载返回url:aHR0cHM6Ly9mcC50b25nZHVuLm5ldC93ZWIzXzgvcHJvZmlsZS5qc29u
js:fm.js文件生成

4、补环境:

  1. 挂代理,补环境
dtavm = {}
dtavm.log = console.log
function proxy(obj, objname, type) {function getMethodHandler(WatchName, target_obj) {let methodhandler = {apply(target, thisArg, argArray) {if (this.target_obj) {thisArg = this.target_obj}let result = Reflect.apply(target, thisArg, argArray)if (target.name !== "toString") {if (target.name === "addEventListener") {dtavm.log(`调用者 => [${WatchName}] 函数名 => [${target.name}], 传参 => [${argArray[0]}], 结果 => [${result}].`)} else if (WatchName === "window.console") {} else {dtavm.log(`调用者 => [${WatchName}] 函数名 => [${target.name}], 传参 => [${argArray}], 结果 => [${result}].`)}} else {dtavm.log(`调用者 => [${WatchName}] 函数名 => [${target.name}], 传参 => [${argArray}], 结果 => [${result}].`)}return result},construct(target, argArray, newTarget) {var result = Reflect.construct(target, argArray, newTarget)dtavm.log(`调用者 => [${WatchName}] 构造函数名 => [${target.name}], 传参 => [${argArray}], 结果 => [${(result)}].`)return result;}}methodhandler.target_obj = target_objreturn methodhandler}function getObjhandler(WatchName) {let handler = {get(target, propKey, receiver) {let result = target[propKey]if (result instanceof Object) {if (typeof result === "function") {dtavm.log(`调用者 => [${WatchName}] 获取属性名 => [${propKey}] , 是个函数`)return new Proxy(result, getMethodHandler(WatchName, target))} else {dtavm.log(`调用者 => [${WatchName}] 获取属性名 => [${propKey}], 结果 => [${(result)}]`);if (`${propKey}` === 'top') {return window}if (`${propKey}` === 'self') {return self}}return new Proxy(result, getObjhandler(`${WatchName}.${propKey}`))}if (typeof (propKey) !== "symbol") {dtavm.log(`调用者 => [${WatchName}] 获取属性名 => [${propKey?.description ?? propKey}], 结果 => [${result}]`);}return result;},set(target, propKey, value, receiver) {if (value instanceof Object) {dtavm.log(`调用者 => [${WatchName}] 设置属性名 => [${propKey}], 值为 => [${(value)}]`);} else {dtavm.log(`调用者 => [${WatchName}] 设置属性名 => [${propKey}], 值为 => [${value}]`);}return Reflect.set(target, propKey, value, receiver);},has(target, propKey) {var result = Reflect.has(target, propKey);dtavm.log(`针对in操作符的代理has=> [${WatchName}] 有无属性名 => [${propKey}], 结果 => [${result}]`)return result;},deleteProperty(target, propKey) {var result = Reflect.deleteProperty(target, propKey);dtavm.log(`拦截属性delete => [${WatchName}] 删除属性名 => [${propKey}], 结果 => [${result}]`)return result;},defineProperty(target, propKey, attributes) {var result = Reflect.defineProperty(target, propKey, attributes);dtavm.log(`拦截对象define操作 => [${WatchName}] 待检索属性名 => [${propKey.toString()}] 属性描述 => [${(attributes)}], 结果 => [${result}]`)// debuggerreturn result},getPrototypeOf(target) {var result = Reflect.getPrototypeOf(target)dtavm.log(`被代理的目标对象 => [${WatchName}] 代理结果 => [${(result)}]`)return result;},setPrototypeOf(target, proto) {dtavm.log(`被拦截的目标对象 => [${WatchName}] 对象新原型==> [${(proto)}]`)return Reflect.setPrototypeOf(target, proto);},preventcExtensions(target) {dtavm.log(`方法用于设置preventcExtensions => [${WatchName}] 防止扩展`)return Reflect.preventcExtensions(target);},isExtensible(target) {var result = Reflect.isExtensible(target)dtavm.log(`拦截对对象的isExtensible() => [${WatchName}] isExtensible, 返回值==> [${result}]`)return result;},}return handler;}if (type === "method") {return new Proxy(obj, getMethodHandler(objname, obj));}return new Proxy(obj, getObjhandler(objname));
}
  1. 提前加载的window属性:_fmOpt
window._fmOpt = {partner: 'jxhk',appName: 'jxhk_web',token: 'jxhk' + "-" + new Date().getTime() + "-" + Math.random().toString(16).substr(2),fmb: true,success: function (data) {_blackbox = data},fpHost: "https://fp.xxx.net"
};

3.接口生成的地方:document.createElement会创建一个script标签,然后赋值src链接,最后得到刚刚我们看到的接口并响应得到

_1743586336088_9724({"code": "000","result": {"tokenId": "xxx","xxid": "xx/xxx+8nEJGtj+fM4QZmvqCvcMiy/EdGYN4=","xdid": "xx","bxid": "MfgjSjjxV//xx==","c": {"factor": 0,"op": 0,"cm": 0,"vt": 604800}},"desc": ""
})

4._1743586336088_9724这个在fm文件中已经被重写成了一个方法,最后允许该方法生成blackbox

//script创建的标签
Object.defineProperty(script, 'src', {set: function (value) {if (value != undefined) {fetch(value).then(function (response) {return response.text();}).then(function (text) {console.log('profile.json响应结果:',text)eval(text);})}}
})

5.eval执行之后在window._fmOpt.success得到我们需要的_blackbox

技术细节

提示:结果

最后,看结果吧!

在这里插入图片描述

这里说一下,作者最近开了星球,主要以补环境为主,欢迎各位的加入,咱们一起学习交流~

小结

提示:学习交流+v看主页(可加知识星球)

http://www.dtcms.com/wzjs/13135.html

相关文章:

  • 美妆网站怎么做seo网站建站
  • 网站上的flash怎么做的百度推广产品有哪些
  • 旅游网站开发的意义谷歌推广平台
  • 网站建设公司没有业务iis搭建网站
  • 广州网站建设公司哪家好商业推广软文范例
  • 淄博企业网站设计公司seo关键词排名优化制作
  • 姑苏区网站建设网络营销促销策略有哪些
  • b站广告投放抖音账号权重查询入口
  • python网站开发 pdf扬州整站seo
  • 做网站税点推广代运营公司
  • 京津冀协同发展调研报告seo工资待遇怎么样
  • 用php做网站的方法广州网站运营专业乐云seo
  • 营销型网站建设专家产品推广网站
  • 玉林做绿化苗木网站的是哪个单位域名注册 万网
  • 网站设计的实例网站开发流程
  • 搜不到自己的网站seo基础知识考试
  • 专门做羽毛球的网站b站推广渠道
  • 常州网站建设要多少钱黄冈seo顾问
  • 把别人的图片拿来做网站找培训机构的app
  • 有网站开发经验怎么写简历香港疫情最新情况
  • 网站公司一站式服务小米市场营销案例分析
  • 有教做桥梁质检资料的网站吗网络推广引流有哪些渠道
  • 如何升级网站后台长沙网络营销顾问
  • 网站排名优化培训电话2023最近爆发的流感叫什么
  • 网站建设的含义优化网站链接的方法
  • 北京做网站公司 seo江苏seo和网络推广
  • 网站怎么推广和应用网站推广的主要方法
  • 开放平台是干什么的裤子seo关键词
  • 西宁做网站的公司捌君博力请免费无代码开发平台
  • 怎么样让百度收录网站网络广告营销案例有哪些