Web漏洞(一)信息泄漏

信息泄漏

概述

​ 2011年,CSDN 600万用户资料泄露,且用户密码被明文保存。在这起事件被曝光的同时,国内其他网站用户密码泄露问题也浮出水面,公民隐私信息面临着巨大的威胁。我们都活在这个信息时代,学习这个系列的漏洞,是为了更好的帮助企业去防御,保护我们的个人信息。共勉QAQ

robots.txt泄露敏感信息

​ robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

漏洞描述

​ 低危漏洞,在应用的robots.txt的allow和disallow中泄露了应用的敏感目录信息。如敏感的后台、CMS特征识别目录等。

漏洞挖掘

​ 这个漏洞非常简单,可以通过使用工具爬虫,对网站敏感文件目录进行扫描,对robots文件进行爬取。或者直接在url链接后添加/robots.txt进行测试。

修复方式

1.robots.txt不应该被用来保护/隐藏信息。应该将敏感的文件和目录移到另一个隔离的子目录,以便将这个目录排除在Robots搜索之外。
2.robots.txt内容可设为Disallow: /,禁止搜索引擎访问网站的任何内容。

敏感文件信息泄露

漏洞描述

​ 高危漏洞,应用中存在可以直接通过路径访问下载的敏感文件,如数据库文件、代码打包备份文件、svn或git等版本控制文件等。

漏洞挖掘

​ 这个漏洞一般都是在信息收集阶段进行目录扫描的时候扫出来的。常用的目录扫描工具都有扫描数据库文件、代码打包备份文件、svn或git等版本控制文件等的字典。如御剑、dirsearch.py等

目录扫描工具很多,可以寻找几个喜欢的,在日常渗透中使用。

Git泄漏 https://github.com/lijiejie/GitHack

Svn泄漏 https://github.com/admintony/svnExploit

DS_Store https://github.com/lijiejie/ds_store_exp

修复方式

1.删除以上存在的泄漏的目录
2.后台路径尽量复杂,不要被随便扫描出来
3.修改服务器配置禁止列目录
4.修改服务器配置禁止错误回显
5.删除没用的文件

报错页面敏感信息泄露

漏洞描述

报错信息中可能会包含服务器代码信息、数据库连接信息、SQL语句或者敏感文件的路径,为攻击者收集信息提供了方便。

漏洞风险等级:

1)开启调试模式,泄露大量应用的敏感信息如代码、报错信息等,建议高;

2)未开启调试模式,泄露部分中间件版本、少量代码信息等,建议低;

漏洞挖掘

利用渗透神器Burpsuite抓取请求包,构造无效路径、无效参数尝试触发报错,查看返回包中的返回信息。


修复方式

1.编码时增加异常处理模块,对错误页面做统一的自定义返回界面,隐藏服务器版本信息
2.不对外输出程序运行时产生的异常错误信息详情

物理路径泄露

漏洞描述

​ 低危漏洞,应用中泄露出应用在主机中的绝对地址路径,漏洞成因是开发过程中相关链接直接引用了绝对路径,相关报错信息未过滤。

漏洞挖掘

​ 1)打开网页源代码,查看图片等媒体的链接及超链接;

​ 2)通过报错信息获取

​ 3)查看一些敏感文件可能存在绝对路径,如phpinfo.php

修复方式

1.媒体链接和超链接采用相对路径的表达方式
2.报错信息中不对外输出网站物理路径等敏感信息
3.敏感文件

明文密码本地保存

漏洞描述

​ 用户账号信息保存到了本地客户端或JS中,攻击者可通过嗅探或直接查看源代码的方式获取传输到前端的账号及密码,登录他人账号。这个漏洞很少有机会能找到,很少有开发那么傻

漏洞风险等级:

1)全部账号的明文密码保存在本地客户端,建议高;

2)只有本账号的明文密码保存在本地客户端,建议低;

漏洞挖掘

1)查看网页源代码

2)查看网站在本地客户端的缓存文件

不巧就碰到了。。。。。

修复方式

不要将密码保存到本地客户端,即便是加密后的密码也不建议保存在本地,攻击者可利用密文格式的密码登录或修改其他账户的密码。

入侵痕迹遗留

漏洞描述

​ 高危漏洞,系统被入侵之后未及时清理相关痕迹,在渗透过程中发现应用中存在曾经的入侵痕迹,如存在的webshell文件。

漏洞挖掘

​ 通常使用Web应用安全漏洞扫描工具或目录扫描工具发现入侵痕迹。

修复方式

可借助工具全盘清理恶意文件,如D盾可以扫描Windows系统中的webshell。

直接查看扫出来的文件去确认是否为恶意文件,可以用多种工具去扫描确认,如WebShellSkill、WebShellWorker等后门查杀工具。

HTTP头信息泄露

漏洞描述

​ 低危漏洞,在服务器返回的HTTP头中泄漏服务器信息。HTTP头信息泄漏-隐藏web服务器banner信息,黑客会通过应用暴露出来的信息针对性的入侵,为了服务器的安全这些信息一定要及时关闭。Tomcat在404,405,403等错误的时候,会有默认的错误信息输出到页面上。这个时候,黑客们,根据服务器的版本信息,可以了解到该版本服务器的已知漏洞。针对性的进行攻击。

漏洞挖掘

1)在浏览器的调试窗口中查看HTTP响应头

2)使用代理软件如burpsuite、fiddler,拦截HTTP响应头

修复方式

​隐藏或者修改banner信息。

目录遍历

漏洞描述

​ 目录浏览漏洞是由于网站存在配置缺陷,存在目录可浏览漏洞,这会导致网站很多隐私文件与目录泄漏,比如数据库备份文件、配置文件等,攻击者利用该信息可以更容易得到网站权限,导致网站被黑。

漏洞风险等级:

1)目录可以浏览,泄漏包含密码、个人信息等敏感文件,建议高;

2)目录可以浏览,未泄漏包含密码、个人信息等敏感文件,建议低;

漏洞挖掘

1)可以利用web漏洞扫描器扫描web应用进行检测,也可通过搜索,网站标题包含“index of”关键词的网站进行访问。

2)可以在URL上进行删减进行测试,../../../进行测试。

修复方式

目前存在该漏洞的常见中间件为apache和IIS,以下列出其相关的修复方式:
1.IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS。
2.Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找“Options Indexes FollowSymLinks”,修改为“ Options -Indexes”(减号表示取消),保存退出,重启Apache。
3.Nginx中默认不会开启目录浏览功能,若您发现当前已开启该功能,可以编辑nginx.conf文件,删除如下两行:autoindex on;autoindex_exact_size on;重启Nginx。

默认页面泄露

漏洞描述

​ 存在默认安装中间件、插件、框架等会携带示例页面及说明文档。攻击者可利用默认页面提供的功能和信息对服务器进行攻击。

漏洞风险等级:

1)存在可访问默认页面,泄露高风险敏感信息(如:tomcat 的 examples 目录),建议高;

2)存在可访问默认页面,泄露于业务、操作和配置相关的敏感信息,建议中;

3)存在可访问的默认页面,但未泄露敏感信息,建议低;

漏洞挖掘

1)可以利用web漏洞扫描器或目录扫描器扫描web应用进行检测

2)根据网站使用的第三方组件和框架手工输入对应的示例页面。

修复方式

建议在不影响业务的前提下删除默认页面。

参数溢出

漏洞描述

​ 高危漏洞,前端参数可控制参数,后端参数过滤不严。攻击者在参数中输入超长字符串,导致数据溢出,致使应用或者数据库报错引发相关信息泄漏,或者引起拒绝服务攻击等问题。

漏洞挖掘

​ 在前端可控参数中输入超长字符串

修复方式

限制输入参数内容的长度。

任意文件下载

漏洞描述

​ 此漏洞不仅仅可遍历系统下web中的文件,而且可以浏览或者下载到系统中的文件,攻击人员通过目录遍历攻击可以获取系统文件及服务器的配置文件等等。一般来说,他们利用服务器API、文件标准权限进行攻击。严格来说,目录遍历攻击并不是一种web漏洞,而是网站设计人员的设计“漏洞”。

漏洞挖掘

1)通过web漏洞扫描工具对网站实施扫描可能发现目录遍历或者任意文件下载漏洞,发送一系列”../”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。

2)也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../ WEB-INF/web.xml等,然后查看其是否可被下载出来。随后可构造下载系统文件。

例如:
index.php?a=../../../../etc/passwd
index.php?a=file:///etc/passwd

整理了一些下载利用文件:
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配置信息
C:\Windows\win.ini //Windows系统的一个基本系统配置文件

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 //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数

修复方式

1.过滤../等敏感字符,使用户在url中不能回溯上级目录 
2.文件下载时判断输入的路径,最好的方法是文件应该在数据库中进行一一对应,避免通过输入绝对路径来获取文件 
3.php.ini配置open_basedir限定文件访问范围

对这系列感兴趣可以接着看看
Web漏洞(二)信息猜解&数据猜解

posted @ 2021-12-10 16:56  九天揽月丶  阅读(2196)  评论(0编辑  收藏  举报