首页 > 其他分享 >2022强网拟态 WHOYOUARE

2022强网拟态 WHOYOUARE

时间:2023-02-15 00:13:07浏览次数:64  
标签:WHOYOUARE __ Object proto construstor 2022 prototype 强网 构造函数

2022强网拟态 WHOYOUARE

先说一下这个思路 由于禁用了__proto__所以我们可以通过constructor.prototype来绕过

之前一直不明白为什么是这样绕过的后来仔细研究了一下 本人菜鸡 如果是有分析错误的地方 欢迎大佬来斧正

说一下这样绕过的原理

我们对象的__proto__指向的是该对象的原型 构造函数 的prototype也是指向生成对象的原型

所以就有 对象的__proto__===构造函数 的prototype

image-20230214230651554

然后还有一个东西叫做 constructor 这个东西呢是 原型才有的

image-20230214230824015

我们可以看到这个constructor属性呢指向的是构造函数 这个例子中Object是构造函数

然后我们又可以通过构造函数来寻找到原型 这里利用construstor.prototype

然后看一这个对象.construstor.prototype就指向的是对象的原型

因为 这里我们在对象中是找不到construstor的 那他就会在上层 ,对象的__proto__属性中去找construstor

而对象的__proto__属性也就是是 函数的prototype 他这个里面是由指向构造函数的constrstor 然后又通过prototype找到对象的原型

这样解释感觉有点乱 但是理解了prototype,__proto__,construstor和继承关系之后 自己去想一想还是很好想通的

通过 这篇文章来理解他们三个之间的关系

现在我们理解了 为什那么可以通过construstor.prototype来绕过__proto__之后我们继续看往下怎么污染 污染什么

这里我们污染大Object污染1为cat /flag这个必须要污染的值的属性名是1 因为我们要覆盖 数组下标为1的id 所以必须是1 一下是随意污染的值的属性名的情况 (vscode的调试真的超级好用!!!!!)

image-20230214233430081

一定要污染到大Object

因为这个数组command的下标为什么能赋值覆盖的 是因为这里的command数组进行了继承

由于我们污染了大Object 然后数组的往上找 的原型是Array

再往上才是Object

image-20230214235031959

所以正确的payload就是

{"user":"{\"command\":[\"-c\"],\"constructor\":{\"prototype\": {\"1\": \"cat /flag\"}}}"}
{"user":"{\"command\":[\"-c\"]}"}

image-

这里是在本机Windows里面调得 linux里面是可以直接执行命令的

核心思想应该就是把赋值过的东西在赋值覆盖一下 这道题拖了好长时间了 今天终于完完全全的调试下来了

标签:WHOYOUARE,__,Object,proto,construstor,2022,prototype,强网,构造函数
From: https://www.cnblogs.com/kkkkl/p/17121278.html

相关文章

  • 2022注册注销基本要求、注册重定向解读和技术实现
    GB28181-2022注册、注销基本要求相对GB28181-2016版本,做了一定的调整,新调整的部分如下:——更改了注册和注销基本要求(见9.1.1,2016年版的9.1.1)。1.增加对NAT模式网络传输......
  • GB28181-2022注册注销基本要求、注册重定向解读和技术实现
    规范解读GB28181-2022注册、注销基本要求相对GB28181-2016版本,做了一定的调整,新调整的部分如下:——更改了注册和注销基本要求(见9.1.1,2016年版的9.1.1)。1.增加对NAT模式网......
  • 倒带ChunJun,同心前行|2022年度回顾&2023年共建规划
    ChunJun是一个开始于2018年的批流一体数据集成框架项目,原名FlinkX。2022年2月22日,在FlinkX进行初版开源的整整四年后,技术团队决定对FlinkX进行整体升级,并更名为ChunJun,希望......
  • 2022.2.14 每日十题
    一个组织正在采用敏捷的思维方式。在第一个敏捷项目中,项目经理面临一个问题,因为团队不能及时做出决定。项目经理应该怎么做来解决这个问题?A.为新的组织政策下的决策制定......
  • 巨杉数据库荣获2022年度21世纪全国创新公司50强殊荣
    巨杉数据库凭借在数据库以及金融科技领域的持续技术深耕以及赋能数字化转型的突出表现,成功入选由南方财经全媒体集团主办的“21世纪(全国)创新公司50强:MIC50”榜单。近期,21......
  • Xmind2022安装教程
    第一步卸载1.右键卸载掉原有Xmind8   第二步安装1.将压缩文件解压2.双击运行“XMind2022.exe”3.应用程序会自动安装软件,稍等一下 4.点击右上角的......
  • Helix QAC 2022.4 中的新增功能
     前言  HelixQAC2022.4为MISRAC:2012AMD3提供了100%的规则覆盖,数据流被拆分为一个新的组件,提供了改进的分析性能,并升级了对C++20和C23的语言支持。 此外,此版......
  • clion 2022 win10上编译的程序不可运行---问题解决
    会报错,0xc000007b网上说,可能是dll库丢失等问题,我试了无效我的修复过程如下编译的时候,默认是使用ninja,将buildtool改成make即可 ......
  • Visual Studio 2022 安装低版本的 .Net Framework(2.0~4.5)
    首先打开VisualStudioInstaller可以看到vs2022只支持安装4.6及以上的版本,如图所示。那么该如何安装4.6以下的版本,下面将详细介绍。 安装4.0~4.5系列首先......
  • 2022/02/13--开学考总结
    我甚至找不出我写的东西的优点,那来总结下思路吧。思路:首先,应该对项目需求了解。对需求分析,然后建数据库的表,分析有三部分:评论为一个板块,新闻为一个板块,人的板块。其次,应......