web漏洞--文件处理漏洞

目录

1.任意文件上传

2.任意文件下载


1.任意文件上传

1.漏洞产生的原因

1.Web应用程序在处理用户上传的文件操作时,如果用户上传文件的路径、文件名、扩展名成为用户可控数据,就会导致直接上传脚本木马到web服务器上,直接控制web服务器。

2.文件上传时检查不严。

  没有进行文件格式检查。

  在客户端进行了格式检查 – 很容易绕过

  一些应用虽然在服务器端进行了不严格的黑/白名单检查

    忽略大小写,将.php改为.Php即可绕过检查

    忽略了%00截断符, xxx.php%00.jpg保存时变成xxx.php

  只对文件类型(Content-Type)进行检查

3.文件上传后修改文件名时处理不当 - 允许用户修改文件名后缀

2.服务端语言对上传文件类型限制方法

1.对文件类型进行限制(Content-Type)

此类设置,很容易被绕过。直接使用burpsuite等软件更改为允许的类型

2.对文件名后缀进行限制(黑名单,白名单)

可能使用%00等截断方式绕过

使用大小写方式绕过黑名单

3.危害

1.上传任意文件,可能会造成

  文件是一个webshell,可以任意执行系统命令

  与后台数据库链接,任意执行数据库命令

  把本服务器当作跳板,访问局域网内任意服务器

2.任意文件上传漏洞可能会让用户完全控制本机,直接获取登陆权限。

4.检测方法

1.检测代码

A检测点:

  检测所有可以上传漏洞的页面

B检测方法:

  是使用什么方式来限制文件类型

    后缀名

    Content-Type

  是否对文件名进行重命名

  是否允许用户重命名文件名

2.检测功能

A检测点:

  检测所有可以上传漏洞的页面

B上传检测方法:

  尝试上传多后缀文件,并查看时候能被截断

    a.php.jpg

  尝试上传文件,与Content-Type不符

  尝试更改文件名

C检测方法

  是否能执行之前上传漏洞里的代码

3.防御方法

A文件上传的目录设置为不可执行

B判断文件类型

  不仅仅是Content-Type 来进行判断,也需要对后缀名进行判断

  使用白名单策略

  对于图片处理,使用resize(或类似)函数来破坏源代码

C使用随机数来存储文件

  防止.php.jpg等多后缀引起的漏洞

D单独设置文件服务器的域名

  这个服务器,不能运行任何动态网页

  只能静态访问HTML、图片等

2.任意文件下载

1.概念

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞

下载服务器任意文件,如脚本代码、服务及系统配置文件等可用得到的代码进一步代码审计,得到更多可利用漏洞

2.通过文件下载漏洞读取服务端文件的方法

查找漏洞点:

http://.../dvwa/vulnerabilities/fi/?page=file3.php

把文件更改为要查看的文件

http://.../dvwa/vulnerabilities/fi/?page=/etc/passwd

返回:

3.如何查找任意文件下载漏洞

1.查找传入文件名的参数

  导入文件等参数,要是直接输入文件名,就有可能有注入点

  注意如下几个参数名:

    RealPath,FilePath,filepath,Path,path,inputFile,url,urls,Lang,dis,data,readfile,  filep,src,menu,META-INF,WEB-INF

2.代码中如何查找漏洞:

  PHP为例,有如下等代码,就有可能存在任意文件下载漏洞

    readfile

    fopen

file_get_contents

4.敏感文件路径

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

5.修复文件下载漏洞的方法

访问控制漏洞PHP为例:

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

使用正则表达式,严格判断用户输入参数的格式

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值