4、任意文件读取漏洞

1、概述

定义: 任意文件读取也被称作目录遍历。网站读取用户提交的参数中文件路径并显示文件内容的功能存 在缺陷,可导致用户自定义文件名或文件路径

分类: Web通用漏洞

风险等级: 低危/高危

危害: 可读取服务器特定目录下的文件,文件内容不敏感。/可读取服务器任意目录下的文件

Tips:

可使用 ../../ 的方式跳出当前目录

用途: 任意文件下载漏洞的利用主要是为了信息收集,通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。

2、漏洞原理+利用

漏洞示例:

// $file_name="cookie.jpg";
$file_path="download/{$_GET['filename']}";
//用以解决中文不能显示出来的问题
$file_path=iconv("utf-8","gb2312",$file_path);

//首先要判断给定的文件存在与否
if(!file_exists($file_path)){
    skip("你要下载的文件不存在,请重新下载", 'unsafe_down.php');
    return ;
}
$fp=fopen($file_path,"rb");
$file_size=filesize($file_path);
//下载文件需要用到的头
ob_clean();//输出前一定要clean一下,否则图片打不开
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".basename($file_path));
$buffer=1024;
$file_count=0;
//向浏览器返回数据

//循环读取文件流,然后返回到浏览器feof确认是否到EOF
while(!feof($fp) && $file_count<$file_size){

    $file_con=fread($fp,$buffer);
    $file_count+=$buffer;

    echo $file_con;
}
fclose($fp);

可以看到没有对传入的参数做任何限制,所以产生了文件下载漏洞。

一些简单的绕过:

利用:

当遇到一个任意文件下载时,我们的一般利用思路:

  • 下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
  • 下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
  • 下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。

首先要注意权限问题。权限决定我们能下载的文件范围。

尝试读取 /root/.bash_history 看自己是否具有root权限。如果没有的话。我们只能按部就班的利用../来回跳转读取一些.ssh下的配置信息文件。 读取mysql下的.bash_history文件。来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码文件,但是下载的时候变得很繁琐,我们只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析

如果遇到 java+oracle 环境:

可以先下载 /WEB-INF/classes/applicationContext.xml 文件,这里面记载的是web服务器的相应配置,然后下载 /WEB-INF/classes/xxx/xxx/ccc.class 对文件进行反编译,然后搜索文件中的upload关键字看是否存在一些api接口,如果存在的话可以本地构造上传页面用api接口将我们的文件传输进服务器。

如果具有root权限:

  • root权限直读shadow文件

Tips:如果只开放了80,443两个端口,账号密码作用不大。

  • 下载mlocate.db + locate命令

利用任意文件下载漏洞将mlocate.db文件下载下来,利用locate命令将数据输出成文件,这里面包含了全部的文件路径信息。

locate示例:

locate mlocate.db admin
  • 利用linux内核的一个文件/proc/self/cmdline当前进程的cmdline参数,可以获取到路径信息。

3、漏洞挖掘

工具:Google hacking或Web漏洞扫描器

任意文件读取漏洞的挖掘方法: 一般通过系统特定目录下的文件来验证是否存在漏洞。 路径穿越攻击:

  • 在Linux系统中: 一般请求 ../../../../../../../../../../etc/passwd
cat ../../../../../../../../etc/passwd
  • 在Windows系统中: 一般请求 ../../../../../../../../../../windows/win.ini 或C:\WINDOWS\Win.ini

4、漏洞防御

1.设置可读文件的白名单同时限制使用‘.’、‘/’等字符。

2.将文件与数字对应关系保存在文本或数据库中,仅允许用户输入数字,服务器通过转化后,读取文件内容并返回给用户。

 

 

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
shopxo是一种流行的开源电商系统,以其简单易用和灵活性而备受欢迎。然而,它也存在一些安全漏洞,包括任意文件读取漏洞。这个漏洞可能会使攻击者能够读取服务器上的任意文件,包括敏感的配置文件和用户数据。 要利用shopxo download任意文件读取漏洞,攻击者通常会构造特定的URL请求,注入恶意代码来访问目标文件。攻击者可能可以通过执行一系列步骤来实现此目标,例如: 1. 识别目标系统上潜在的敏感文件,如数据库配置文件、用户身份验证文件等。 2. 构造特定的URL来请求这些文件,使用目标系统的下载功能。 3. 在URL中注入特殊字符或路径遍历符号,以绕过访问限制和读取目标文件。 一旦攻击者成功读取到目标文件,他们可能会进一步利用这些信息来实施其他攻击,例如窃取用户信息、篡改网站内容或者进行其他恶意活动。 为了防范shopxo download任意文件读取漏洞,网站管理员可以采取以下措施: 1. 及时更新shopxo系统以修复任何已知漏洞,并安装最新的补丁程序。 2. 限制对敏感文件的访问权限,确保只有授权的用户能够访问它们。 3. 验证和过滤用户输入,以防止任意文件读取漏洞的利用。 4. 实施Web应用程序防火墙(WAF),以监视和阻止恶意请求。 5. 定期进行安全审计和漏洞扫描,以及对服务器和应用程序配置进行安全性评估。 通过采取这些预防措施,可以最大限度地减少shopxo download任意文件读取漏洞的风险,并确保网站和用户数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值