ctfshow-web12(glob绕过)

news2024/9/23 11:20:29

打开链接,在网页源码里找到提示

要求以get请求方式给cmd传入参数

尝试直接调用系统命令,没有回显,可能被过滤了

测试phpinfo,回显成功,确实存在了代码执行

接下来我们尝试读取一下它存在的文件,这里主要介绍两个函数

scandir() 函数:返回一个数组,其中包含指定路径中的文件和目录。

若成功,则返回一个数组,若失败,则返回 false。如果 directory 不是目录,则返回布尔值 false 并生成一条 E_WARNING 级的错误。

用法:scandir(directory,sort,context)

参数描述
directory必需。规定要扫描的目录。
sort可选。规定排列顺序。默认是 0 (升序)。如果是 1,则为降序。
context可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

我们先扫描当前目录,若读取成功后,则将它输出

构造payload:?cmd=print(scandir('./'));

发现内容是一个数组,属于复杂类型变量,换用 print_r() 函数

知识补充:

print()只能打印出简单类型变量的值(如int,string)  ,输出一个字符串

print_r() 可以打印出复杂类型变量的值(如数组,对象)  ,打印关于变量的易于理解的信息

更新payload:?cmd=print_r(scandir('./'));

可以看到当前目录下存在一个名为903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php 的文件

使用 highlight_file() 函数对文件进行语法高亮显示(就是查看文件的源码)

构造payload:

?cmd=highlight_file('903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php');

得到 $flag="ctfshow{eae7ce01-7143-4333-aecb-6862cab465ce}" 

前面文件的读取也可以使用另一个函数

glob() 函数:返回一个包含匹配指定模式的文件名或目录的数组,如果失败则返回 FALSE。

 用法:glob(pattern,flags)

参数描述
pattern必需。规定检索模式。
flags可选。规定特殊的设定。

可能的值:

  • GLOB_MARK - 在每个返回的项目中加一个斜线
  • GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
  • GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
  • GLOB_NOESCAPE - 反斜线不转义元字符
  • GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'
  • GLOB_ONLYDIR - 仅返回与模式匹配的目录项
  • GLOB_ERR - (PHP 5.1 新增的)如果错误则停止,默认情况下忽略所有错误

glob("*") 会匹配任意文件,glob("*.php")则是匹配以php为后缀的文件 

这里匹配一下任意类型的文件

构造payload:?cmd=print_r(glob("*"));

输出结果和上面一样

后面除了使用highlight_file()函数,也可以使用show_source()函数,后者就是前者的别名。

payload:

?cmd=show_source('903c00105c0141fd37ff47697e916e53616e33a72fb3774ab213b3e2a732f56f.php');

拿到flag之后,我们也可以看一下它这道题目的源码,先看一下index.php里面的内容:

?cmd=highlight_file('index.php');

可以看到,传入的cmd直接被放进了eval函数,但我还是没找到它在哪里把system过滤掉了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

E. Li Hua and Array

Problem - E - Codeforces 思路:观察给定的函数,其实就是求与这个数互质的数的个数,即欧拉函数,我们发现一个数迭代欧拉函数不会很多,那么对于第一个操作来说我们可以直接暴力修改,而对于第二个操作来说&am…

软件测试/测试开发丨为什么接口自动化测试是提升职业技能的关键?

接口测试背景和必要性 接口测试是测试系统组件间接口(API)的一种测试,主要用于检测内部与外部系统、内部子系统之间的交互质量,其测试重点是检查数据交换、传递的准确性,控制和交互管理过程,以及系统间相互…

ElementPlus Switch 开关基础使用

昨天开发用到开关组件 后台返回字段是 can_write 默认是0 or 1 但是Switch 组件绑定的默认值默认是 true or false 直接绑定会导致默认是关闭状态 在页面一加载 值发生变化时 会自己调用 查了文档 需要使用 active-value 和 inactive-value 来指定绑定的数据类型 …

C#,工业化软件与院校软件的对比及编程语言的选择建议

飞机发动之之一,涡轮喷气航空发动机(JET ENGINE) 火箭发动机之一,俄罗斯RD-180煤油和液氧发动机(ROCKET ENGINE) 1 飞机发动机与火箭发动机的简明对比 2 工业软件与院校软件的简单对比 除了以上类似的对比…

【java学习】方法的参数传递(21)

文章目录 相关概念1. 方法传递之基本数据类型2. 方法的参数传递之引用对象3. 总结 相关概念 方法,必须有其所在类或对象调用才有意义。若方法含有参数: 形参:方法声明时的参数 实参:方法调用时实际传给形参的参数值 问题&#xf…

数据建模设计

数据库系统——建模与设计 一、数据建模 数据库的设计不仅需要处理规则的理解,更重要的是数据需求的理解与表达。 表达计算机世界的模型称为数据模型,而表达信息世界的模型称为概念模型。抽象是具有层次的,将现实世界的问题抽象成概念模型…

[ValueError: not enough values to unpack (expected 3, got 2)]

项目场景: 在使用opencv进行关键点识别、边缘轮廓提取的时候,提示以上错误。 import cv2 import numpy as npdef preprocess(image):# 进行图像预处理(例如灰度化、高斯模糊等)gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)blu…

Vuex的使用,详细易懂

目录 一.前言 二.Vuex的简介 三.vuex的使用 3.1 安装Vuex 3.2 使用Vuex的步骤: 四.vuex的存值取值(改变值) 五.vuex的异步请求 好啦,今天的分享就到这啦!!! 一.前言 今天我们继续前面的E…

openGauss Meetup(天津站.10月13日),欢迎报名

由openGauss社区、天开发展集团、天津市软件行业协会、天大智图(科技)有限公司联合主办,天津鲲鹏生态创新中心、天津市计算机学会、天津市人工智能学会、天津市系统集成协会、麒麟软件有限公司、天津南大通用数据技术股份有限公司、AI知学社协办的“open…

【Vuex+ElementUI】Vuex中取值存值以及异步加载的使用

一、导言 1、引言 Vuex是一个用于Vue.js应用程序的状态管理模式和库。它建立在Vue.js的响应式系统之上,提供了一种集中管理应用程序状态的方式。使用Vuex,您可以将应用程序的状态存储在一个单一的位置(即“存储”)中,…

北斗高精度定位为无人车成为机场运营新常态提供技术保障

在现代快节奏的生活中,人们对交通效率和安全性的需求越来越高。为了满足这一需求,无人驾驶技术被广泛研究和应用。而随着北斗卫星系统的发展,机场无人车正成为潜在的未来运输解决方案。本文将深入探讨北斗卫星如何改变机场运营,以…

Vega Prime入门教程14.01:调用VAPS XT DLL

本文首发于:Vega Prime入门教程14.01:调用VAPS XT DLL 在VAPS XT系列教程中提到过Vega Prime可以直接调用Drawing Integration生成的dll,本文来测试这个功能效果。 本系列使用的是VP18.0,使用的是VC14.0(VS2015&…

java装箱和拆箱

package daysreplace;import com.sun.jdi.IntegerValue;import java.util.Arrays;public class Test {public static void main(String[] args) {//装箱:自动将基本数据类型转成包装类 基本数据类型->包装类型//拆箱:自动将包装类转成基本数据类型 包…

【LeetCode:2512. 奖励最顶尖的 K 名学生 | 模拟+哈希表+堆】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

练[GYCTF2020]EasyThinking

[GYCTF2020]EasyThinking 文章目录 [GYCTF2020]EasyThinking掌握知识解题思路还得靠大佬正式开始 关键paylaod 掌握知识 ​ thinkphpV6任意文件操作漏洞,代码分析写入session文件的参数,源码泄露,使用蚁剑插件disable_functions绕过终端无回…

Android Native 开发 要点实录

Android Studio 中写 C 代码 android studio创建C项目_android studio native c-CSDN博客 项目配置参考 【CMake】CMakeLists.txt的超傻瓜手把手教程(附实例源码)_【cmake】cmakelists.txt的超傻瓜手把手教程(附实例源码)-CSDN博客 CMakeLists.txt 讲解…

一文区分路由策略和策略路由!

一、路由策略 在复杂的数据通信网络中,根据实际组网需求,往往需要实施一些路由策略对路由信息进行过滤、属性设置等操作,通过对路由的控制,可以影响数据流量转发。路由策略并非单一的技术或者协议,而是一个技术专题或…

MongoDB——centOS7环境Mongodb权限管理(图解版)

目录 一、MongDB权限概述1.1、MongDB权限概述1.2、MongDB权限列表 二、Mongodb权限管理示例2.1、创建账号2.1.1、创建管理员用户2.1.2、开启认证2.1.3、创建普通账号 一、MongDB权限概述 1.1、MongDB权限概述 mongodb是没有默认管理员账号,所以要先添加管理员账号…

界面组件DevExpress WPF v23.1 - 进一步升级数据处理能力

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

帝国cms改目录后打不开,帝国cms改目录生成后还是404

帝国CMS更改了网站域名或者栏目目录地址信息打不开的解决方法,一起来看看吧: 很多的小伙伴们,改了后台的系统设置里面的网站地址或者栏目目录地址,信息页就打不开的解决方法如下: 后台>系统>数据更新>更新信…