文件包含漏洞
使用函数包含指定文件的代码,没对函数的参数进行过滤,可被用户控制包含恶意文件并执行代码文章来源地址https://www.toymoban.com/news/detail-432299.html
- 漏洞分类
本地文件包含:目录遍历、任意文件读取、包含日志文件getshell、图片马getshell、伪协议读取文件/命令执行、包含phpinfo上传的临时文件
远程文件包含:远程木马getshell(需要allow_url_fopen和allow_url_include都是on) - 漏洞挖掘
URL参数名出现了page、file、filename、include等关键字;URL参数值出现了文件名,如xx.php、xx.html等 - 漏洞利用
发现漏洞->上传shell或读取敏感文件(FUZZ)->执行恶意代码 - 漏洞修复
PHP配置中的allow_url_fopen和allow_url_include改为off
禁用动态包含
过滤协议、目录字符
设置包含文件白名单
PHP相关函数
函数 | 作用 |
---|---|
include | 包含并运行文件 |
include_once | 只包含并运行文件一次,不重复包含 |
require | 包含并运行文件,出错时终止运行 |
require_once | 只包含并运行文件一次,出错时终止运行 |
fopen | 打开文件或URL |
readfile | 读取文件并写入输出缓冲 |
highlight_file | 语法高亮一个文件 |
show_source | 语法高亮一个文件 |
file_get_contents | 把整个文件读入一个字符串 |
file | 把文件读入一个数组中 |
PHP伪协议
协议 | 作用 |
---|---|
file:// | 访问本地文件系统 |
http:// | 访问HTTP(s)网址 |
ftp:// | 访问FTP(s) URLs |
php:// | 访问各个输入/输出流 |
zlib:// | 压缩流 |
data:// | 数据流 |
glob:// | 查找匹配的文件路径模式 |
phar:// | PHP归档 |
ssh2:// | secure shell 2 |
rar:// | RAR |
ogg:// | 音频流 |
expect:// | 处理交互式的流 |
文章来源:https://www.toymoban.com/news/detail-432299.html
到了这里,关于文件包含漏洞利用和防御的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!