文件操作--文件下载读取漏洞
本文主要内容
文件下载
产生
任意语言代码下载功能函数
检测
白盒 代码审计
黑盒 漏扫工具、公开漏洞、手工看参数值及功能点(资源下载)
利用
常见文件 后台首页日志等可见文件
敏感文件 数据库配置文件、各种接口文件、密匙信息等文件
## 没太搞懂
修复 部署WAF产品、固定目录或过滤跨目录符号、目录权限设置或单独文件权限设置
文件读取
产生
任意言代码获取功能函数
检测手工看参数值及功能点(资源获取)
利用
修复火狐渗透版下载
1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞
两种漏洞简述
文件读取漏洞(Arbitrary File Read)
原理: 文件读取漏洞是指攻击者能够通过应用程序读取服务器上任意文件的内容。这种漏洞通常发生在应用程序对用户输入的文件路径没有进行严格的验证和过滤时。攻击者可以通过构造恶意的请求来利用该漏洞,读取他们本来无权访问的文件。
漏洞利用条件:
应用程序中存在读取文件的函数,如
fopen()
、file_get_contents()
等。用户能够控制读取文件的路径。
应用程序没有对用户输入的路径进行严格的验证和过滤。
示例: 假设有一个应用程序,它允许用户通过 URL 参数来指定要读取的文件路径:
<?php $file_path = $_GET['file']; $file_content = file_get_contents($file_path); echo $file_content; ?>
在这个示例中,攻击者可以通过构造恶意的 URL 来读取服务器上的任意文件。例如:
http://example.com/read.php?file=../../../../etc/passwd
这个请求将尝试读取 Linux 系统中的
/etc/passwd
文件。文件下载漏洞(Arbitrary File Download)
原理: 文件下载漏洞是指攻击者能够通过应用程序下载服务器上任意文件。这种漏洞通常发生在应用程序对用户输入的文件路径没有进行严格的验证和过滤时。攻击者可以通过构造恶意的请求来利用该漏洞,下载他们本来无权访问的文件。
漏洞利用条件:
应用程序中存在下载文件的函数,如
readfile()
、fopen()
等。用户能够控制下载文件的路径。
应用程序没有对用户输入的路径进行严格的验证和过滤。
示例: 假设有一个应用程序,它允许用户通过 URL 参数来指定要下载的文件路径:
<?php $file_path = $_GET['file']; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file_path).'"'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file_path)); readfile($file_path); ?>
在这个示例中,攻击者可以通过构造恶意的 URL 来下载服务器上的任意文件。例如:
http://example.com/download.php?file=../../../../etc/passwd
这个请求将尝试下载 Linux 系统中的
/etc/passwd
文件。总结
文件读取漏洞:攻击者能够读取服务器上的任意文件内容。
文件下载漏洞:攻击者能够下载服务器上的任意文件。
两者的主要区别在于,文件读取漏洞是将文件内容直接输出到浏览器,而文件下载漏洞是将文件作为附件下载到本地。然而,它们的利用原理和条件是相似的,都是由于应用程序对用户输入的文件路径没有进行严格的验证和过滤。
文件下载
漏洞利用
访问是代码执行,下载是看到的文本
数据库配置文件下载或读取后续、接口密匙信息文件下载或读取后续
使用工具
1.扫描工具爬行或扫描地址
2.下载好的文件代码中去分析路径和包含文件获取手动观察
#文件名,参数值,目录符号
read.xxx?filename= 、down.xxx?filename=readfile.xxx?file= 、downfile.xxx?file=
灵活运用 .\.\./等
%00?%23%20.等
&readpath=、&filepath=、&path=、&inputfile=&url=、&data=、&readfile=、&menu=、META-INF= 、WEB-INF
实际案例
一个购物网站
下载漏洞在哪里测?下载漏洞怎么判断存在?
eazy java做题
小米路由器-文件读取真实测试
参考
小米路由器远程任意文件读取漏洞(CVE-2019-18371)-CSDN博客https://blog.csdn.net/holen_/article/details/122706875https://blog.csdn.net/holen_/article/details/122706875
百度杯2017二月-Zone真题复现
参考
“百度杯”CTF比赛 2017 二月场 Zone_百度杯2017二月 zone-CSDN博客文章浏览阅读713次。这是涉及burp抓包,文件包含或者文件读取,目录遍历,和nginx的配置文件的一个题目。_百度杯2017二月 zonehttps://blog.csdn.net/rfrder/article/details/108547743