当前位置: 首页 > news >正文

文件操作--文件下载读取漏洞

 本文主要内容

文件下载

        产生

                任意语言代码下载功能函数

        检测

                白盒        代码审计

                黑盒        漏扫工具、公开漏洞、手工看参数值及功能点(资源下载)

        利用

                常见文件        后台首页日志等可见文件

                敏感文件        数据库配置文件、各种接口文件、密匙信息等文件

                ## 没太搞懂

        修复        部署WAF产品、固定目录或过滤跨目录符号、目录权限设置或单独文件权限设置

文件读取

        产生        

                任意言代码获取功能函数
        检测        

                手工看参数值及功能点(资源获取)
        利用


        修复

火狐渗透版下载

1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞

两种漏洞简述

文件读取漏洞(Arbitrary File Read)

原理: 文件读取漏洞是指攻击者能够通过应用程序读取服务器上任意文件的内容。这种漏洞通常发生在应用程序对用户输入的文件路径没有进行严格的验证和过滤时。攻击者可以通过构造恶意的请求来利用该漏洞,读取他们本来无权访问的文件。

漏洞利用条件:

  1. 应用程序中存在读取文件的函数,如 fopen()file_get_contents() 等。

  2. 用户能够控制读取文件的路径。

  3. 应用程序没有对用户输入的路径进行严格的验证和过滤。

示例: 假设有一个应用程序,它允许用户通过 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)

原理: 文件下载漏洞是指攻击者能够通过应用程序下载服务器上任意文件。这种漏洞通常发生在应用程序对用户输入的文件路径没有进行严格的验证和过滤时。攻击者可以通过构造恶意的请求来利用该漏洞,下载他们本来无权访问的文件。

漏洞利用条件:

  1. 应用程序中存在下载文件的函数,如 readfile()fopen() 等。

  2. 用户能够控制下载文件的路径。

  3. 应用程序没有对用户输入的路径进行严格的验证和过滤。

示例: 假设有一个应用程序,它允许用户通过 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二月 zone https://blog.csdn.net/rfrder/article/details/108547743

相关文章:

  • Fedora升级Google Chrome出现GPG check FAILED问题解决办法
  • 【Linux】关于虚拟机
  • 【AI提示词】奥卡姆剃刀思维模型专家
  • Semantic Kernel 快速入门
  • 神州趣味地名-基于天地图和LeafLet的趣味地名探索
  • C++ 的 lambda 表达式
  • 自制qrcode二维码生成扫码美化
  • 第6篇:EggJS数据库操作与ORM实践
  • 组件通信-props
  • BLE协议栈的解析
  • 4.3 random模块
  • 中小企业MES系统详细设计
  • 低代码/AI是否会取代前端开发?
  • 倒排索引与数据库索引
  • 小刚说C语言刷题—1018三角形类别
  • [预备知识]5. 优化理论(一)
  • Linux 库文件详解
  • 文章六:《循环神经网络(RNN)与自然语言处理》
  • 云盘系统设计
  • EMC PowerStore存储学习之一NVMe磁盘的命名规则
  • 9米长林肯车开进“皖南川藏线”致拥堵数小时,车主回应称将配合调查
  • 日产淡水10万吨、全自动运行,万华化学蓬莱海水淡化厂投产
  • 竞彩湃|德甲保级白热化,都灵主帅直面旧主
  • 夜读丨跷脚牛肉乐翘脚
  • 西夏文残碑等文物来沪,见证一段神秘灿烂的历史
  • 人社部:一季度全国城镇新增就业308万人,同比增加5万人