基础漏洞——任意文件查看与下载漏洞

目录

一.原理

二·.条件

三.漏洞危害

四.相关函数

(1)以PHP 脚本为例子,有一些函数可以实现文件读取功能。

(2)任意文件下载

四.如何去看这个漏洞是哪个

五.当参数f的参数值为php文件时

六.漏洞修复方案

一.原理

由于web页面需要提供文件查看或文件下载功能,对用户查看或下载的文件不做过限制条件,导致攻击者或者用户恶意的查看或下载任意敏感文件。

二·.条件

1、存在读取文件的函数

2、读取文件的路径用户可控且未校验或校验不严格

3、输出了文件内容

三.漏洞危害

系统敏感文件等。可下载服务器任意文件,包含脚本代码文件、源代码文件、配置文件、敏感文件等等以配合其它类型的漏洞,可以进一步代码审计,查找更多可利用的代码

不得不说学安全。想成为真正的大佬,还得会代码,成为真正的全能牛马。

为什么只能读,是因为他的代码只能读,不会去解析。\

四.相关函数

(1)以PHP 脚本为例子,有一些函数可以实现文件读取功能

readfile():直接读取文件内容,自带输出功能

file_get_contents():直接读取文件内容,输出读取内容。

fread():读取文件,输出文件

(2)任意文件下载

先读取,在下载。

不会在正常页面上显示,会在源码里面显示出来,不被解析,直接呈现出来。

具体代码

<ahref="http://www.a.com/ccc.rar">下载</a>
 
<?php
if (empty($GET['filename'])){
exit();
}
$filename =$GET['filename'];
//以二进制方式下载,保证内容不出错
header('Content-Type:application/octet-stream');
//获取文件大小
header("Accept-Length:".filesize($filename));
//以附件的方式下载 需要结合读文件才能下载readfile($filename);
header('Content-Disposition:attachment;filename='.$filename);
readfile($filename);
?>

四.如何去看这个漏洞是哪个

?参数=(看这个参数,尝试通过../不停的返回上一级,然后访问一些铭感目录)

f=../../../../../../../../etc/passwd

f=../index.php

If=file:///etc/passwd

f=
file=
filepath=
fp=
readfile=
path=
readpath=
menu=
content=

五.当参数f的参数值为php文件时

1、若文件被解析则是文件包含漏洞,

2、若是显示源码,则是文件査看漏洞,

3、提示下载则是文件下载漏洞。

六.漏洞修复方案

1、过滤·点,使用户在ur|中不能回溯上级目录

2、正则严格判断用户输入的参数

3、php.ini配置open_basedir限定文件访问范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值