最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

任意文件下载

业界 admin 4浏览 0评论

https://bbs.ichunqiu/thread-23587-1-1.html

 

前言 本次分享的是web安全漏洞中的任意文件下载,前段时间比较忙,今天抽空写了个简单的下载功能,代码运行的时候有点问题,但是不影响下载程序运行,我也就懒得改了,多多包含哈。 任意文件下载漏洞描述 一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等,就会造成任意文件下载漏洞。 任意文件下载漏洞的表现形式 任意文件下载总结来说,有以下三种表现形式: 1、存在文件下载功能 网站文件下载功能形式多种多样,页面功能大致如下: Url表现形式如下: http://localhost:8080/javatest/downloadFile.action?jpgPath=/download/&jpgName=test.jpg

 

如果单从参数命看,表现形式多种多样,当渗透时遇到以下类型可以稍加注意:

 

&filepath= &relpath= &path= &url= &name= &filename= &src= &dir= &data= ...... 2、文件名参数可控,并且系统未对参数作过滤或者过滤不全 文件名参数就是要下载的文件名,可以用brupsuite抓包看见,表现形式多种多样,大概如下:

 

在代码中的表现形式如下,此处文件路径和文件名都是从前端获取,然后执行下载操作:

 

3.文件内容输出或者保存在本地 当文件内容可被下载任意看见,就会造成任意文件读取漏洞,不在此处讨论,当文件保存后,能被攻击者看见内容,就会造成任意文件下载漏洞,表现形式如下:

 

下载功能代码如下:

 

 

任意文件下载漏洞验证

 

此处代码存在任意文件下载漏洞,表现形式如下: 当文件正常下载时,brupsuite截图如下:

 

 

此处替换文件名为“WEB-INF/web.xml”,下载系统配置文件:

 

 

 

可以看到此时下载文件失败,返回不一样的结果。

 

但是可以添加“../”跳转目录: 可以看出上面返回web.xml问内容,表示下载成功(若返回下载失败,可以继续添加“../”,直到下载成功,若依旧不成功,可能文件不存在或者无漏洞,自己多试试)。

 

也可以输入很多“../”,直接回溯到根目录,下载可能存在的系统文件:

 

部分敏感文件如下: Linux:     /root/.ssh/authorized_keys     /root/.ssh/id_rsa     /root/.ssh/id_ras.keystore     /root/.ssh/known_hosts     /etc/httpd/conf/httpd.conf     /root/.bash_history     /root/.mysql_history     /proc/self/fd/fd[0-9]*(文件标识符)     /proc/mounts     /porc/config.gz     /etc/passwd     /etc/shadow     /etc/myf

 

Windows:

 

    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配置信息     C:\boot.ini  //查看系统版本     C:\Windows\System32\inetsrv\MetaBase.xml  //IIS配置文件     C:\Windows\repair\sam  //存储系统初次安装的密码     ... 任意文件下载漏洞的修复 漏洞修复可以根据自身业务需要修改,大致修复方法如下: 1、对文件下载进行过滤,过滤掉“./”、“../”、“%”等,代码如下:

 

当输入“../”时:

 

但是可以构造完整路径,下载任意文件:

 

2、对下载的文件路径进行严格控制,只允许下载某部分目录下的文件:

 

2、对下载文件后缀名做严格控制

程序员学习公众号:

 

 

 

https://bbs.ichunqiu/thread-23587-1-1.html

 

前言 本次分享的是web安全漏洞中的任意文件下载,前段时间比较忙,今天抽空写了个简单的下载功能,代码运行的时候有点问题,但是不影响下载程序运行,我也就懒得改了,多多包含哈。 任意文件下载漏洞描述 一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等,就会造成任意文件下载漏洞。 任意文件下载漏洞的表现形式 任意文件下载总结来说,有以下三种表现形式: 1、存在文件下载功能 网站文件下载功能形式多种多样,页面功能大致如下: Url表现形式如下: http://localhost:8080/javatest/downloadFile.action?jpgPath=/download/&jpgName=test.jpg

 

如果单从参数命看,表现形式多种多样,当渗透时遇到以下类型可以稍加注意:

 

&filepath= &relpath= &path= &url= &name= &filename= &src= &dir= &data= ...... 2、文件名参数可控,并且系统未对参数作过滤或者过滤不全 文件名参数就是要下载的文件名,可以用brupsuite抓包看见,表现形式多种多样,大概如下:

 

在代码中的表现形式如下,此处文件路径和文件名都是从前端获取,然后执行下载操作:

 

3.文件内容输出或者保存在本地 当文件内容可被下载任意看见,就会造成任意文件读取漏洞,不在此处讨论,当文件保存后,能被攻击者看见内容,就会造成任意文件下载漏洞,表现形式如下:

 

下载功能代码如下:

 

 

任意文件下载漏洞验证

 

此处代码存在任意文件下载漏洞,表现形式如下: 当文件正常下载时,brupsuite截图如下:

 

 

此处替换文件名为“WEB-INF/web.xml”,下载系统配置文件:

 

 

 

可以看到此时下载文件失败,返回不一样的结果。

 

但是可以添加“../”跳转目录: 可以看出上面返回web.xml问内容,表示下载成功(若返回下载失败,可以继续添加“../”,直到下载成功,若依旧不成功,可能文件不存在或者无漏洞,自己多试试)。

 

也可以输入很多“../”,直接回溯到根目录,下载可能存在的系统文件:

 

部分敏感文件如下: Linux:     /root/.ssh/authorized_keys     /root/.ssh/id_rsa     /root/.ssh/id_ras.keystore     /root/.ssh/known_hosts     /etc/httpd/conf/httpd.conf     /root/.bash_history     /root/.mysql_history     /proc/self/fd/fd[0-9]*(文件标识符)     /proc/mounts     /porc/config.gz     /etc/passwd     /etc/shadow     /etc/myf

 

Windows:

 

    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配置信息     C:\boot.ini  //查看系统版本     C:\Windows\System32\inetsrv\MetaBase.xml  //IIS配置文件     C:\Windows\repair\sam  //存储系统初次安装的密码     ... 任意文件下载漏洞的修复 漏洞修复可以根据自身业务需要修改,大致修复方法如下: 1、对文件下载进行过滤,过滤掉“./”、“../”、“%”等,代码如下:

 

当输入“../”时:

 

但是可以构造完整路径,下载任意文件:

 

2、对下载的文件路径进行严格控制,只允许下载某部分目录下的文件:

 

2、对下载文件后缀名做严格控制

程序员学习公众号:

 

 

 

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论