## 文件下载漏洞
文件下载功能在很多web系统上都会出现,如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
### 漏洞危害和利用条件:
**危害**
* 下载服务器任意文件,如脚本代码,服务及系统配置文件等;
* 可用得到的代码进一步代码审计,得到更多可利用漏洞
**利用条件**
1. 存在读文件的函数
2. 读取文件的路径用户可控且未校验或校验不严
3. 输出了文件内容
### 漏洞发现:
**1、Google hacking利用:**
```
#payload
inurl:"readfile.php?file="
```
**2、从链接上看:**
```
download.php?path=
download.php?file=
down.php?file=
data.php?file=
readfile.php?file=
read.php?filename=
```
**3、从参数名看:**
```
&Data=
&path=
&src=
&Inputfile=
&readfile=
&filepath=
&RealPath=
&dis=
&url=
&Lang=
&urls=
&menu=
&filep=
```
### 漏洞验证:
在找到下载文件的的url后,将url中的文件参数,替换为各种穿越目录,看是否能下载到相应的文件,如果能下载,就有下载漏洞
```html
#原url:http:#xx.com/index.php?f=logo.png
http:#xx.com/index.php?f=../../../../../../etc/passwd
http:#xx.com/index.php?f=../index.php
http:#xx.com/index.php?f=file:#/etc/passwd
```
>当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞,若显示源码或提示下载则是文件查看与下载漏洞。
### 文件下载漏洞利用思路:
尝试读取/root/.bash\_history看自己是否有root权限
#### 1、正常情况下的利用思路:
1. 下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
2. 下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方。
3. 下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。
#### 2、当遇到权限问题的时候:
* 如果具有root权限
这时候很多人肯定会说,具有root权限直接去读shadow文件了,但是很多时候我们遇到的服务器可能只对外开放了80,443端口,这时候我们即使获得了密码作用也不大,但是具备root权限对任意文件下载利用是绝好的。
下载/var/lib/mlocate/mlocate.db这个linux文件搜索库,然后利用`locate mlocate.db xxname` 搜索任意文件的具体路径
>locate 是用来查找文件或目录的,它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db。这个数据库中含有本地所有文件信息。Linux系统自动创建且每天自动更新一次。
* 如果没有root权限
只能按部就班的利用`../`来回跳转读取一些文件,如`.ssh`下的配置信息文件,读取mysql下的.bash\_history文件。来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码文件
是下载的时候变得很繁琐,只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析。
>如我们遇到的是java/jsp+oracle环境,可以先下载/WEB-INF/classes/applicationContext.xml文件,这里面记载的是web服务器的相应配置,
>然后下载/WEB-INF/classes/xxx/xxx/ccc.class对文件进行反编译,
>然后搜索文件中的upload关键字看是否存在一些api接口,如果存在的话我们可以本地构造上传页面用api接口将我们的文件传输进服务器。
### 任意文件下载防御:
* 过滤".",使用户在url中不能回溯上级目录
* 正则严格判断用户输入参数的格式(写死路径)
* php.ini配置`open_basedir`限定文件访问范围
>如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。 切记:所有与前端交互的数据都是不安全的,不能掉以轻心!
- src导航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查询
- 备案信息查询
- 信用信息查询
- IP反查站点的站
- 浏览器插件
- 收集子域名信息
- 在线平台
- 工具枚举
- ssl与证书透明度
- DNS历史解析
- DNS域传送漏洞
- C段探测
- JS文件域名&ip探测
- 搜索引擎&情报社区
- google黑客
- 威胁情报
- 钟馗之眼
- 收集相关应用信息
- 微信公众号&微博
- APP收集&反编译
- 收集常用端口信息
- 常见端口&解析&总结
- 扫描工具
- 网络空间引擎搜索
- 浏览器插件
- nmap扫描
- 收集敏感信息
- 源码泄露
- 邮箱信息收集
- 备份文件泄露
- 目录&后台扫描
- 公网网盘
- 历史资产
- 指纹&WAF&CDN识别
- 指纹识别
- CDN识别
- 绕过CDN查找真实IP
- WAF识别
- 漏洞资源和社工
- 漏洞公共资源库
- 社会工程
- 资产梳理
- 各种对渗透有帮助的平台
- 扫描器
- 扫描器对比
- AppScan(IBM)_web和系统
- AWVS_web扫描
- X-Scan_系统扫描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_绿盟_web
- 安恒明鉴
- Nessus_系统
- nexpose_系统
- 启明天镜_web_系统
- SQL注入
- 常用函数
- sql注入步骤
- union注入和information_schema库
- 函数和报错注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解决方案
- Access数据库注入
- MSSQL数据库注入
- MYSQL数据库注入
- 神器SQLmap
- xss跨站脚本攻击
- xss原理和分类
- xss案例和修复
- xss绕过技巧
- xss案例
- 文件上传下载包含
- 常有用文件路径
- 文件上传漏洞
- 文件下载漏洞
- 文件包含漏洞
- upload-labs上传漏洞练习
- XXE、SSRF、CSRF
- SSRF原理基础
- SSRF案例实战
- CSRF原理基础
- CSRF案例及防范
- XXE之XML_DTD基础
- XXE之payload与修复
- XXE结合SSRF
- 远程命令执行与反序列化
- 远程命令和代码执行漏洞
- 反序列化漏洞
- 验证码与暴力破解
- 爆破与验证码原理
- CS架构暴力破解
- BS架构暴力破解
- WEB编辑器漏洞
- 编辑器漏洞基础
- Ewebeditor编辑器
- FCKeditor编辑器
- 其他编辑器
- web中间件漏洞
- 中间件解析漏洞
- Tomcat常见的漏洞总结
- Jboss漏洞利用总结
- Weblogic漏洞利用总结
- WEB具体步骤
- 旁注和越权
- CDN绕过
- 越权与逻辑漏洞
- WEB应用常见其他漏洞
- WEB登陆页面渗透思路
- 获取WEBshell思路
- 社工、钓鱼、apt
- 社工和信息收集
- 域名欺骗
- 钓鱼邮件
- 一些钓鱼用的挂马工具
- 代码审计
- 代码审计工具
- WAF绕过
- WAF基础及云WAF
- 各种WAF绕过方法
- 绕过WAF上传文件
- 系统提权
- windows系统提权
- linux系统提权
- 数据库提权操作系统
- 内网横向渗透
- 内网穿透方式
- 一些内网第三方应用提权
- ARP与DOS
- ARP欺骗
- DOS与DDOS
- 一些DOS工具