[ACTF2020 新生赛]BackupFile1

打印 上一主题 下一主题

主题 673|帖子 673|积分 2019

打开标题

使用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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表