RFI文件包含漏洞
2021-12-07 03:57:27 17 举报
AI智能生成
无
作者其他创作
大纲/内容
备注
包含操作,在大多数WEB语言中都会提供的功能,但PHP对于包含文件所能提供的功能太强大 太灵活,所以包含漏洞就经常出现在PHP语言中,这也就导致了出现一个错误的现状。很多初学者认为包含漏洞只出现在PHP语言中,却不知在其他语言中也会出现包含漏洞。这也就应证了一句老话:功能越强大,漏洞就越多
快速查找文件包含漏洞(include是包含,如果程序执行到这行没有找到文件会警告.但继续执行.include_once和include是一样的 只是如果包含的文件已经存在就不再包含.require是引用资源.如果资源文件没有找到.程序会致命错误并且终止执行.require_once的意思和require是一样的,只是会检验文件是否 已经被包含.)
require_once() 要求一次
require() 要求
include_once() 包含一次
include() 包含
漏洞产生的原因
随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包
含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变
量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做
合理的校验或者校验被绕过就造成了文件包含漏洞。
含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变
量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做
合理的校验或者校验被绕过就造成了文件包含漏洞。
什么是文件包含
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数
时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含。
时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含。
包含漏洞入侵
读文件 (有特殊字符要转化为base64编码)
例如:http://192.168.1.55:8080/dvwa/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=x.php
写文件/命令执行
开启PHP 协议 PHP://input 并且 提交post数据为:<?php system('net user');?>(需要打开allow_url_indlude 为ON)
包含绕过
..././ 绕过
绝对路径不受任何影响
fnmatch函数绕过
构造URL http;//192.168.0.103/dvwa/vulneradilities/fi/page=file:///C:/xampp/htdocs/dvwa/php.ini
截断包含(这种方法只适合于magic_quotes_gpc=off的时候,在PHP 的老版本中(小于5.3.4)也是存在着一些其他的截断问题)
//////......... 超长文件名截断
%00 截断
协议绕过
http/https
file
php
包含日志文件
文件包含分类
本地包含
LIF
指的是能打开并包含本地文件的漏洞。大部分情况下遇到的文件文件包含漏洞都是LFI。
远程包含
RLF ( 需要allow_url_include =on magic_quotes_gpc=off )
0 条评论
下一页