首页 > 其他分享 >[GXYCTF2019]禁止套娃

[GXYCTF2019]禁止套娃

时间:2024-11-30 21:44:12浏览次数:6  
标签:禁止 套娃 GET die preg else exp php GXYCTF2019

题目链接:[GXYCTF2019]禁止套娃

打开环境后如下所示。

经过查看请求包及响应包,均未发现有相关提示,因此使用 CTF Web 常用的字典进行目录扫描(不推荐使用太大的字典)。

这里使用的工具是 dirsearch,扫描发现存在 .git 目录。

因此使用工具 GitHack 来提取可能存在的泄露的源码。

得到的 index.php 源码如下。

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>

...

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    // exp 参数中不能出现 data:// filter:// php:// phar:// 
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
        // 匹配一个函数调用结构,类似于:func(arg),或嵌套的 func(func(arg)),也就是说,仅可传入无参函数
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
            // exp 函数中不能出现 et、na、...
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>

也就是说,要构造一个无参的 Payload,下面先给出最终的 Payload。

Payload:?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));

首先是 localeconv 函数,返回一个包含本地数字及货币格式信息的数组,而且数组中的第一个元素就是 .

其次是 current 函数,返回数组中当前元素的值。

即,通过 localeconv 函数与 current 函数的配合,成功获取了字符:.

随后,通过 scandir 函数来查看当前存在的目录文件,即如下。

可以发现,flag.php 在数组中的位置为倒数第二个,因此使用 array_reverse 函数与 next 函数来定位到字符串:flag.php,最终,使用 highlight_file 打印出 flag.php 文件的源码。

如下。

标签:禁止,套娃,GET,die,preg,else,exp,php,GXYCTF2019
From: https://www.cnblogs.com/imtaieee/p/18578955

相关文章

  • 如何能防止网页禁止被iframe嵌入呢?
    很遗憾,你无法直接阻止其他网站通过iframe嵌入你的网页。X-Frame-Options头信息曾经是主要的防御手段,但现在已弃用,并且许多现代浏览器已不再支持它。目前,没有万无一失的方法完全阻止iframe嵌入。你可以采取一些措施来增加嵌入的难度或降低其有效性,但决心绕过这些措施的人仍然可......
  • 如何禁止IOS移动端网页橡皮筋的效果?
    在iOS移动端网页上禁用橡皮筋效果(也称为“overscroll”或“bounce”效果),主要有以下几种方法:1.使用CSS属性overscroll-behavior:这是最推荐和最现代的方法。overscroll-behavior属性允许你控制浏览器在滚动到边界时的行为。body{overscroll-behavior-y:contain;/*......
  • pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚
    一、报错执行pnpmi和pnpm-v都出现以下错误信息:pnpm:无法加载文件C:\ProgramFiles\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。二、解决方案搜索PowerShell,以管理员身份运行这2个(我改了第一个的不行,改了第二个才行),进行设置:在终端输入get-ExecutionPolicy查看......
  • Android 12.0 SystemUI低电量禁止打开手电筒功能实现
    1.前言在12.0的系统rom定制化开发中,在systemui下拉状态栏中可以通过手电筒开关来打开关闭手电筒功能,而在最近的开发中,需要在低电量的情况下禁止打开手电筒,接下来判断打开手电筒之前的当前电量,低电量模式返回就可以了接下来具体实现相关功能2.SystemUI低电量禁止打开手电筒......
  • 在帝国CMS后台禁止了管理自己的ip地址无法访问解决办法
    当你遇到帝国CMS无法访问的情况,通常是因为配置文件中的IP禁止设置出现了问题。以下是具体的解决步骤:问题1:无法访问自己的网站原因分析问题通常出现在 config.php 文件中的 closeip 设置,可能在最后一个IP后面有多余的空行或空格。解决方法打开 config.php 文件:......
  • 禁止吸烟监测系统 基于图像处理的吸烟检测系统YOLOv7
    吸烟是引发火灾的重要原因之一。烟头在未熄灭的情况下,其表面温度可达200℃-300℃,中心温度甚至能高达700℃-800℃。在易燃、易爆的生产环境中,如化工厂、加油站、仓库等,一个小小的烟头就可能引发灾难性的火灾,造成巨大的财产损失和人员伤亡。在一些特定的工业场所,存在着易燃易爆的气体......
  • Android 10.0 Launcher3禁止改变density等系统密度导致布局变化hotseat靠右边显示功能
    1.前言在10.0的系统rom定制化开发中,在进行launcher3的定制化功能中,在有些项目修改系统密度density的值,以后导致launcher3的布局变乱,hotseat布局成一行竖屏显示看的很不美观,接下来就看如何分析解析禁止density改变导致布局变动的功能分析2.Launcher3禁止改变density等系统密......
  • 要实现在Vue 2中点击按钮后在新浏览器标签页中预览PDF文件 ,pdf文件默认放大125% 禁止P
    要在Vue2中实现点击按钮后在新浏览器标签页中预览PDF文件,并设置PDF文件默认放大125%以及禁止PDF的工具栏下载功能,你可以使用window.open方法,并在其中设置合适的URL参数来控制PDF查看器的行为。以下是一个实现的示例:创建Vue组件:在Vue组件中,添加一个按钮用于触发PDF预览......
  • android 10 禁止通过adb命令的方式删除特定APK
    —a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java+++b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java@@-1636,84+1636,88@@classPackageManagerShellCommandextends......
  • 套娃!双路+双向!TCN-Transformer+BiLSTM多变量时间序列预测(Matlab)
    套娃!双路+双向!TCN-Transformer+BiLSTM多变量时间序列预测(Matlab)目录套娃!双路+双向!TCN-Transformer+BiLSTM多变量时间序列预测(Matlab)效果一览基本介绍程序设计参考资料效果一览基本介绍1.Matlab实现双路+双向!TCN-Transformer+BiLSTM多变量时间序列预测(Mat......