漏洞讲解之文件包含

简介: 漏洞讲解之文件包含

一、文件包含漏洞是什么?

通过函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。

二、 文件包含漏洞有哪几种类型?

本地文件包含漏洞:本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用。

远程文件包含漏洞:远程文件包含就是调用其他网站的恶意文件进行打开。

三、 php的包含函数

PHP中文件包含函数有以下四种

require()
require_once()
include()
include_once()

include和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

include_once(),require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。

四、 本地包含漏洞

本地包含顾名思义,就是在网站服务器本身存在恶意文件,然后利用本地文件包含使用。本地包含漏洞常被用来读取本地文件,上传包含恶意代码的图片,然后包含执行。

1. 包含恶意代码的文件

创建一个后缀为jpg的文件,内容如图:

640.png 

上传该文件,直接访问,文件并不会执行

640.png 

通过包含漏洞包含该文件后,php代码被执行了

640.png 

2. 读取本地文件

可通过该漏洞读取一些配置文件等敏感文件

/etc/passwd//账户信息
/etc/shadow//账户密码文件
/usr/local/app/apache2/conf/httpd.conf//Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf//虚拟网站配置
/usr/local/app/php5/lib/php.ini //PHP相关配置
/etc/httpd/conf/httpd.conf//Apache配置文件
/etc/my.conf // mysql 配置文件

640.png 

五、 远程包含漏洞

远程包含漏洞需要服务器期的服务器的php.ini的配置选项allow_url_fopen和allow_url_include为On,然后在自己的服务器放一个包含恶意代码的文件。

640.png

然后包含这个远程文件,通过文件包含漏洞执行文件内的代码。

 640.png


相关文章
|
6月前
|
安全 PHP
36、远程文件包含漏洞
36、远程文件包含漏洞
36 0
|
1月前
|
安全 前端开发 Linux
文件包含漏洞
文件包含漏洞
|
1月前
|
安全 PHP
文件包含漏洞(一)代码解读
文件包含漏洞(一)代码解读
|
6月前
|
安全 关系型数据库 MySQL
文件包含漏洞利用技术总结
文章讨论了PHP文件包含漏洞及其利用方法,包括远程文件包含、目录遍历和特殊协议利用等安全风险。
70 0
文件包含漏洞利用技术总结
|
安全 网络安全 开发者
DedeCMS 5.7.106版本存在文件包含漏洞
攻击者可以通过操纵参数allurls来实现代码注入,并最终获得网站的控制权限。在/data/admin/allowurl.txt文件中写入的内容,并没有经过安全过滤,从而导致被成功绕过。由此可见,开发者应该严格限制用户输入的数据,避免类似漏洞的出现,确保网站的安全性和稳定性。
180 0
|
安全 关系型数据库 MySQL
代码审计--文件包含
代码审计--文件包含
|
存储 安全 Unix
通用漏洞之文件包含漏洞
通用漏洞之文件包含漏洞
242 0
|
机器学习/深度学习 存储 安全
|
机器学习/深度学习 存储 安全
【网络安全】文件包含漏洞--使用session进行文件包含
文件包含漏洞--使用session进行文件包含
310 0
【网络安全】文件包含漏洞--使用session进行文件包含
|
机器学习/深度学习 存储 监控
【网络安全】文件包含漏洞--通过日志投毒getshell
文件包含漏洞--通过日志投毒getshell
332 0
【网络安全】文件包含漏洞--通过日志投毒getshell