web安全之任意文件下载

任意文件下载

1.1 任意文件读取下载漏洞简介

一些网站由于业务需求,可能提供文件查看或下载功能。如果对用户查看或下载的文件不做限制,则恶意用户能够查看或下载任意文件,可以是源代码文件、敏感文件等。

1.2 任意文件读取下载漏洞危害

攻击者可以读取下载服务器中的配置文件、敏感文件等,会提供攻击者更多可用信息,提高被入侵的风险。

1.3 任意文件读取下载漏洞利用条件

  • 存在读文件的函数
  • 读取文件的路径用户可控且未校验或校验不严
  • 输出了文件内容
  • 任意文件读取下载漏洞测试
    使用类似如下的代码进行下载,任意路径下的文件
readfile.php?file=/etc/passwd
readfile.php?file=../../../../../../../../etc/passwd
readfile.php?file=../../../../../../../../etc/passwd%00

2.1测试思路

寻找读取或下载文件的功能点,跳跃目录获取敏感文件
有的限制目录不严格,只对部分目录限制,可以尝试用其他敏感文件路径,常见敏感文件路径如下:Windows: C:\boot.ini //查看系统版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存储系统初次安装的密码 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.MYD //Mysql root C:\Windows\php.ini //php配置信息 C:\Windows\my.ini //Mysql配置信息 ... Linux: /root/.ssh/authorized_keys /root/.ssh/id_rsa /root/.ssh/id_ras.keystore /root/.ssh/known_hosts /etc/passwd /etc/shadow /etc/my.cnf /etc/httpd/conf/httpd.conf /root/.bash_history /root/.mysql_history /proc/self/fd/fd[0-9]*(文件标识符) /proc/mounts /porc/config.gz

解决方案:

  • 1、对./、../、、..%进行过滤
  • 2、严格控制可读取或下载的文件路径
  • 3.过滤.(点),使用户在url中不能回溯上级目录
  • 4.正则严格判断用户输入参数的格式
  • 5.php.ini配置open_basedir限定文件访问范围
posted @ 2022-07-27 00:01  King-DA  阅读(555)  评论(0)    收藏  举报