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

[ACTF2020 新生赛]BackupFile1

打开题目

利用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.lryc.cn/news/412161.html

相关文章:

  • Springboot学习-day16
  • Map 31
  • dfs,CF 196B - Infinite Maze
  • 鸿蒙应用框架开发【JS注入与执行】 Web
  • AI问答:理解 DRG / Diagnosis Related Group / 按疾病诊断相关分组
  • 多个线程同时调用接口
  • 本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——1到手测试
  • 2024第三届钉钉杯大学生大数据挑战赛【A题】完整分享
  • 下面关于数组排序的说明那项是错误的?
  • 【第二篇章】优秀的机器学习策略 超参数优化之决策树
  • httprunner转载
  • 反序列化漏洞vulhub靶场serial
  • C++ 文件流详解
  • docker compse简介与安装
  • 基于深度学习的零样本学习
  • C++——list容器以及手动实现
  • Win11系统文件资源管理器鼠标右键卡顿解决方法
  • 零基础学Python之 第十八讲 文件读写
  • 检索增强生成(RAG):智能内容生成的新纪元
  • ubuntu2204安装elasticsearch7.17.22
  • 介绍Servlet后端中两种接收参数方式req.getAttributer和req.getParameter的区别
  • Delphi FMX安卓Android播放mp3音频内存流
  • MapUtils常用方法
  • 自定义PasswordEditText控件,在手机字体应用后,字体样式未发生改变
  • 学习打卡第31天
  • opencascade AIS_TexturedShape源码学习 贴纹理
  • C# winform 串口读取字节流,MB级别字节流
  • 创建一个简单的单链表
  • 15.1 Zookeeper简介安装及基础使用
  • 详细说明Java中Map和Set接口的使用方法