目录php
目录浏览(目录遍历)漏洞mysql
任意文件读取/下载漏洞nginx
目录浏览(目录遍历)漏洞
目录浏览漏洞是因为网站存在配置缺陷,致使网站目录能够被任意浏览,这会致使网站不少隐私文件与目录泄露,好比数据库备份文件、配置文件等,攻击者利用该信息能够为进一步入侵网站作准备。web
目录浏览漏洞的探测 :能够利用web漏洞扫描器扫描web应用进行检测,也可经过搜索,网站标题包含 “index of” 关键词的网站进行访问redis
目录浏览漏洞的危害:攻击者经过访问网站某一目录时,该目录没有默认首页文件或没有正确设置默认首页文件,将会把整个目录结构列出来,将网站结构彻底暴露给攻击者; 攻击者可能经过浏览目录结构,访问到某些隐秘文件(如PHPINFO文件、服务器探针文件、网站管理员后台访问地址、数据库链接文件等)。sql
目录浏览漏洞的预防:数据库
- IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS。
- Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找“Options Indexes FollowSymLinks”,修改成“ Options -Indexes”(减号表示取消,保存退出,重启Apache)。
- Nginx 中默认不会开启目录浏览功能,若您发现当前已开启该功能,能够编辑nginx.conf文件,删除以下两行:autoindex on;autoindex_exact_size on,而后重启Nginx。
任意文件读取/下载漏洞
任意文件读取/下载漏洞比目录浏览漏洞危害更大,他不只会泄露网站的目录结构,并且攻击者能够直接得到网站文件的内容。攻击者能够所以获取到不少机密的文件,好比配置文件,好比 /etc/passwd、/root/.bash_history文件等。apache
任意文件读取/下载漏洞的挖掘:安全
- 经过web漏洞扫描工具对网站实施扫描可能发现任意文件读取/下载漏洞,发送一系列”../”字符来遍历高层目录,而且尝试找到系统的配置文件或者系统中存在的敏感文件。
- 也可经过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../ WEB-INF/web.xml等,而后查看其是否可被读取或者下载出来。
- 有些WAF会过滤../,能够构造 /.%252e/.%252e/.%252e/ , %25对应的是%,%2e对应的是.,因此 .%252e/ 对应的是 ../
任意文件读取/下载漏洞的危害:下载服务器任意文件,如脚本代码、服务及系统配置文件等。可用获得的代码进一步代码审计,获得更多可利用漏洞。bash
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: /etc/passwd #查看用户文件 /etc/shadow #查看密码文件 /etc/my.cnf /etc/httpd/conf/httpd.conf #查看apache的配置文件 /root/.bash_history #查看历史命令 /root/.mysql_history #mysql历史命令记录文件 /var/lib/mlocate/mlocate.db #本地全部文件信息 /etc/ssh/sshd_config #ssh配置文件,若是对外开放可看到端口 /proc/self/fd/fd[0-9]*(文件标识符) /proc/mounts /porc/config.gz /root/.ssh/authorized_keys /root/.ssh/id_rsa /root/.ssh/id_ras.keystore /root/.ssh/known_hosts 程序的配置文件 apache: /etc/httpd/conf/httpd.conf /etc/apache2/httpd.conf /etc/apache2/apache2.conf nginx: /etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf /usr/local/etc/nginx/nginx.conf redis: /etc/redis.conf index.php?f=../../../../../../etc/passwd
针对Linux系统任意文件下载的几种思路:
- 下载源代码审计
- 数据库备份
- 信息收集
- 中间件
任意文件读取/下载漏洞的预防:
- 净化数据:对用户传过来的文件名参数进行统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
- web应用程序能够使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,使其即便越权也在访问目录以内。www目录就是一个chroot应用。由chroot创造出的那个根目录,叫作“chroot监狱”(所谓"监狱"就是指经过chroot机制来更改。某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有所动做,从而保证整个服务器的安全,详细具体chroot的用法,可参考http://blog.csdn.net/frozen_fish/article/details/2244870
- 任意文件下载漏洞也有多是web所采用的中间件的版本低而致使问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。
- 要下载的文件地址保存至数据库中。
- 文件路径保存至数据库,让用户提交文件对应ID下载文件。
- 用户下载文件以前须要进行权限判断。
- 文件放在web没法直接访问的目录下。
- 不容许提供目录遍历服务。
- 公开文件可放置在web应用程序下载目录中经过连接进行下载。
任意文件读取/下载漏洞的场景:出如今文件读取或者展现图片等对文件读取交互的功能块。