帝国系统怎样做网站地图,白银价格,外贸免费平台,免费网站的app任意文件读取漏洞
概述
漏洞成因
存在读取文件的功能#xff08;Web应用开放了文件读取功能#xff09;读取文件的路径客户端可控#xff08;完全控制或者影响文件路径#xff09;没有对文件路径进行校验或者校验不严格导致被绕过输出文件内容
漏洞危害
下载服务器中的…任意文件读取漏洞
概述
漏洞成因
存在读取文件的功能Web应用开放了文件读取功能读取文件的路径客户端可控完全控制或者影响文件路径没有对文件路径进行校验或者校验不严格导致被绕过输出文件内容
漏洞危害
下载服务器中的文件源代码文件、系统敏感文件、配置文件等可以配合其他漏洞构成完整的攻击链。对源代码进行审计查找更多漏洞。
任意文件读取漏洞
文件读取函数PHP
读取文件函数函数特点readfile()直接读取文件内容自带输出功能file_get_contents()直接读取文件内容需要输出读取内容fread()需要使用fopen()函数打开一个文件计算文件的大小读取文件输出文件关闭文件
readfile:
//readfile.php$fp ../phpinfo.php;
readfile($fp);file_get_contents:
//file_get_contents.php$fp ../phpinfo.php;
echo file_get_contents($fp);fread:
//fread.php$fp ../phpinfo.php;$f fopen($fp,r);
$f_size filesize($fp);echo fread($f,$f_size);fclose($f);任意文件读取
$fp $_GET[filepath];
readfile($fp);使用filepath传递在filepath中输入地址来获取文件内容
使用Burp抓包
结果 任意文件下载漏洞
PHP实现文件下载
?php
$fp ./111.jpg;
header(Content-Type:image/jpg);
header(Content-Disposition:attachment;fileName.basename($fp));
readfile($fp);任意文件下载
$fp $_GET[filepath]
header(Content-Type:image/jpg);
header(Content-Disposition:attachment;fileName.basename($fp));
readfile($fp);任意文件读取攻防
路径过滤(…/)
1.过滤 …/
使用str_replace进行替换
$fp $_GET[filepath];
$fp str_replace(../,);
readfile($fp);简单绕过
1.双写绕过
..././..././..././windows/system322.绝对路径
C:/windows/system32**3.使用…\ **
..\..\..\windows\system32任意文件读取挖掘
手工挖掘
从文件名上看从参数名上看readfile.phpfiledownload.phpfilelist.php . . .f file filepath fp readfile path readpath url menu META-INF WEB-INF content . . .
漏洞修复方案
输入验证
让用户只能访问一定的路径
限定文件的访问范围
让用户不能访问根目录以外的路径
php.ini配置文件中限定文件访问范围
open_basedir c:\www\不包含其他漏洞
不能有文件包含漏洞目录遍历漏洞或者其他漏洞