[ACTF2020 新生赛]BackupFile1

devtools/2024/9/22 17:25:33/

打开题目

利用disearch扫描,发现源文件index.php.bak

下载下来

打开文件

代码审计,翻译一下

翻译代码为:
<?php
include_once "flag.php"; //这一行使用 include_once 函数来包含(或插入)另一个 PHP 文件 "flag.php" 的内容。include_once 确保文件只被包含一次,即使它在多个地方被调用。这意味着 "flag.php" 文件中定义的任何变量或函数都将在当前文件中可用。
 
if(isset($_GET['key']))  //这一行检查 GET 请求中是否存在名为 'key' 的参数。$_GET 是一个 PHP 超全局变量,用于收集表单数据(HTML 表单)在 URL(地址栏)中发送的变量。isset() 函数检查变量是否设置且不为 NULL。
{
    $key = $_GET['key'];  //如果 'key' 参数存在,这行代码将其值赋给 $key 变量。
    if(!is_numeric($key)) 
    {
        exit("Just num!");  //这两行代码检查 $key 是否为数字。如果不是数字,is_numeric() 函 
                    数返回 false,然后 exit("Just num!") 将终止脚本执行并输出 "Just num!"。
    }
    $key = intval($key);   //这行代码使用 intval() 函数将 $key 转换为整数。如果 $key 是数字 
                             或数字字符串,intval() 将返回该数字的整数形式。
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";  //这行代码定义了一个字符串 
                                                            $str,它包含数字和字符的组合。
    if($key == $str) 
    {
        echo $flag;  //这两行代码检查 $key 是否等于 $str。如果相等,它将输出 $flag 的值。由 
                      于 $str 是一个包含非数字字符的字符串,这意味着只有在 $key 也是一个包含 
                      相同字符的字符串时,这个条件才会为真。
    }
}
else 
{
    echo "Try to find out source file!";   //如果 GET 请求中没有 'key' 参数,这个 else 块将 
                                             执行,输出 "Try to find out source file!"。
}

然后构造payload得到flag

构造payload url+/?key=123,得到flag


http://www.ppmy.cn/devtools/87935.html

相关文章

第三方库jsoncpp

文章目录 0.jsoncpp库是做什么的&#xff1f;1.安装库2.有哪几个类&#xff0c;如何使用Json::Value类Json::Writer类-StreamWriterJson::Reader类-CharReader三者关系 3.使用样例将数据先存入Value类&#xff0c;再通过StreamWriter类转为Json格式的字符串获取到Json格式字符串…

大厂的风控引擎架构设计

1 架构师能力思维模型 全局思维抽象思维 2 新需求的思考路径 需求是否合理&#xff0c;是否能解决问题&#xff1f; 能划分多少个子系统&#xff1f; 每个子系统能划分多少个模块&#xff1f;这个系统需要可靠性吗&#xff0c;需要扩展能力吗&#xff1f;成本需要控制吗&a…

【教程】Python语言的地球科学常见数据——海温数据-NOAA OISST 的处理

NOAA 1/4每日最佳内插海面温度&#xff08;OISST&#xff09;是一个长期的气候数据记录&#xff0c;它将来自 不同平台&#xff08;卫星、船舶、浮标和 Argo 浮标&#xff09;的观测数据纳入一个定期的全球网格。该 数据集经过插值处理&#xff0c;以填补网格上的空白&#x…

一文说清IPython:新手入门指南与实用技巧

什么是 IPython&#xff1f; IPython 是一个增强版的 Python 解释器&#xff0c;提供了一个交互式计算环境。它不仅支持基本的 Python 编程&#xff0c;还增加了许多功能&#xff0c;使得数据分析、科学计算和机器学习等任务变得更加高效和便捷。 特点包括&#xff1a; 交互式…

java+springboot+mysql疾病查询网站01548-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个B/S结构的疾病查询网站&#xff0c;会使疾病查询工作系统化、规范化&#xff0c;也会提高医院形象&#xff0c;提高管理效率。 本疾病查…

Mojo编程语言:AI开发者的新宠儿

引言 在人工智能(AI)技术迅速发展的当下&#xff0c;编程语言和工具也在不断进化&#xff0c;以适应日益复杂的开发需求。Mojo是一种新兴的编程语言&#xff0c;专为AI和机器学习项目设计&#xff0c;以其独特的功能和优化的性能&#xff0c;迅速成为AI开发者的新宠。本文深入探…

大数据技术原理-spark编程与应用

摘要 本实验总结了在"大数据技术原理"课程中进行的Spark编程实验。实验环境基于Apache Spark&#xff0c;旨在通过实践加深对Spark数据处理能力的理解。实验的主要内容包括开启Spark shell、导入必要的包、读入数据集、数据预处理、聚类模型训练、确定数据模型的中心…

Redis-入门

Redis的10大数据类型 这里的数据类型说的是 value的数据类型 1.字符串String string是redis最基本的类型一个key对应一个value。 string类型是二进制安全的&#xff0c;意思是redis的string可以包含任何数据&#xff0c;比如jpg图片或者序列化的对象 string类型是Redis最基…