https://bbs.ichunqiu.com/thread-23587-1-1.html
前言 本次分享的是web安全漏洞中的任意文件下载,前段时间比较忙,今天抽空写了个简单的下载功能,代码运行的时候有点问题,但是不影响下载程序运行,我也就懒得改了,多多包含哈。 任意文件下载漏洞描述 一些网站由于业务需求,可能提供文件查看或下载的功能,如果对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意的文件,可以是源代码文件、敏感文件等,就会造成任意文件下载漏洞。 任意文件下载漏洞的表现形式 任意文件下载总结来说,有以下三种表现形式: 1、存在文件下载功能 网站文件下载功能形式多种多样,页面功能大致如下:![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qTTVjSEk1WXpJMWNtTmhZVFY2WVRCd01TNXdibWM9.jpg?w=700&webp=1)
如果单从参数命看,表现形式多种多样,当渗透时遇到以下类型可以稍加注意: &filepath= &relpath= &path= &url= &name= &filename= &src= &dir= &data= ...... 2、文件名参数可控,并且系统未对参数作过滤或者过滤不全 文件名参数就是要下载的文件名,可以用brupsuite抓包看见,表现形式多种多样,大概如下:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUXdjakl6TW5VM2MzcDNabmRxWjJwMFpTNXdibWM9.jpg?w=700&webp=1)
在代码中的表现形式如下,此处文件路径和文件名都是从前端获取,然后执行下载操作:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUXdiR3cyTjJGaGFYbzRaR3RwYkdkb01pNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUXhkalpqYjI5ek1Ib3ljRzl3TW1ONllpNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNVE12TVRRMU5EQTFhV1V6ZW1Sdk5tMDFhbmR2ZW5SdmFpNXdibWM9.jpg?w=700&webp=1)
下载功能代码如下:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUXllbmxyYXpobWR6SjVjM2hrYXpKbFpDNXdibWM9.jpg?w=700&webp=1)
任意文件下载漏洞验证 此处代码存在任意文件下载漏洞,表现形式如下: 当文件正常下载时,brupsuite截图如下:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUXlkV1ptTm5KMmVUQTJNRE5tT0RSbE9DNXdibWM9.jpg?w=700&webp=1)
此处替换文件名为“WEB-INF/web.xml”,下载系统配置文件:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUXpjV3RuTUdkblozbHJNakJtZVdkNWFpNXdibWM9.jpg?w=700&webp=1)
可以看到此时下载文件失败,返回不一样的结果。 但是可以添加“../”跳转目录:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTBZbVpyYTJscVptazVhWFYxWjNWbk9TNXdibWM9.jpg?w=700&webp=1)
也可以输入很多“../”,直接回溯到根目录,下载可能存在的系统文件:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTBhV1J5Ym01aU4ycGliamgyWkc1MmFDNXdibWM9.jpg?w=700&webp=1)
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、对文件下载进行过滤,过滤掉“./”、“../”、“%”等,代码如下:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE9UVXdibUU0WkhGdVlYbzRlSFE0TVdGdWNTNXdibWM9.jpg?w=700&webp=1)
当输入“../”时:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTFiSGQ2YUd0cGRURTRNREYxYUhVeGFTNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTJabVU1ZFRNM2J6TXhOMjlyZURRNWF5NXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTJiREV5YVdod09XNDJNREJvZG01dVl5NXdibWM9.jpg?w=700&webp=1)
2、对下载的文件路径进行严格控制,只允许下载某部分目录下的文件:
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTNhV3BuWW14aGVtSTNjRzFwWTJwcFlpNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTNhV1IwYW1wa2JuUjZhbVYyZG1aMFpDNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTNhWEZxTVhGdVkyTnJjVzg1YzNKdmNpNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTRibTAzTm5vMWJHcHNPV3d4TURkbFp5NXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTRhVGwxZDNWbE9YZHhkM015ZVdveU1pNXdibWM9.jpg?w=700&webp=1)
![任意文件下载 任意文件下载](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OWlZbk11YVdOb2RXNXhhWFV1WTI5dEwyUmhkR0V2WVhSMFlXTm9iV1Z1ZEM5bWIzSjFiUzh5TURFM01EWXZNRFF2TWpNeE5qUTRaekU1YjJNeGFtOHdhbWgxY25FeVl5NXdibWM9.jpg?w=700&webp=1)