敏感数据包括但不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权凭据、个人数据(如姓名、住址、电话等)等,在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据。
1.弱文件
1.1. 漏洞描述
服务器相关敏感信息泄漏。
1.2. 漏洞成因
服务器上某些默认页面、配置未删除或更改。
1.3. 风险评估
敏感信息泄漏,导致系统潜在风险增加,暴露面变大,有可能被恶意利用,最终达到getshell的目的。
漏洞风险等级:建议中
1.4. 测试方法
目录扫描工具进行扫描,探测可访问的敏感页面。
1.5. 加固方法
删除或更改服务器的默认配置以及可造成敏感信息泄漏的页面,例如phpinfo.php
2.源代码泄漏
2.1. 漏洞描述
用于Web或软件开发的源代码被泄漏。
2.2. 漏洞成因
1网站开发、运维人员在部署生产环境时,未删除源代码压缩文件,通过猜解压缩文件名或者结合其他漏洞造成服务器源代码泄漏。
2网站开发人员在云开发平台泄漏,例如github源码泄漏。
2.3. 风险评估
源代码泄漏,导致系统潜在风险增加,暴露面变大,有可能被恶意利用,最终达到getshell的目的。
漏洞风险等级:建议中
2.4. 测试方法
查看是否存在敏感目录如“/.git” 、 “./step1.php”等
2.5. 加固方法
删除源代码压缩文件
3.数据库文件泄漏
3.1. 漏洞描述
数据库相关信息泄漏
3.2. 漏洞成因
1,开发者使用了轻量级数据库;
2.网站运维备份了数据库;
3.3. 风险评估
数据库相关信息泄漏,导致系统潜在风险增加,暴露面变大,有可能被恶意利用,最终达到getshell的目的。
漏洞风险等级:建议中
3.4. 测试方法
1.通过暴力猜解得到数据库名称,从而下载数据库;
2.通过目录扫描探测是否存在数据库文件;
3.5. 加固方法
1.数据库备份时进行相应加密;
2.下载数据库备份文件时进行相应身份验证;
4. robots.txt泄漏敏感信息
4.1. 漏洞描述
搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯,如果robots.txt文件编辑的太过详细,反而会泄露网站的敏感目录或者文件,比如网站后台路径,从而得知其使用的系统类型,从而有针对性地进行利用。
4.2. 漏洞成因
未限制用户对robots.txt文件的访问权限
4.3. 风险评估
攻击者可通过发现robots.txt文件,收集网站的敏感目录或文件,从而有针对性的进行利用。
漏洞风险等级:建议低
4.4. 测试方法
1.检测形式多样,工具爬虫扫描得到敏感文件的路径,从而找到robots文件;
2.手工挖掘,直接在域名后输入/robots.txt进行查看。
4.5. 加固方法
修复方案:可根据实际情况,进行如下对应的修复:
1.User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符
2.Disallow: / 这里定义是禁止爬寻站点所有的内容
3.Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
4.Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
5.Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
6.Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址
7.Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
8.Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
9.Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
10.Allow: /tmp 这里定义是允许爬寻tmp的整个目录
11.Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
12.Allow: .gif$ 允许抓取网页和gif格式图片
13.Sitemap: 网站地图告诉爬虫这个页面是网站地图。
5.过时的、用于备份的或者开发文件残留
5.1. 漏洞描述
应用遗留的过时文件、备份页面、渗透测试遗留文件、开发文件残留的测试文件等。
5.2. 漏洞成因
服务器部署或在渗透测试过程残留有测试文件未清除。
5.3. 风险评估
攻击者可通过上述方式获取网站备份文件、过时文件、遗留文件等内容,收集网站敏感信息,从而有针对性的进行利用。
漏洞风险等级:
1)泄露重要敏感信息,或能够进行核心业务操作,建议高;
2)泄露一般重要信息,做只能进行一般功能操作,建议中;
3)页面泄露非重要信息,不能进行相关功能操作,建议低;
5.4. 测试方法
1.常见检测方法是通过对网站进行web漏洞扫描,直接利用爬虫来爬取网站可能存在的路径以及链接,如果存在备份文件,则可通过web直接进行下载。
2.也可以通过自行构造字典,对网站某一目录下,指定字典进行爆破,常见的扫描工具有wwwscan、御剑后台扫描工具等。
5.5. 加固方法
1.网站管理员严格检查web中可访问的路径下是否存在备份文件,常见备份文件后缀为.jsp、.bak、.bak、.sql、.txt、等等。如果有这些文件,直接将该备份文件进行转移到其他目录或者直接删除即可。
2.严格控制可网站可访问目录下的文件敏感度的存放问题,不要将敏感文件置于该目录。
6.报错页面敏感信息泄漏
6.1. 漏洞描述
错误页面由服务器产生403、404、500等错误时,返回详细错误信息。报错信息中可能会包含服务器代码信息、数据库连接信息、SQL语句或者敏感文件的路径,为攻击者收集信息提供了方便。
6.2. 漏洞成因
对服务器异常请求未定义,没有过滤报错内容。
6.3. 风险评估
攻击者可通过上述几种方式触发Web应用程序报错,提取报错信息泄露的敏感信息,如Web中间件的版本信息、数据库连接信息。
漏洞风险等级:
1)开启调试模式,泄露大量应用的敏感信息如代码、报错信息等,建议高;
2)未开启调试模式,泄露部分中间件版本、少量代码信息等,建议低;
6.4. 测试方法
1.通过目录扫描或手工输入不存在的文件或路径,触发服务器产生404错误并返回404页面;
2.通过目录扫描或手工输入一个无权限查看的文件或路径,触发服务器产生403错误并返回403页面;
3.手工输入不存在的参数或特殊构造的字符串,如单引号,尖括号等,触发服务器产生500错误并返回500页面或异常信息。
6.5. 加固方法
1.编码时增加异常处理模块,对错误页面做统一的自定义返回界面,隐藏服务器版本信息;
2.不对外输出程序运行时产生的异常错误信息详情。
7.物理路径泄漏
7.1. 漏洞描述
应用中泄露出应用在主机中的绝对地址路径。
7.2. 漏洞成因
1.开发过程中相关链接直接引用了绝对路径;
2.相关报错信息未过滤;
7.3. 风险评估
攻击者可通过获取网站物理路径,为下一步攻击做准备。
漏洞风险等级:建议低
7.4. 测试方法
1.打开网页源代码,查看图片等媒体的链接及超链接;
2.通过报错信息获取
7.5. 加固方法
1.媒体链接和超链接采用相对路径的表达方式;
2.报错信息中不对外输出网站物理路径等敏感信息;
8.明文密码本地保存
8.1. 漏洞描述
明文密码保存在本地客户端
8.2. 漏洞成因
用户账号信息保存到了本地客户端或JS中
8.3. 风险评估
攻击者可通过嗅探或直接查看源代码的方式获取传输到前端的账号及密码,登录他人账号。
漏洞风险等级:
1)全部账号的明文密码保存在本地客户端,建议高;
2)只有本账号的明文密码保存在本地客户端,建议低;
8.4. 测试方法
1.查看网页源代码
2.查看网站在本地客户端的缓存文件
8.5. 加固方法
禁止将密码保存到本地客户端,即便是加密后的密码也不建议保存在本地,攻击者可利用密文格式的密码登录或修改其他账户的密码。
9.入侵痕迹残留
9.1. 漏洞描述
在渗透过程中发现应用中存在曾经的入侵痕迹,如存在的webshell文件。
9.2. 漏洞成因
系统被入侵之后未及时清理相关痕迹
9.3. 风险评估
残留的入侵痕迹可被其他攻击者用于二次攻击,对网站造成一定的影响。
漏洞风险等级:建议高
9.4. 测试方法
通常使用Web应用安全漏洞扫描工具或目录扫描工具发现入侵痕迹。
9.5. 加固方法
可借助工具全盘清理入侵痕迹,如D盾可以扫描Windows系统中的webshell。
10.HTTP头信息泄漏
10.1.漏洞描述
在服务器返回的HTTP头中泄漏服务器信息
10.2.漏洞成因
HTTP头信息泄漏-隐藏web服务器banner信息,一些黑客会通过该软件暴露出来的信息针对性的入侵,为了服务器的安全这些信息一定要及时关闭。Tomcat在404,405,403等错误的时候,会有默认的错误信息输出到页面上。这个时候,黑客们,根据服务器的版本信息,可以了解到该版本服务器的已知漏洞,发起攻击,造成javaWeb应用的信息安全问题。
10.3.风险评估
攻击者可通过获取服务器banner信息,针对某个版本存在的漏洞进行定向攻击。
漏洞风险等级:建议低
10.4.测试方法
1.在浏览器的调试窗口中查看HTTP响应头
2.使用代理软件如burpsuite、fiddler,拦截HTTP响应头
10.5.加固方法
隐藏或者修改banner信息。
11.目录浏览
11.1.漏洞描述
目录浏览漏洞是由于网站存在配置缺陷,存在目录可浏览漏洞,这会导致网站很多隐私文件与目录泄漏,比如数据库备份文件、配置文件等,攻击者利用该信息可以更容易得到网站权限,导致网站被黑。
11.2.漏洞成因
配置缺陷 导致可以列目录
11.3.风险评估
攻击者通过访问网站某一目录时,该目录没有默认首页文件或没有正确设置默认首页文件,将会把整个目录结构列出来,将网站结构完全暴露给攻击者; 攻击者可能通过浏览目录结构,访问到某些隐秘文件(如PHPINFO文件、服务器探针文件、网站管理员后台访问地址、数据库连接文件等)。
漏洞风险等级:
1)目录可以浏览,泄漏包含密码、个人信息等敏感文件,建议高;
2)目录可以浏览,未泄漏包含密码、个人信息等敏感文件,建议低;
11.4.测试方法
可以利用web漏洞扫描器扫描web应用进行检测,也可通过搜索,网站标题包含“index of”关键词的网站进行访问。
11.5.加固方法
目前存在该漏洞的常见中间件为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。
12.默认页面泄漏
12.1.漏洞描述
存在默认安装中间件、插件、框架等会携带示例页面及说明文档。
12.2.风险评估
攻击者可利用默认页面提供的功能和信息对服务器进行攻击。
漏洞风险等级:
1)存在可访问默认页面,泄露高风险敏感信息(如:tomcat 的 examples 目录),建议高;
2)存在可访问默认页面,泄露于业务、操作和配置相关的敏感信息,建议中;
3)存在可访问的默认页面,但未泄露敏感信息,建议低;
12.3.测试方法
1.可以利用web漏洞扫描器或目录扫描器扫描web应用进行检测
2.根据网站使用的第三方组件和框架手工输入对应的示例页面。
12.4.加固方法
建议在不影响业务的前提下删除默认页面。
13.存在可访问的管理后台入口
13.1.漏洞描述
应用存在未限制访问的后台,或者能直接登录管理后台。
13.2.漏洞成因
管理后台入口未独立配置,可直接利用目录暴破工具扫描后台入口。
13.3.风险评估
攻击者可通过登录网站管理后台篡改页面,或利用上传功能上传webshell,导致服务器被控制。
漏洞风险等级:
1)可访问默认管理后台,通过后台获取 shell,建议高;
2)可访问默认管理后台,并成功登录,但无法获取 shell,建议中;
3)可访问默认管理后台,但无法登录或执行危险操作,建议低;
13.4.测试方法
1.可以利用web漏洞扫描器或目录扫描器扫描web应用进行检测
2.识别网站使用的cms框架,判断其默认的管理后台地址。
3.在网站中寻找管理后台超链接。
13.5.加固方法
建议在不影响业务的前提下,将管理后台隐藏在非常规目录下或增加管理后台的访问限制。
14.存在可访问的管理控制台入口
14.1.漏洞描述
Web 控制台是一种基于 Web 的用户界面, 其常常被用于网站后台或者web容器控制台中,其不仅仅局限于容器或者网站管理后台,还包括一些数据库默认地址等。在web安全中,网站系统在泄漏其web容器(中间件)或者数据库的控制台后,存在增加被入侵的风险。常见的web控制台包括以下多种:tomcat、aria2、weblogic、websphere、oracle、jboss等。
这些web的容器控制台常见访问形式:
http://hostname:port/load/,
例如:http://x.x.x.x:8080/manage/。
14.2.漏洞成因
1.未更改相关组件默认控制台路径名称;
2.未对相关控制进行访问限制;
14.3.风险评估
攻击者使用弱口令扫描工具或者直接使用常见的弱口令去尝试登录Web中间件的管理控制后台,然后通过部署war包上传webshell,进而控制整个系统。
漏洞风险等级:
1)可访问默认中间件控制台,且能成功获取 shell,建议高;
2)可访问默认中间件控制台,并成功登录,但无法获取 shell,建议中;
3)可访问默认中间件控制台,但无法登录且无法执行危险操作,建议低;
14.4.测试方法
常见的web控制台检测方法:整体思路为首先需识别网站容器的指纹,判断其所采用的中间件,然后去扫描其所开放的端口,根据开放端口信息和常见固定的路径,去判断其控制台地址。以下列举常见控制台的检测方法:
1.Apache+tomcat:tomcat常见的web控制台地址为:
http://x.x.x.x/manager/html
或者添加端口:
http://x.x.x.x:8080/manager/html,
从TOMCAT5(开始默认/admin后台不存在,tomcat5之前的控制台为/admin。
2.Weblogic控制台:http://[weblogic所在机器IP]:[weblogic端口]/console若没有指定端口,且安装在本机上则为:(weblogic默认端口为7001)http://localhost:7001/console。
3.Websphere控制台:websphere的控制台常见有两种,一种是基于http,另一种是基于https的,分别为如下:http://localhost:9060/ibm/console和https://localhost:9043/ibm/console/logon.jsp ,默认帐号admin,默认密码admin 。
4.Oracle web控制台:一般默认的是http://localhost:5500/em,一般存放于Oracle安装文件夹下的install文件夹下中文本文件,上面有web控制台的地址。
5.Mongodb web控制台:自带了Web控制台:默认和数据服务一同开启。他的端口在Mongodb数据库服务器端口的基础上加1000,如果是默认的Mongodb数据服务端口(Which is 27017),则相应的Web端口为28017,这个页面可以看到当前Mongodb的所有连接、各个数据库和Collection的访问统计,包括:Reads, Writes, Queries, GetMores ,Inserts, Updates, Removes、写锁的状态、以及日志文件的最后几百行(CentOS+10gen yum 安装的mongodb默认的日志文件位于/var/log/mongo/mongod.log)。
6.HP system managent控制台:该控制台一般默认的端口为2381,可在其后添加路径/cpqlogin.php?errno=100&severity=4,即可访问.https://localhost:2381/cpqlogin.php?errno=100&severity=4
7.Service Registry 3控制台:在 Web 浏览器中键入以下 URL:http://hostname:port/soar/例如:http://localhost:6060/soar/如果系统中安装了 Registry,则 hostname 为 localhost。如果系统中尚未安装 Registry,请使用安装了 Registry 的系统的名称。port 的值通常为 6060,除非发生端口冲突。
8.Tomcat控制台URL:http://www.exmaple.com/manager/html,台默认帐号admin,默认密码admin或空
9.Jboss控制台URL:http://www.exmaple.com/jmx-console/
http://www.exmaple.com/web-console/
默认无须登陆,或者admin/admin。
10.Apache控制台URL:http://www.exmaple.com/server-status
11.Axis2控制台URL:http://www.exmaple.com/axis2-admin/ ,默认口令帐户:admin/axis2 。
12.iSAP控制台URL:http://www.exmaple.com/admin/login.jsp ,默认的帐号和密码:admin/admin 。
13.“普元”管理控制台URL:
http://www.exmaple.com/eosmgr/ ,
默认的帐号和密码:sysadmin/000000
14.5.加固方法
1.对于必须暴露于公网或者其他网络中的控制台地址,则为其地址做访问白名单措施,即只允许白名单以内的用户IP地址可以访问到该控制台,通过过滤器(filter)实现:
创建客户端IP过滤器ClientIpFilter
package com.huawei.filters; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.Filter; import javax.servlet.ServletException; import javax.servlet.FilterConfig; public class ClientIpFilter implements Filter { protected FilterConfig filterConfig; private String whiteIPlist[] = null; public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { String clientIP = req.getRemoteAddr(); if(IsIPinWhitelist(clientIP)) { //验证成功,继续处理 //System.out.println(clientIP+"调用Web Service,IP鉴权通过"); chain.doFilter(req,res); } else { //验证不成功,禁止用户调用该服务。 System.out.println(clientIP+"调用Web Service,IP鉴权不通过"); //throw new ServletException(clientIP + "无权限访问Web Service!"); } } private boolean IsIPinWhitelist(String remoteIPAddress) { for(int i = 0; i < this.whiteIPlist.length; i++) { String strIP = this.whiteIPlist[i]; if(strIP.equals(remoteIPAddress)) { return true; } } return false; } public void setFilterConfig(FilterConfig filterConfig) { this.filterConfig = filterConfig; } public void destroy() { filterConfig = null; } public void init(FilterConfig config) throws ServletException { this.filterConfig = config; String IPs = config.getInitParameter("IPList"); this.whiteIPlist = IPs.split(","); } } |
在web.xml中部署过滤器ClientIpFilter
在对应的web.xml文件的</web-app>前增加以下内容,其中蓝色部分为需要根据实际情况配置的IP地址白名单(也就是允许访问相应Web模块的客户端IP地址列表),IP地址间通过逗号隔开,不允许有空格;其中红色部分为需要根据实际情况配置的Web目录。参考代码: <filter> <filter-name>ClientIpFilter</filter-name> <filter-class>com.huawei.filters.ClientIpFilter</filter-class> <init-param> <param-name>IPList</param-name> <param-value>192.168.1.11,192.168.2.22,10.70.107.119</param-value> </init-param> </filter> <filter-mapping> <filter-name>ClientIpFilter</filter-name> <url-pattern>/WebService/*</url-pattern> </filter-mapping> |
2.修改控制台默认的用户名和密码,并为其控制台设置强壮的口令措施,防止可被恶意或简单猜解得到用户名和密码。
3.修改web容器控制台的默认端口,默认路径,避免可被直接利用,访问得到地址。例如:
tomcat的修复方式:禁止别人访问tomcat主页
环境:tomcat 6.0 ;
步骤1:
在server.xml中 <Host name="localhost" appBase="webapps">修改webapps为xxxxxx(自己设置的路径);
步骤2:
在tomcat-users.xml中 :<user name="admin" password="xxxx" roles="admin,manager" /> 更改用户名和密码(需强壮)。
15.参数溢出
15.1.漏洞描述
攻击者在参数中输入超长字符串,导致数据溢出,致使应用或者数据库报错引发相关信息泄漏,或者引起拒绝服务攻击等问题。
15.2.漏洞成因
前端参数可控制参数,后端参数过滤不严。
15.3.风险评估
攻击者可通过输入参数溢出触发应用服务器异常或服务器拒绝服务,影响系统可用性。
漏洞风险等级:建议高
15.4.测试方法
在前端可控参数中输入超长字符串
可参考链接:
https://blog.csdn.net/wrsharper/article/details/79920816
15.5.加固方法
限制输入参数内容的长度。
16.任意文件下载
16.1.漏洞描述
目录遍历(任意文件下载)漏洞不同于网站目录浏览,此漏洞不仅仅可遍历系统下web中的文件,而且可以浏览或者下载到系统中的文件,攻击人员通过目录遍历攻击可以获取系统文件及服务器的配置文件等等。一般来说,他们利用服务器API、文件标准权限进行攻击。严格来说,目录遍历攻击并不是一种web漏洞,而是网站设计人员的设计“漏洞”。
16.2.漏洞成因
程序设计本身存在缺陷,未过滤用户可控数据、文件下载地址存在数据库中、用户下载文件时不需要权限判定、提供了目录遍历服务、采用的中间件服务版本低。
16.3.风险评估
如果web设计者设计的web内容没有恰当的访问控制,允许http遍历,攻击者就可以访问受限的目录,并可以在web根目录以外执行命令。
漏洞风险等级:建议高
16.4.测试方法
1)通过web漏洞扫描工具对网站实施扫描可能发现目录遍历或者任意文件下载漏洞,发送一系列”../”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。
2)也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../ WEB-INF/web.xml等,然后查看其是否可被下载出来。随后可构造下载系统文件。
测试url
http://192.168.1.2:18080/web-irsc/attach?action=download&fileId=347580&realName=%E8%BF%9B%E9%94%80%E5%AD%98%E6%8A%A5%E8%A1%A8.xls
burpsuite抓取请求信息
下载文件
16.5.加固方法
1.净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
2.web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,使其即使越权也在访问目录之内。www目录就是一个chroot应用. 由chroot创造出的那个根目录,叫做“chroot监狱”(所谓"监狱"就是指通过chroot机制来更改某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全,详细具体chroot的用法,可参考:
http://blog.csdn.net/frozen_fish/article/details/2244870)。
3.任意文件下载漏洞也有可能是web所采用的中间件的版本低而导致问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。
4.要下载的文件地址保存至数据库中。
5.文件路径保存至数据库,让用户提交文件对应ID下载文件。
6.用户下载文件之前需要进行权限判断。
7.文件放在web无法直接访问的目录下。
8.不允许提供目录遍历服务。
9.公开文件可放置在web应用程序下载目录中通过链接进行下载。
参考代码:
public String download() throws Exception { //获取文件id String id = Struts2Utils.getRequest().getParameter("id"); try { //通过id进行文件查询 DownloadFile downFile = fileService.findEntityById(Long.parseLong(id)); // 获取该附件的类型 byte[] bt = null; bt = downFile.getContent(); HttpServletResponse res =Struts2Utils.getResponse(); res.reset(); res.setContentType("application/x-msdownload"); res.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(uacFile.getName(), "UTF-8")); OutputStream out = res.getOutputStream(); out.write(bt); out.flush(); out.close(); } catch (Exception e1) { e1.printStackTrace(); } return null; } |
原文始发于微信公众号(LSCteam):敏感信息泄漏
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论