当前位置: 首页 > article >正文

五,[GXYCTF2019]Ping Ping Ping1

a8ff0cc9da514e6d917d75ef83aff490.png

进入靶场,有提示

bcc3a46906f74f279541173adc5f27b8.png

我们在url试着输入本地IP,返回了ping命令

f9fc52a78ca44293af4f18d5aa62a2a5.png

既然要在url处传参,那就用postman,再输入ip=127.0.0.1 & ls,试着列出目录内容

9eafd59d6aff47c49d3ef6b310d84c82.png

ok,好像是个脏话,它过滤了空格

c6c1f886c46e4138811769419d8012b6.png

试着穿越又看到了脏话,它过滤了符号,一怒之下删掉了../   你猜怎么着,得到了两个文件名

9f4164308cea4beb9cbd6d75ce182be7.png

当然是flag.php更吸引人,但index.php肯定有存在的意义,用cat命令读取文件内容,且不要空格,符号,那就用$IFS$1试着代替空格

a8a097a4aa974160aa0d970c841621b2.png

 

26e85cdcba2b4b0cafe9958a2ff7e0e6.png

两个都尝试后发现flag被过滤了,我们去研究index.php

 

/?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); } ?>
  1. IP地址的初步安全检查

    • 使用preg_match函数检查输入字符串$ip是否包含一系列特殊字符(如&/?*<, 空格,>'"\()[]{})。
    • 如果检测到这些特殊字符,输出匹配结果(1或0表示是否匹配),并终止脚本执行,显示错误信息"fxck your symbol!"。
  2. 检查空格

    • 如果$ip包含空格,则终止脚本执行,显示错误信息"fxck your space!"。
  3. 检查bash关键字

    • 如果$ip包含字符串"bash",则终止脚本执行,显示错误信息"fxck your bash!"。
  4. 检查flag关键字

    • 使用正则表达式检查$ip是否包含任意顺序的字符组成的"flag"(不区分大小写)。如果包含,则终止脚本执行,显示错误信息"fxck your flag!"。
  5. 执行ping命令

    • 如果通过了上述所有检查,使用shell_exec函数执行ping -c 4命令来测试$ip的连通性。-c 4参数表示发送4个ICMP ECHO_REQUEST消息。
    • 输出空行和ping命令的执行结果。

这里我就没办法了

看了博客后,将flag中的g用$a代替可以绕过

2b1426f61fda4e7d94b61f9b2712246b.png

或者内联执行

f49bf1171ed3462a8d9d9bf8da1ea73a.png

 


http://www.kler.cn/a/412830.html

相关文章:

  • PostgreSQL数据库的备份与恢复
  • 【前端】JavaScript中的字面量概念与应用详解
  • 双向链表、循环链表、栈
  • ubuntu设置程序开机自启动
  • Mongo数据库 --- Mongo Pipeline
  • D80【 python 接口自动化学习】- python基础之HTTP
  • 【Linux打怪升级记 | 报错02】-bash: 警告:setlocale: LC_TIME: 无法改变区域选项 (zh_CN.UTF-8)
  • Burp入门(3)-爬虫功能介绍
  • 面向对象进阶-抽象类
  • Python基础学习-11函数参数
  • 视觉经典神经网络与复现:深入解析与实践指南
  • node.js中实现router模块化管理
  • hive的cascade使用解释
  • 泛型擦除是什么?
  • MongoDB 语法简析
  • 贴代码PasteForm框架之框架核心帮助类PasteFormHelper说明
  • go clean -modcache命令清理缓存
  • 使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件
  • 线程与进程的个人理解
  • 安全设备-日志审计-规则配置
  • JavaEE进阶-----mybatis操作数据库(新手教程)
  • 40分钟学 Go 语言高并发:【实战】并发安全的配置管理器
  • 文本处理之sed
  • 机器学习基础--基于线性回归房价预测
  • 【好玩的经典游戏】Docker环境下部署贪吃蛇网页小游戏(二)
  • uniapp运行时,同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示。