2022强网拟态 WHOYOUARE
2022强网拟态 WHOYOUARE
先说一下这个思路 由于禁用了__proto__
所以我们可以通过constructor.prototype
来绕过
之前一直不明白为什么是这样绕过的后来仔细研究了一下 本人菜鸡 如果是有分析错误的地方 欢迎大佬来斧正
说一下这样绕过的原理
我们对象的__proto__
指向的是该对象的原型 构造函数 的prototype
也是指向生成对象的原型
所以就有 对象的__proto__
===构造函数 的prototype
然后还有一个东西叫做 constructor
这个东西呢是 原型才有的
我们可以看到这个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的调试真的超级好用!!!!!)
一定要污染到大Object
因为这个数组command的下标为什么能赋值覆盖的 是因为这里的command数组进行了继承
由于我们污染了大Object 然后数组的往上找 的原型是Array
再往上才是Object
所以正确的payload就是
{"user":"{\"command\":[\"-c\"],\"constructor\":{\"prototype\": {\"1\": \"cat /flag\"}}}"}
{"user":"{\"command\":[\"-c\"]}"}
这里是在本机Windows里面调得 linux里面是可以直接执行命令的
核心思想应该就是把赋值过的东西在赋值覆盖一下 这道题拖了好长时间了 今天终于完完全全的调试下来了
2022强网拟态 WHOYOUARE的更多相关文章
- 2021qwb [强网先锋]赌徒 Writeup + 环境复现
2021 qwb [强网先锋]赌徒 Writeup + 环境复现(win10) 1.本地环境复现(win10+phpStudy2018) 将比赛文件复制到phpStudy的\phpStudy\PHPT ...
- 史上最强网推案例,没有之一【ZW团队实战经典】
ZW团队认为,互联网本质只有两个字:颠覆. ZW网络推广团队,是国内首个教父级网络营销团队,自1997年以来,先后参与操盘多个重大互联网项目,服务过超过150家国际500强客户,是微软公司首家官方认证 ...
- 中国首个进入谷歌编程之夏(GSoC)的开源项目: Casbin, 2022 年预选生招募!
Casbin 明日之星预选生计划-Talent for Casbin 2022 "Casbin 明日之星预选生计划-Talent for Casbin 2022"是什么? &quo ...
- 【第三届强网杯】write up
一,鲲or鳗orGame 从浏览器里拿到game.gb 用 VisualBoyAdvance ,搜索内存变量,然后改变量就完事了,但是改变量他们说直接利用添加代码功能有bug,所以要在工具里的内存查看 ...
- Android APP弱网测试问题和解决分析
最近做了一次移动APP的弱网和中断测试,接下来分享一下遇到的一些问题: 1.现象:用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致. 原因 ...
- 2019强网杯部分misc&web
0x01 前言 前两天菜鸡+x和几个大哥算是正式参加了一次ctf的线上赛,也是第一次参加这种比赛(前一段时间巨佬也给了我们一个西班牙的比赛,不过不算是正式参赛,做题的时候,比赛已经结束了),没想到出师 ...
- 从2021强网杯的一道题学习docx文件操作
[强网先锋]寻宝 啊对就是这道题,大佬们都贼快,菜如我还得慢慢整 key1 大佬们都一笔带过,哎,虽然简单,但是也别这么虐我们啊 我来简单写一下吧 <?php header('Content-t ...
- [转]15年双11手淘前端技术巡演 - H5性能最佳实践
[原文地址]:https://github.com/amfe/article/issues/21 前言 2015年是全面『无线化』的一年,在BAT(财报)几家公司都已经超过50%的流量来自移动端,这次 ...
- 优秀it博客和文章
优秀博客 综合 杨文博(供职于百度公司,任复合搜索部资深研发工程师,目前作为tech lead,负责垂直行业搜索后端架构研发.) 杨远骋 徐宥(Google 软件工程师. 这个中文博客是我的思考记录, ...
- 一个想法(续三):一份IT技术联盟创业计划书,开启众筹创业征程
写在创业计划书之前的话: 昨天在闪存里我@了dudu,说:我要借钱,不久dudu回了我:傍个富婆. 当然,dudu以为我是玩笑,其实,我的确是开玩笑的,哈. 不过我正在执行一个创业计划,如果启动,我会 ...
随机推荐
- 【译】.NET 7 中的性能改进(六)
原文 | Stephen Toub 翻译 | 郑子铭 矢量化 (Vectorization) SIMD,即单指令多数据 (Single Instruction Multiple Data),是一种处理 ...
- 基于PostGIS使用GeoServer发布数据量大的GPS轨迹路线图
1. 引言 人类在行走或者驾驶过程中产生的GPS轨迹,是道路的一种采样,根据GPS轨迹路线,我们可以推知道路的存在,根据轨迹的密度,可以推知道路的热度以及重要性.如何才能在地图中显示大量的轨迹,这是一 ...
- Net Core 网关 Ocelot 简单案例
1.什么是Ocelot Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabr ...
- Linux常用命令 转于WoW_Boom
一.常用命令 1.进入到用户根目录cd ~ 或 cd 2.查看当前所在目录pwd 3.进入到itcast用户根目录cd ~itcast 4.返回到原来目录cd - 5.返回到上一级目录cd .. 6. ...
- CLIP改进工作串讲(上)学习笔记
看了跟李沐学AI系列朱毅老师讲的CLIP改进工作串讲,这里记录一下. 1.分割 分割的任务其实跟分类很像,其实就是把图片上的分类变成像素级别上的分类,但是往往图片上能用的技术都能用到像素级别上来.所以 ...
- llinux防火墙设置远程连接
#停止防火墙systemctl stop firewalld #查看防火墙是否运行systemctl status firewalld# 防火墙设置允许firewall-cmd --add-port= ...
- MySQL的Temporary Files存放路径
在Linux环境中MySQL用TMPDIR环境变量来设置temporary files的路径,如果没有设置,MySQL会用系统默认 /tmp, /var/tmp或/usr/tmp. 1.当排序时(OR ...
- 快捷方法1:csdn如何不登录复制代码
按F12,在console里执行下面两句代码 $("#content_views pre").css("user-select","text" ...
- Matplotlib 网格线
我们可以使用 pyplot 中的 grid() 方法来设置图表中的网格线. grid() 方法语法格式如下: matplotlib.pyplot.grid(b=None, which='major', ...
- leetcode 30. 串联所有单词的子串 【时间击败 90.28%】 【内存击败 97.44%】
这道题让我从早做到晚-3--- 设len=words[0].length(). 一开始我按照words的顺序扩大区间,发现这样就依赖words的顺序.之后改成遍历s的所有长度为len*words.le ...