1.1 认证授权类

1.1.1 弱口令

漏洞分析:
该漏洞主要是因为存在默认口令或口令较简单易被猜到。攻击者利用弱口令,可以获取特定账户或应用的访问控制权限,如果进一步攻击利用可能获取到服务器权限。
漏洞范围:
风险等级:
高危
修复建议:
1.不使用空口令或系统缺省的口令,并且密码长度不小于8个字符;
2.口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符;
3.口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息;
4.至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
5.建议对敏感信息进行加密传输,如:在传输前使用安全的算法加密后进行传输;在传输过程中使用https保证传输的安全;(根据情况加这条)
6.将get传输方式更改为post传输方式。(根据情况加这条)

1.1.2 ftp弱口令

漏洞分析:
FTP弱口令,一般指使用FTP的用户启用了匿名登录功能,或系统口令的长度太短、复杂度不够、仅包含数字、或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为。
漏洞范围:
风险等级:
高危
修复建议:
1.禁用匿名登录;
2.设置强密码安全策略;
3.增加账户登录失败处理机制。

1.1.3 FTP匿名访问

漏洞分析:
存在ftp匿名访问漏洞,攻击者利用此漏洞可以登入该主机,可查看、下载该主机内部敏感文件或上传恶意文件。
漏洞范围:
风险等级:
高危
修复建议:
1、禁用匿名登录。
2、启用强密码安全策略。
3、启用FTP目录隔离机制。

1.1.4 SNMP匿名访问

漏洞分析:
在运行SNMP服务的设备上,若管理员配置不当运行默认团体名/弱口令访问,将导致敏感信息泄露。敏感不限于系统运行的进程、已安装的软件、系统存在的用户,运行的服务,端口情况等。通过这些信息,攻击者可以清晰的了解到设备整体情况,根据开放的端口和服务快速定位可入侵点,根据运行的进程名判断是否存在哪些防护软件。根据存在的用户名,可以大大提高爆破效率等。
漏洞范围:
风险等级:
高危
修复建议:
1、如果SNMP服务不是必修的,建议停止。
2、修改用户口令。
3、限制访问161端口的网络范围。

1.1.5 暴力破解

漏洞分析:
应用系统用户名或密码明文传输,未进行安全加密传输,且没有验证码进行验证或者验证码可被绕过,会导致用户名和密码有被暴力破解的风险,攻击者可能会利用该漏洞进入管理系统,进行下一步的恶意操作。
漏洞范围:
风险等级:
中危
修复建议:
1.增加验证码机制,并在前后端均做好校验处理;
2.口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符;
3.口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息;
4.建议对敏感信息进行加密传输,如:在传输前使用安全的算法加密后进行传输;在传输过程中使用https保证传输的安全。

1.1.6 用户名枚举

漏洞分析:
在应用系统登录过程中,当输入错误的用户名信息时,应用程序将反馈相应的诸如“用户不存在”的错误提示,攻击者可通过该提示对用户名进行枚举,猜解出已存在于应用系统的用户名信息,最终攻击者可进行一步发起对已有用户的密码猜解。
漏洞范围:
风险等级:
低危
修复建议:
1.模糊登录错误信息,对用户名错误及密码错误均提示“用户名或密码错误,请重新输入”;
2.用户登录后需要对初始口令进行修改,防止攻击者利用初始口令进行暴力破解;
3.系统设置强密码策略,建议用户密码采用8位以上数字加大小写字母等强组合密码;
4.对密码暴力猜解行为增加验证码进行验证,一旦发现用户口令破解行为及时对账户进行限时封停处理。

1.1.7 文件上传漏洞

漏洞分析:
该漏洞是由于没有对文件格式后缀的合法性进行校验,或只在应用前端通过javascript进行后缀校验,攻击者可上传一个包含恶意代码的文件(如jsp、asp、php、aspx,html文件后缀)到服务器上,当访问该脚本时服务器将对包含恶意代码的文件进行解析,最终执行相应的恶意代码。
漏洞范围:
风险等级:
高危
修复建议:
1.请在后端代码里设置白名单上传,不属于白名单内,不允许上传;
2.上传文件要保存的文件名和目录名由系统根据时间生成,不允许用户自定义,并且不要在响应包中暴露文件的绝对路径;
3.上传文件要保存的文件名和目录名由系统根据时间生成,不允许用户自定义;
4.图片上传,要通过处理(缩略图、水印等),无异常后才能保存到服务器。

1.1.8 任意文件下载

漏洞分析:
应用系统在提供文件下载或读取功能时,没有对文件路径的合法性进行校验,攻击者最终可通过该漏洞下载或读取系统上的任意文件,如数据库文件、应用系统源代码、密码配置信息等重要敏感信息,造成系统的敏感信息泄露。
漏洞范围:
风险等级:
高危
修复建议:
1.对文件下载的参数进行过滤,依次过滤“.”、“..”、“/”、“\”等可用于跳转目录的字符;
2.对于下载文件的目录做好限制,只能下载指定目录下的文件,或者将要下载的资源文件路径存入数据库,附件下载时指定数据库中的id即可,id即对应的资源。

1.1.9 本地认证

详情描述:
发现系统登录入口未使用校内统一身份认证,出于安全考虑,建议对接校内统一身份认证进行登录。

1.1.10 未授权访问

漏洞分析:
系统未对权限做严格的校验,导致攻击者利用此漏洞,可以使用低权限账户访问或更改高权限账户的页面,如果此页面存在敏感数据或信息,那么这些敏感数据或信息可能发生泄露或被攻击者恶意更改,如果这些信息有助于攻击者进一步攻击利用,可能导致更严重的危害。
漏洞范围:
风险等级:
高危
修复建议:
1.执行操作前必须验证用户身份,验证用户是否具备访问资源的权限;
2.页面进行严格的访问权限的控制以及对访问角色进行权限检查。

1.1.11 Druid未授权访问

漏洞分析:
Druid提供监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控。当开发者配置不当时就可能造成未授权访问漏洞。利用泄露的Session和URL接口还可以进入后台。
漏洞范围:
风险等级:
低危
修复建议:
1.执行操作前必须验证用户身份,验证用户是否具备访问资源的权限;
2.对页面进行配置,需要有严格的访问权限的控制以及对访问角色进行权限检查。

1.1.12 Zookeeper未授权访问漏洞

漏洞分析:
一般2181是ZooKeeper默认开启的端口,在未进行任何访问控制情况下,攻击者可通过执行命令获得系统大量的敏感信息,包括系统名称、Java环境,同时也可以关闭服务,造成服务中断。
漏洞范围:
风险等级:
高危
修复建议:
1.请勿将Zookeeper直接暴露在外网;
2.对Zookeeper添加访问控制,根据情况可选择对应方式(认证用户,用户名密码);
3.限制固定的IP进行访问。

1.1.13 Redis未授权访问

漏洞分析:
Redis未授权访问主要是由于默认安装的情况下并未对Redis配置身份校验功能,导致攻击者可非法访问Redis下的数据信息,同时可进一步通过配置文件功能对服务器文件进行写入,如写入SSH密钥或计划任务,从而获得服务器的控制权限。
漏洞范围:
6379端口
风险等级:
高危
修复建议:
1.以低权限运行Redis服务,严禁使用root用户等高权限用户运行Redis服务;
2.修改redis.conf,为Redis添加密码验证;
3.修改redis.conf,禁止外网访问Redis,使得Redis服务只在当前主机可用。

1.1.14 Mongodb未授权访问

风险分析:
Mongodb 在启动的时候提供了很多参数,如日志记录到哪个文件夹,是否开启认证等。造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 —auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。
风险截图:
10.10.10.171:27017
风险等级:
高危
安全建议:
对登录模块增加用户认证功能,设置强口令。
在安全模式下启动MongoDB,并且同时为需要访问数据库的用户建立相应的权限,合理的配置操作者的使用权限。

1.1.15 Memcached未授权访问(高危)

风险分析:
Memcached 分布式缓存系统,默认的 11211 端口不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。
风险等级:
高危
风险验证:

安全建议:
1、如果memcache没有在外网开放的必要,可在memcached启动的时候指定绑定的ip地址为 127.0.0.1。bind_ip = 127.0.0.1
2、如果memcache服务需要对外提供服务,则可以通过iptables进行访问控制,下面是只允许本机访问:

1.1.16 水平越权

漏洞描述:
应用系统在处理同一业务功能数据时,并未对数据与当前用户的权限进行合法性校验,从而导致用户可越权访问、篡改、删除、添加其他用户的信息,造成越权操作。比如:访修改任意用户资料、删除任意用户信息等。
漏洞范围:
风险等级:
高危
修复建议:
1.增加访问与操作对象的用户属性,在对目标对象进行访问与操作时,服务端校验会话与对象的用户属性,在校验通过后才能执行读取和操作;
2.页面进行严格的访问权限的控制以及对访问角色进行权限检查。

1.1.17 垂直越权

漏洞描述:
应用系统在处理各个角色业务功能时,并未对当前用户角色与该业务功能的权限标志进行判断,导致用户可越权访问非自身权限范围内的业务功能,造成越权操作。比如:越权修改管理员用户信息、越权访问系统管理功能等。
漏洞范围:
风险等级:
高危
修复建议:
1.采取默认拒绝机制,采取基于角色的访问控制,对于各个功能的访问,规定不同角色拥有不同的访问权限,用户访问功能时,验证用户现在的权限和规定的权限是否相同,如果不同,拒绝访问。

1.1.18 会话标识未更新

漏洞分析:
会话标识未更新漏洞,在用户进入登录页面,但还未登录时,就已经产生了一个session,用户输入信息,登录以后,session的id不会改变,也就是说没有建立新session,原来的session也没有被销毁), 可能会窃取或操纵客户会话和cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。
漏洞范围:
风险等级:
中危
修复建议:
始终生成新的会话,供用户成功认证时登录登陆界面和登陆成功的界面一致时,修改后台逻辑,在验证登陆逻辑的时候,先强制让当前session过期,然后用新的session存储信息:登陆界面和登陆成功的界面不一致时在登陆界面后增加下面一段代码,强制让系统session过期。

1.1.19 脆弱的ssl加密算法

漏洞分析:
脆弱的SSL加密算法,是一种常见的漏洞,且至今仍有大量软件支持低强度的加密协议,包括部分版本的openssl。其实,该低强度加密算法在当年是非常安全的,但时过境迁,飞速发展的技术正在让其变得脆弱。黑客可利用SSL弱加密算法漏洞进行SSL中间人攻击,即强迫服务器和用户之间使用低强度的加密方式,然后再通过暴力破解,窃取传输内容。强度较弱的加密算法将不能较好的保证通信的安全性,有被攻击者破解的风险。对于linux中openssl的FREAK Attack漏洞,该漏洞是由于OpenSSL库里的s3_clnt.c文件中,ssl3_get_key_exchange函数,允许客户端使用一个弱RSA秘钥,向SSL服务端发起RSA-to-EXPORT_RSA的降级攻击,以此进行暴力破解,得到服务端秘钥。此问题存在于OpenSSL版本0.9.8zd之前, 或1.0.0p之前的1.0.0,或1.0.1k之前的1.0.1。
漏洞范围:
风险等级:
低危
修复建议:
修复建议是禁用弱加密,具体的中间件配置方法和系统的禁止方法可以在网上搜索相关文档,很多很详细。

1.1.20 单因素认证

漏洞分析:
用户不存在与用户密码进行校验返回不同的提示,攻击者可利用此类单因素认证快速获取网站可登录用户名,进而进行进一步的爆破攻击。
漏洞范围:
风险等级:
低危
修复建议:
1.启用多因素认证,登录错误信息不区别。
2.登录失败后的限制策略,比如连接5 次登录失败,应该暂停用户登录
3.使用动态验证码机制,对用户每次登录进行校验防止恶意爆破攻击。

1.2 信息泄露类

1.2.1 敏感信息明文传输

漏洞分析:
当用户的输入在前后端进行交互时,尤其是登录操作,如果不对密码等关键信息进行加密,在数据的传输过程中,有可能容易被嗅探软件截取,导致存在敏感信息泄露的风险。
漏洞范围:
风险等级:
低危
修复建议:
1.建议对敏感信息进行加密传输,如:在传输前使用安全的算法加密后进行传输;在传输过程中使用https保证传输的安全;
2.将get传输方式更改为post传输方式。

1.2.2 个人敏感信息泄露

漏洞分析:
过于详细的个人敏感信息泄露,容易被不法分子贩卖牟利,或进行钓鱼诈骗等违法行为,最终造成当事人的人身财产受到威胁。
敏感信息未脱敏,身份证账号信息一旦被攻击者利用,容易被不法分子贩卖牟利,或进行钓鱼诈骗等违法行为,最终造成当事人的人身财产受到威胁。

漏洞范围:
风险等级:
高危
修复建议:
1.建议删除相关文件;
2.私密信息不建议放置在公开的分享平台。

1.2.3 测试、调试页面

漏洞分析:
无需登录可直接访问系统的日志等信息。该界面属于调试页面,为避免攻击者获得系统的一些敏感信息加以利用,这些页面不应该被用户访问。
漏洞范围:
风险等级:
中危
修复建议:
1.建议删除该调试文件;
2.如需要保留该文件,则对文件的访问权限进行控制。

1.2.4 git代码泄露漏洞

漏洞分析:
开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境,攻击者可以利用该漏洞下载git文件夹里的所有内容。如果文件夹内有敏感信息比如站点源码、数据库账户密码等,攻击者可能直接控制服务器。
漏洞范围:
风险等级:
中危
修复建议:
1.对git目录的访问权限进行控制;
2.在每次pull后删除.git文件夹。

1.2.5 绝对路径泄露

漏洞分析:
应用中泄露出应用在主机中的绝对地址路径。
漏洞范围:
风险等级:
低危
修复建议:
1.显示信息中不对外输出网站物理路径等敏感信息;
2.对必要的输出建议采用相对路径的表达方式。

1.2.6 目录浏览

漏洞分析:
Web中间件如果开启了目录浏览功能,当用户访问Web应用时,Web服务器会将Web应用的目录结构、文件信息返回给客户端,攻击者可能利用这些敏感信息对Web应用进行攻击,如数据库脚本SQL文件路径泄露、程序备份压缩文件路径泄露等。
漏洞范围:
风险等级:
中危
修复建议:
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.2.7 IIS短文件名泄露

漏洞分析:
Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件。
漏洞范围:
风险等级:
中危
修复建议:
1.关闭NTFS 8.3文件格式的支持;
2.也可以修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将其中的NtfsDisable8dot3NameCreation这一项的值设为1,1代表不创建短文件名格式,但此方法只能禁止NTFS 8.3格式文件名创建,已经存在的文件的短文件名无法移除,需要重新复制才会消失。

1.2.8 web服务器控制台地址泄露

漏洞分析:
Web 控制台是一种基于 Web 的用户界面,其常常被用于网站后台或者web容器控制台中,其不仅仅局限于容器或者网站管理后台,还包括一些数据库默认地址等。在web安全中,网站系统在泄漏其web容器(中间件)或者数据库的控制台后,存在增加被入侵的风险。常见的web控制台包括以下多种:tomcat、aria2、weblogic、websphere、oracle、jboss、等。这些web的容器控制台常见访问形式:http://hostname:port/load/,例如:http://x.x.x.x:8080/manage/。
漏洞范围:
风险等级:
中危
修复建议:
修改或禁止访问默认管理路径

1.2.9 phpinfo信息泄露

漏洞分析:
phpinfo()函数返回的信息中包含了服务器的配置信息,包括:1)PHP编译选项以及文件扩展名的相关信息;2)php的版本信息 3)php的配置信息;4)数据库信息;等敏感信息。这些敏感信息会帮助攻击者展开进一步的攻击。
漏洞范围:
风险等级:
中危
修复建议:
建议限制此类脚本的访问权限或者删除对phpinfo()函数的调用:修改php.ini文件中的disable_functions配置项,把“phpinfo”添加到清单中:disable_functions=phpinfo
备注:如果要禁用多个函数,函数名之间用逗号隔开

1.2.10 POODLE信息泄露漏洞

漏洞分析:
由于SSL 3.0使用的CBC块加密的实现存在漏洞,攻击者可以成功破解SSL连接的加密信息,比如获取用户cookie数据。这种攻击被称为POODL攻击(Padding Oracle On Downgraded Legacy Encryption)。此漏洞影响绝大多数SSL服务器和客户端,影响范围广泛。但攻击者如要利用成功,需要能够控制客户端和服务器之间的数据(执行中间人攻击)。简单来说:Poodle攻击的原理,就是黑客故意制造安全协议连接失败的情况,触发浏览器的降级使用 SSL 3.0,然后使用特殊的手段,从SSL 3.0 覆盖的安全连接下提取到一定字节长度的隐私信息。
漏洞范围:
风险等级:
中危
修复建议:
建议手动关闭客户端SSLv3支持;或者关闭服务器SSLv3支持;或者两者全部关闭,即可有效防范Poodle漏洞对您造成的影响。常见修复方案如下:目前常用浏览器只有IE 6.0仍然不支持TLS 1.0,禁用SSL 3.0协议将影响IE 6客户的SSL访问。

1.2.11 SVN信息泄露

漏洞分析:
SVN(subversion)是程序员常用的源代码版本管理软件。一旦网站出现SVN漏洞,其危害远比SQL注入等其它常见网站漏洞更为致命,因为黑客获取到网站源代码后,一方面是掠夺了网站的技术知识资产,另一方面,黑客还可通过源代码分析其它安全漏洞,从而对网站服务器及用户数据造成持续威胁。更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。
漏洞范围:
风险等级:
高危
修复建议:
删除SVN各目录下的.svn目录;删除CVS的CVS目录。或者对URL中进行过滤,过滤相关svn等相关敏感字符:

location ~ ^(.*)\/\.svn\/
{
return 404;
}


1.2.12 备份文件泄露

漏洞分析:
备份文件泄露,在web服务中,尝尝不局限于网站的源代码泄露,网站的数据库备份文件,以及上传的敏感文件,或者一切正常备份,原则不允许访问的文件可被通过访问web路径进行下载得到,造成其信息泄露。有效的帮助攻击者理解网站应用逻辑,为展开其他类型的攻击提供有利信息,降低攻击的难度,可以进一步获取其他敏感数据。
漏洞范围:
风险等级:
高危
修复建议:
网站管理员严格检查web中可访问的路径下是否存在备份文件,常见备份文件后缀为.jsp.bak、.bak、.sql、.txt、等等。如果有这些文件,直接将该备份文件进行转移到其他目录或者直接删除即可。
严格控制可网站可访问目录下的文件敏感度的存放问题,不要将敏感文件置于该目录。

1.2.13 内网IP地址泄露

漏洞分析:
网站的内部IP地址,常常被攻击者通过信息收集,得到其内网的IP地址,对于渗透攻击,打下良好基础,如内网Ip地址段,IP路由等等。常见的泄露内网IP的web容器有IIS。
漏洞范围:
风险等级:
低危
修复建议:
建议采用以下方式进行修复:
建议开发人员不要在源代码中注释中包含有内网IP。
删除携带内网IP地址的页面,并制定完善的安全编码策略,并且及时检查存在的页面代码是否包含内部IP地址问题。
加强编程人员良好的安全编码意识,系统地学习安全编码的知识,减少源代码泄露的风险。
建立起良好的代码审核、审查体系,由专人负责代码的审计,增加安全监督环节。
合理配置WEB服务器,禁止在数据交互中,传输内网IP地址。
对于IIS服务器中的泄露内网IP地址的漏洞修复方法:
输入CMD进入命令提示符,输入“adsutil set w3svc/UseHostName True net stop iisadmin /y net start w3svc。这样就可以让IIS使用主机名而不是主机的IP地址,这样即时是有人利用漏洞也只是看到主机名而不是主机IP,从而防止内容IP地址泄露。

1.2.14 Cookie信息泄露

漏洞分析:
cookie的属性设置不当可能会造成系统用户安全隐患,Cookie信息泄露是Cookie http only配置缺陷引起的,在设置Cookie时,可以设置的一个属性,如果Cookie没有设置这个属性,该Cookie值可以被页面脚本读取。例如:当攻击者发现一个XSS漏洞时,通常会写一段页面脚本,窃取用户的Cookie,如果未设置http only属性,则可能导致用户Cookie信息泄露,攻击者能够利用该用户的身份进行系统资源访问及操作。
漏洞范围:
风险等级:
中危
修复建议:
建议如果网站基于cookie而非服务器端的验证,请最好加上HttpOnly,当然,目前这个属性还不属于任何一个标准,也不是所有的浏览器支持,建议设置cookie的代码:
response.setHeader(“SET-COOKIE”,
“user=” + request.getParameter(“cookie”) + “; HttpOnly”);
本段代码设置了http only属性,攻击者无法获取用户Cookie信息。

1.2.15 异常信息泄露(应用程序错误)

漏洞分析:
如果攻击者通过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序,那么应用程序可能会进入易受攻击的未定义状态。攻击者可以从应用程序对该请求的响应中获取有用的信息,且可利用该信息,以找出应用程序的弱点。 错误消息中泄露重要信息的另一个原因,是脚本编译引擎,web服务器或数据库配置错误。 此漏洞的利用的重点在于应用程序未能正确处理自身发生的错误 此漏洞的技术重点在于某些应用程序出错时,会把错误信息反馈到用户端,这些错误信息通常可用于调试的目的 此漏洞的方法重点在于从错误反馈信息中获取有用的信息,从而加以利用,突破网站安全 总的来说:当Web应用程序发生错误时,如果处理不得当,可能会把相关的错误信息反馈至客户浏览器,这些信息往往可能含有重要的安全信息。
漏洞范围:
风险等级:
中危
*修复建议:

1.检查请求,以了解所有预期的参数和值是否存在。当参数缺失时,发出适当的错误消息,或使用缺省值。
2.应用程序应验证其输入是否由有效字符组成(解码后)。例如,应拒绝包含空字节(编码为%00)、单引号、引号等的输入值。
3.确保值符合预期范围和类型。
4.验证数据属于提供给客户端的集合。
5.请勿在生产环境中输出调试错误消息和异常。

1.2.16 Robots文件信息泄露

漏洞分析:
搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯,如果robots.txt文件编辑的太过详细,反而会泄露网站的敏感目录或者文件,比如网站后台路径,从而得知其使用的系统类型,从而有针对性地进行利用。
漏洞范围:
风险等级:
中危
修复建议:
安全建议或者修复方案:(可根据实际情况,进行如下对应的修复)
User-agent: 这里的代表的所有的搜索引擎种类,是一个通配符
Disallow: / 这里定义是禁止爬寻站点所有的内容
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /cgi-bin/
.htm 禁止访问/cgi-bin/目录下的所有以”.htm”为后缀的URL(包含子目录)。
Disallow: /? 禁止访问网站中所有包含问号 (?) 的网址
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以”.htm”为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap: 网站地图告诉爬虫这个页面是网站地图。

1.3 注入攻击类

1.3.1 SQL注入

漏洞分析:
程序过滤不严,存在SQL注入漏洞。攻击者可直接控制数据库,数据库中存储的所有信息都将泄漏。若数据库的权限较高,攻击者可以直接将恶意文件写入到服务器上,甚至可以直接执行操作系统命令,直接控制主机服务器。
漏洞范围:
风险等级:
高危
修复建议:
1.增加对客户端提交数据的合法性验证,至少严格过滤SQL语句中的关键字,并且所有验证都应该在服务器端实现;
需过滤的关键字为:
[1] ‘ 单引号
[2] “ 双引号
[3] \’ 反斜杠单引号
[4] \” 反斜杠双引号
[5] ) 括号
[6] ;分号
[7] — 双减号
[8] + 加号
[9]SQL关键字,如select,delete,drop等等,注意对于关键字要对大小写都识别,如:select ;SELECT;seLEcT等都应识别;
2.建议使用较低权限的用户访问数据库。不要使用数据库管理员等高权限的用户访问数据库;
3.使用预编译技术防止SQL注入。

1.3.2 HTML注入

漏洞分析:
程序过滤不严,存在HTML注入漏洞。攻击者可插入HTML代码到页面中,由Web浏览器在客户端执行,该漏洞可以用于误导用户,欺骗他们来提交一些敏感信息,或者浏览恶意网站,可造成钓鱼等恶意攻击。
漏洞范围:
风险等级:
高危
修复建议:
1.在客户端和服务端对HTML标签进行全面过滤;
2.如果需要用到特定的HTML标签,可采用白名单方式进行过滤;
3.对输出到页面的数据进行相应的编码转换。

1.3.3 CRLF注入

漏洞分析:
HTTP响应头拆分漏洞(CRLF)”是一种新型的web攻击方案,它重新产生了很多安全漏洞包括:web缓存感染、用户信息涂改、窃取敏感用户页面、跨站脚本漏洞。这项攻击方案,包括其衍生的一系列技术产生,是由于web应用程序没有对用户的提交进行严格过滤,导致非法用户可以提交一些恶意字符,更具体来说,是对用户输入的CR 和LF字符没有进行严格的过滤。CRLF是”回车 + 换行”(\r\n)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,所以CRLF Injection又叫HTTP Response Splitting(HRS)。是应用程序没有正确的过滤用户提供的输入。远程攻击者可以利用这个漏洞影响或错误的显示Web内容服务,缓存或解释的方式,这可能帮助诱骗客户端用户,导致跨站脚本,缓存破坏或页面劫持等漏洞。
漏洞范围:
风险等级:
中危
修复建议:
修复方案如下:
建议过滤\r 、\n之类的换行符,避免输入的数据污染到其他HTTP头。具体过滤措施,可参考SQL注入的修复方案。

1.3.4 XFF注入

漏洞分析:
XFF,是X-Forwarded-for的缩写,XFF注入是SQL注入的一种,该注入原理是通过修改X-Forwarded-for头对带入系统的dns进行sql注入,从而得到网站的数据库内容。
漏洞范围:
风险等级:
中危
修复建议:
修复方案:
过滤http头中的X-Forwarded-for header中的内容,不允许其插入敏感字符,过滤字符参考sql注入修复方案。
过滤以下敏感字符

需要过滤的特殊字符及字符串有:
 net user
 xp_cmdshell
 add
 exec master.dbo.xp_cmdshell
 net localgroup administrators
 select
 count
 Asc
 char
 mid
 ‘
 :
 “
 insert
 delete from
 drop table
 update
 truncate
 from
 %


1.3.5 XPATH注入

漏洞分析:
XPath注入攻击是指利用XPath 解析器的松散输入和容错特性,能够在URL、表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息。XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知识的情况下,通过XPath查询得到一个XML文档的完整内容。
漏洞范围:
风险等级:
中危
修复建议:
目前专门的 XPath 攻击防御技术还不是太多,但是 SQL 注入攻击防御技术可以加以改进,应用到 XPath 注入攻击防御。具体技术总结如下:
数据提交到服务器上端,在服务端正式处理这批数据之前,对提交数据的合法性进行验证。
检查提交的数据是否包含特殊字符,对特殊字符进行编码转换或替换、删除敏感字符或字符串。
对于系统出现的错误信息,以 IE 错误编码信息替换,屏蔽系统本身的出错信息。
参数化 XPath 查询,将需要构建的 XPath 查询表达式,以变量的形式表示,变量不是可以执行的脚本。如下代码可以通过创建保存查询的外部文件使查询参数化: declare variable $loginID as xs:string external; declare variable $password as xs:string external; //users/user[@loginID=$loginID and @password= $password]。
通过 MD5、 SSL 等加密算法,对于数据敏感信息和在数据传输过程中加密,即使某些非法用户通过非法手法获取数据包,看到的也是加密后的信息。

1.3.6 命令注入

漏洞分析:
Command Injection,即命令注入攻击,是指由于Web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。在命令注入的漏洞中,最为常见的是PHP的命令注入。PHP命令注入攻击存在的主要原因是Web应用程序员在应用PHP语言中一些具有命令执行功能的函数时,对用户提交的数据内容没有进行严格的过滤就带入函数中执行而造成的。例如,当黑客提交的数据内容为向网站目录写入PHP文件时,就可以通过该命令注入攻击漏洞写入一个PHP后门文件,进而实施进一步的渗透攻击。
漏洞范围:
风险等级:
高危
修复建议:
防范命令注入攻击漏洞的存在可以通过以下几种方法:
尽量不要执行外部的应用程序或命令。
使用自定义函数或函数库实现外部应用程序或命令的功能。
在执行system、eval等命令执行功能的函数前,确定参数内容。
使用escapeshellarg函数处理相关参数。Escapeshellarg函数会将任何引起参数或命令结束的字符进行转义,如单引号“’”会被转义为“\’”,双引号“””会被转义为“\””,分号“;”会被转义为“\;”,这样escapeshellarg会将参数内容限制在一对单引号或双引号里面,转义参数中所包含的单引号或双引号,使其无法对当前执行进行截断,实现防范命令注入攻击的目的。
使用safe_mode_exec_dir执行可执行的文件路径。将php.ini文件中的safe_mode设置为On,然后将允许执行的文件放入一个目录中,并使用safe_mode_exec_dir指定这个可执行的文件路径。这样,在需要执行相应的外部程序时,程序必须在safe_mode_exec_dir指定的目录中才会允许执行,否则执行将失败。

1.3.7 链接、框加注入

漏洞分析:
一个框架注入攻击是一个所有基于GUI的浏览器攻击,它包括任何代码如JavaScript,VBScript(ActivX),Flash,AJAX(html+js+py)。代码被注入是由于脚本没有对它们正确验证,攻击者有可能注入含有恶意内容的 frame 或 iframe 标记。“链接注入”是修改站点内容的行为,其方式为将外部站点的 URL 嵌入其中,或将有易受攻击的站点中的脚本的 URL 嵌入其中。将 URL 嵌入易受攻击的站点中,攻击者便能够以它为平台来启动对其他站点的攻击,以及攻击这个易受攻击的站点本身。
漏洞范围:
风险等级:
高危
修复建议:
建议过滤出所有以下字符::

[1] |(竖线符号)
[2] & (& 符号)
[3];(分号)
[4] $(美元符号)
[5] %(百分比符号)
[6] @(at 符号)
[7] ‘(单引号)
[8] “(引号)
[9] \‘(反斜杠转义单引号)
[10] \\“(反斜杠转义引号)
[11] <>(尖括号)
[12] ()(括号)
[13] +(加号)
[14] CR(回车符,ASCII 0x0d)
[15] LF(换行,ASCII 0x0a)
[16] ,(逗号)
[17] \(反斜杠)
详细过滤方案,请参考XSS跨站漏洞修复方案。


1.3.8 Json劫持注入

漏洞分析:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成,这种纯文本的数据交互方式由于可以天然的在浏览器中使用,所以随着ajax和web业务的发展得到了广大的发展,各种大型网站都开始使用,包括Yahoo,Google,Tencent,Baidu等等,目前各银行都有用这种方式来实现数据交互。但是如果这种交互的方式用来传递敏感的数据,并且传输的时候没有做太多安全性控制的话将导致安全漏洞,根据敏感信息的不同导致会导致应用遭受不同级别的攻击。
漏洞范围:
风险等级:
高危
修复建议:
尽量避免跨域的数据传输,对于同域的数据传输使用xmlhttp的方式作为数据获取的方式,依赖于javascript在浏览器域里的安全性保护数据。如果是跨域的数据传输,必须要对敏感的数据获取做权限认证,具体的方式可以包括:
referer的来源限制,利用前端referer的不可伪造性来保障请求数据的应用来源于可信的地方,此种方式力度较稀,完全依赖于referer,某些情况下(如存在xss)可能导致被绕过。
token的加入,严格来说,这种利用javascript hijacking的方式获取数据是CSRF的一种,不过较之传统的CSRF不能获取数据只能提交而言,这种方式利用javascript可以获取一些敏感信息而已。如果我们能让攻击者对接口未知,就可以实现json hijacking的防御了。利用token对调用者的身份进行认证,这种方式对于调用者的身份会要求力度较细,但是一旦出现xss也可能导致前端Token的泄露,从而导致保护失效。
对于同域的json使用情况下,可以在数据的输出头部加入while(1);的方式避免数据被script.

1.3.9 宽字节注入

漏洞分析:
宽字节注入是相对于单字节注入而言的,该注入跟HTML页面编码无关,宽字节注入常见于mysql中,GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节。宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象,当%df’被PHP转义(开启GPC、用addslashes函数,或者icov等),单引号被加上反斜杠\,变成了 %df\’,其中\的十六进制是 %5C ,那么现在 %df\’ = %df%5c%27,如果程序的默认字符集是GBK等宽字节字符集,则MYSQL用GBK的编码时,会认为 %df%5c 是一个宽字符,也就是x’,也就是说:%df\’ = %df%5c%27=x’,有了单引号可以注入了
漏洞范围:
风险等级:
高危
修复建议:
修复方案:
改Windows下的MySQL配置文件一般是 my.ini,Linux下的MySQL配置文件一般是my.cnf,在初始化连接和字符集之后,使用SET character_set_client=binary来设定客户端的字符集是二进制的。character_set_client指定的是SQL语句的编码,如果设置为 binary,MySQL就以二进制来执行,这样宽字节编码问题就没有用武之地,如

mysql_query(”SET character_set_client=binary”);

转义数据:一些合法的数据可能在无意中破坏 SQL 语句本身的格式。使用 mysql_escape_string() 或者所使用数据库提供的转移函数。如果没有提供这样的函数,addslashes() 也是不错的最后选择. 原理是,mysql_real_escape_string与addslashes的不同之处在于其会考虑当前设置的字符集,不会出现前面e5和5c拼接为一个宽字节的问题。

1.4 命令执行类

1.4.1 HTTP.sys远程代码执行漏洞

漏洞分析:
利用HTTP.sys的安全漏洞,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。若请求后,响应码为416,则证明系统存在漏洞。
漏洞范围:
风险等级:
高危
修复建议:
1.升级补丁:http://technet.microsoft.com/security/bulletin/MS15-034
2.禁用IIS内核缓存(缓解方案):https://technet.microsoft.com/en-us/library/cc731903(v=ws.10).aspx.aspx)。

1.4.2 文件包含

漏洞分析:
文件包含是指程序代码在处理包含文件的时候没有严格控制。导致用户可以构造参数包含远程代码在服务器上执行,并得到网站配置或者敏感文件,进而获取到服务器权限,造成网站被恶意删除,用户和交易数据被篡改等一系列恶性后果。主要包括本地文件包含和远程文件包含两种形式,由于开发人员编写源码,开放着将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码会被解释执行。由于并没有针对代码中存在文件包含的函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端解释执行。文件包含攻击中WEB服务器源码里可能存在inlcude()此类文件包含操作函数,可以通过客户端构造提交文件路径,是该漏洞攻击成功的最主要原因。
漏洞范围:
风险等级:
高危
修复建议:
PHP:配置php.ini关闭远程文件包含功能(allow_url_include = Off)
严格检查变量是否已经初始化。
建议假定所有输入都是可疑的,尝试对所有输入提交可能可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现../之类的目录跳转符。
严格检查include类的文件包含函数中的参数是否外界可控。
不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
在发布应用程序之前测试所有已知的威胁。

1.4.3 代码执行

漏洞分析:
当应用程序在调用一些能将字符串转化成代码的函数(如php中的eval)时,没有考虑到用户是否能控制这个字符串,将造成代码注入漏洞。代码注入通常指将可执行代码注入到当前页面中,如php的eval函数,可以将字符串代表的代码作为php代码执行,当前用户能够控制这段字符串时,将产生代码注入漏洞(也称代码执行)。
攻击者利用此漏洞,可以获取整个网站和数据库的控制权限,包括修改删除网站页面、窃取数据库敏感信息;甚至以网站为跳板,获取整个内网服务器控制权限。
漏洞范围:
风险等级:
高危
修复建议:
在执行涉及到可以将字符串作为代码执行的函数时,需要严格验证用户传递的参数,同时尽量避免用户控制参数。

1.4.4 Struts2 远程命令执行

漏洞分析:
Struts 2是在struts 和WebWork的技术基础上进行了合并的全新的框架。Struts2漏洞类型分为两种,一种是使用缩写的导航参数前缀时的远程代码执行漏洞,另一种是使用缩写的重定向参数前缀时的开放式重定向漏洞,Struts2远程命令执行,属于高危安全漏洞,可使黑客取得网站服务器的权限。这里我们重点描述相关远程命令执行漏洞。Struts2的DefaultActionMapper支持一种方法,可以使用”action:”, “redirect:” , “redirectAction:”对输入信息进行处理,从而改变前缀参数,这样操作的目的是方便表单中的操作。在2.3.15.1版本以前的struts2中,没有对”action:”, “redirect:” , “redirectAction:”等进行处理,导致ongl表达式可以被执行,如s2-020的漏洞中,利用ognl的class.xx这种方式来遍历属性。
漏洞范围:
风险等级:
高危
修复建议:
建议及时更新struts2的版本到最新,如果暂时不能更新,则提供以下方案进行修复:
1、 除了升级以外:Struts2远程代码执行漏洞(S2-013) 临时解决方案:

以下是S2-013的临时解决方案:
修改文件:org.apache.struts2.views.util.DefaultUrlHelper 的281–284行:
private String translateVariable(String input) {
ValueStack valueStack = ServletActionContext.getContext().getValueStack();
return TextParseUtil.translateVariables(input, valueStack);
}
修改成
private String translateVariable(String input) {
return input;
}

2、 Struts2 s2-016/s2-017漏洞官网漏洞说明:

http://struts.apache.org/release/2.3.x/docs/s2-016.html
解决方案(以struts 2.1.8.1版本为例):
1.下载struts 2.1.8.1 源码struts-2.1.8.1-src.zip下载完成后,记得进行MD5验证
2.eclipse建立一个war项目
3.将struts-2.1.8.1-src.zip内的源码拖到项目的src目录下
4.找到对应struts-2.1.8.1的xwork-core-2.1.6.jar放入war项目的WEB-INF/lib目录下此目的就是为了避免java文件带红叉
5.修改org.apache.struts2.dispatcher.mapper.DefaultActionMapper.java此时文件应该没有红叉.有红叉主要是缺乏servlet-api.jar和xwork-core-2.1.6.jar在buildpath中改动如下: 这里采用网上jason.zhou的修改
找到handleSpecialParameters方法,做下面红色字的修改:
public void handleSpecialParameters(HttpServletRequest request,
ActionMapping mapping) {
// handle special parameter prefixes.
Set uniqueParameters = new HashSet();
Map parameterMap = request.getParameterMap();
for (Iterator iterator = parameterMap.keySet().iterator(); iterator
.hasNext();) {
String key = (String) iterator.next();
// Strip off the image button location info, if found
if (key.endsWith(“.x”) || key.endsWith(“.y”)) {
key = key.substring(0, key.length() - 2);
}
// — jason.zhou 20130708 add start — //
if ((key.contains(“redirect:”)) || (key.contains(“redirectAction:”)) || (key.contains(“action:”))) {
return;
}
// — jason.zhou 20130708 add end — //
// Ensure a parameter doesn’t get processed twice
if (!uniqueParameters.contains(key)) {
ParameterAction parameterAction = (ParameterAction) prefixTrie
.get(key);
if (parameterAction != null) {
parameterAction.execute(key, mapping);
uniqueParameters.add(key);
break;
}
}
}
}
6.点中org.apache.struts2.dispatcher.mapper.DefaultActionMapper.java,右键,导出(export),导出为JAR file存盘为test.jar
7.用winrar打开test.jar,拷贝出org/apache/struts2/dispatcher/mapper/下的DefaultActionMapper类,一共有7个文件
DefaultActionMapper$1.class
DefaultActionMapper$2$1.class
DefaultActionMapper$2$2.class
DefaultActionMapper$2$3.class
DefaultActionMapper$2$4.class
DefaultActionMapper$2.class
DefaultActionMapper.clas
8.用winrar打开struts2-core-2.1.8.1.jar进入org/apache/struts2/dispatcher/mapper/目录,将将上面拷贝出的7个文件拷贝入,覆盖原来的同名文件。
9.将struts2-core-2.1.8.1.jar拷贝入你自己的项目,覆盖原来的struts2-core-2.1.8.1.jar
10.启动你的项目,重新s2-016漏洞进行测试如果发现测试结果正常(不响应.do?action:,.do?redrect:,.do?redirectAction),则证明补丁打好,漏洞被堵住了。


1.4.5 thinkphp代码执行

漏洞分析:
该漏洞出现的原因在于ThinkPHP5框架底层对控制器名过滤不严,从而让攻击者可以通过url调用到ThinkPHP框架内部的敏感函数,进而导致getshell漏洞。
漏洞范围:
风险等级:
高危
修复建议:
目前,ThinkPHP厂商已发布新版本修复此漏洞,建议用户立即升级至最新版本:https://blog.thinkphp.cn

1.5 客户端攻击类

1.5.1 XSS

漏洞分析:
程序过滤不严,存在XSS跨站漏洞。攻击者可插入任意HTML/JavaScript代码到页面中,可获取用户会话cookie、用户访问URL、用户浏览器及操作系统版本等信息,可插入伪造的登录页面进行钓鱼,可利用浏览器漏洞进行挂马。
漏洞范围:
风险等级:
高危
修复建议:

(1)过滤输入的数据,对例如:“‘”,““”,” < “,” > “,” on* “,script、iframe等危险字符进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
(2)不仅验证数据的类型,还要验证其格式、长度、范围和内容。
(3)不仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
(4)对输出到页面的数据进行相应的编码转换,如HTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行检查。

1.在客户端和服务端对程序接收到的数据进行全面过滤,建议过滤的常见危险字符如下:
[1] |
[2] &
[3] ;
[4] $
[5] %
[6] @
[7] ‘
[8] “
[9] <>
[10] ()
[11] +
[12] CR
[13] LF
[14] ,
[15] .
[16] script
[17] document
[18] eval
2.在cookie中加入httponly属性可以在一定程度上保护用户的cookie,减少出现XSS时的损失;
3.比如可以将“<”编码为“&lt”。

1.5.2 跨站请求伪造(CSRF)

漏洞分析:
跨站请求伪造攻击,Cross-Site Request Forgery(CSRF),攻击者在用户浏览网页时,利用页面元素(例如img的src),强迫受害者的浏览器向Web应用服务器发送一个改变用户信息的HTTP请求。CSRF攻击可以从站外和站内发起。从站内发起CSRF攻击,需要利用网站本身的业务,比如“自定义头像”功能,恶意用户指定自己的头像URL是一个修改用户信息的链接,当其他已登录用户浏览恶意用户头像时,会自动向这个链接发送修改信息请求。从站外发送请求,则需要恶意用户在自己的服务器上,放一个自动提交修改个人信息的htm页面,并把页面地址发给受害者用户,受害者用户打开时,会发起一个请求。威胁描述:攻击者使用CSRF攻击能够强迫用户向服务器发送请求,导致用户信息被迫修改,甚至可引发蠕虫攻击。如果恶意用户能够知道网站管理后台某项功能的URL,就可以直接攻击管理员,强迫管理员执行恶意用户定义的操作。
漏洞范围:
风险等级:
高危
修复建议:
修复方案如下:
通过referer判断页面来源进行CSRF防护,该方式无法防止站内CSRF攻击及referer字段伪造。
重要功能点使用动态验证码进行CSRF防护。
通过token方式进行CSRF防护:

1、 在Session中绑定token。如果不能保存到服务器端Session中,则可以替代为保存到Cookie里。
2、 在form表单中自动填入token字段,比如
3、 在HTTP请求中自动添加token。
在服务器端对比POST提交参数的token与Session中绑定的token是否一致,以验证CSRF攻击

4、 为每个session创建唯一的随机字符串,并在受理请求时验证:


>
……

//判断客户端提交的随机字符串是否正确
String randomStr = (String)request.getParameter(“randomStr”);
if(randomStr == null) randomStr=””;
if(randomStr.equals(request.getSession().getAttribute(“randomStr”)))
{//处理请求}
else{
//跨站请求攻击,注销会话
}


1.5.3 不安全的HTTP请求方法

漏洞分析:
通过OPTIONS方法提交特定的请求,在响应中查看allow头信息,在allow头中发现DELETE、PUT等选项,DELETE方法是用来调试web服务器连接的http方式,支持该方式的服务器文件可能被非法删除;PUT方法用来向服务器提交文件,测试显示部分请求中这些方法是允许的。
漏洞范围:
风险等级:
低危
修复建议:
1. 修改系统web服务器配置,禁止使用DELETE、PUT等方法。

1.6 逻辑漏洞

1.6.1 验证码失效

漏洞分析:
存在验证码失效漏洞,应用系统在登录处理流程过程中,攻击者可至始至终提交初始的验证码发起攻击,造成服务器资源大量浪费。
漏洞范围:
风险等级:
中危
修复建议:
1.用户输入验证码,点击提交后,后端再对输入的验证码进行校验,若检测到验证码为空或验证码输入有误都返回用户验证码不正确;
2.验证码后端校验完毕后,不论是否登录成功,需要再次调用验证码生成函数,验证码都刷新一次;
3.验证码应与提交的数据关联,并在服务器端对验证码的有效性进行校验。

1.6.2 短信轰炸

漏洞分析:
1.由于没有对短信或者邮件发送次数进行限制,在测试的过程中,对短信验证码接口进行重放,导致可无限次发送短信或邮件给用户,造成短信轰炸,进而可能被大量用户投诉,并且造成短信验证码接口的资源浪费。
2.该系统短信发送验证码接口只对单个手机号的短时间重复发送做了限制,但是并未对单个IP短时间内给多个不同手机号发送验证码次数进行限制,因此可导致短信接口发送大量无效信息消耗资源。
漏洞范围:
风险等级:
中危
修复建议:
1.建议在发送短信前增加人机验证机制,如验证码,验证通过后再调用短信发送接口进行短信发送;
2.后台限制同一个手机号发送短信的时间间隔,不允许频繁操作;
3.获取用户真实ip,每个ip限制最大发送次数。在短时间内超过限制最大发送次数则拒发送。

1.6.3 任意用户注册

漏洞分析:
使用注册功能时,系统需要输入手机验证码,输入他人手机号,验证码会显示在回应包中,这样无论输入谁的手机号,都可以获得其验证码,注册他人手机号,让他人无法进行正常注册。(描述根据情况修改)
网站未对注册身份进行校验核实,攻击者可使用任意虚假身份进行注册登录网站,获取网站内部信息,进一步对网站进行攻击。
漏洞范围:
风险等级:
中危
修复建议:
1.建议在响应包中去掉短信验证码,该信息不需要返回在响应包中。

1.6.4 任意密码重置

漏洞分析:
通过手机“找回密码”时一般需要短信验证码验证,输入正确的手机号,发现其验证码显示在响应包中,使用响应包中的验证码成功重置了任意用户的密码,这会对系统正常用户的业务处理造成影响。
漏洞范围:
风险等级:
中危
修复建议:
1.建议在响应包中去掉短信验证码,该信息不需要返回在响应包中;
2.请检查后端代码,该系统在正常找回密码时手机号无法收到验证码短信。

1.6.5 批量注册

漏洞分析:
注册界面未设置验证码与唯一身份识别等机制,攻击者可批量注册大量的垃圾注册信息提交到后台,导致数据库资源浪费。
漏洞范围:
风险等级:
中危
修复建议:
1.完善注册界面要填写的信息,在注册页面增加验证码、邮箱认证等机制。

1.6.6 限制条件绕过

漏洞分析:
系统对用户的权限检查逻辑不严谨,将权限验证结果返回在响应包中,可以修改响应包,且未进行后端二次校验,导致某些功能点处的限制可绕过,如:绕过时间限制提交申请、绕过权限限制访问页面等。
漏洞范围:
风险等级:
低危
安全建议:
采用HTTPS协议传输数据。

1.6.7 并发漏洞

漏洞分析:
并发漏洞,常属于逻辑业务中的漏洞类型,例如攻击者通过并发http/tcp请求而达到次获奖、多次收获、多次获赠等非正常逻辑所能触发的效果。
漏洞范围:
风险等级:
中危
修复建议:
对数据库操作加锁

1.7 常见中间件漏洞

1.7.1 apache-ajp文件包含(CVE-2020-1938)

漏洞分析:
该漏洞是由于TomcatAJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。
漏洞范围:
风险等级:
高危
修复建议:
1.更新到如下Tomcat 版本:
Tomcat 7 7.0.0100、Tomcat 8 8.5.51、Tomcat 9 9.0.31;
2.若不需要使用Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机localhost。

1.7.2 Struts2远程代码执行

漏洞分析:
Struts2远程命令执行主要是由于网站采用较低版本的Struts2框架,该框架低版本在处理远程客户端参数名、参数值、文件名参数等参数内容时没有经过严格的过滤,导致可注入到OGNL表达式中,从而造成任意代码执行漏洞。攻击者可通过构造恶意的OGNL表达式从而实现任意命令执行,最终可通过该漏洞完全获得网站权限甚至操作系统权限。
漏洞范围:
https://mcxxy.nju.edu.cn/getstannouncementTableList
风险等级:
紧急
修复建议:
1.Struts2远程命令执行漏洞涉及多个漏洞编号,如S2-005、S2-008、S2-009、S2-016、S2-020、S2-029、S2-032、S2-037、S2-045、S2-046、S2-052、S2-055等等,根据实际情况,建议升级Struts2框架至最新版本即可。如:
系统存在S2-016 Struts2远程命令执行漏洞,建议升级升级Struts2框架至最新版本。

1.7.3 weblogic漏洞CVE-2020-14883

漏洞分析:
远程攻击者可以构造特殊的HTTP请求,在未经身份验证的情况下接管 WebLogic Server Console。
漏洞范围:
风险等级:
高危
修复建议:
1.升级补丁:oracle官网发布的补丁:
https://www.oracle.com/security-alerts/cpuoct2020traditional.html
2. 将该weblogic服务端口限制,只允许特定IP进行访问。

1.7.4 weblogic漏洞CVE-2020-14882

漏洞分析:
未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET请求,利用该漏洞在受影响的 WebLogic Server 上执行任意代码。
漏洞范围:
风险等级:
高危
修复建议:
1.升级补丁:oracle官网发布的补丁:
https://www.oracle.com/security-alerts/cpuoct2020traditional.html
2. 将该weblogic服务端口限制,只允许特定IP进行访问。

1.7.5 (CVE-2019-2725)Weblogic反序列化远程代码执行漏洞

漏洞分析:
Oracle WebLogic Server是美国甲骨文(Oracle)公司开发的一款适用于云环境和传统环境的应用服务中间件,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。 部分版本WebLogic中默认包含的wls9_async_response包,为WebLogic Server提供异步通讯服务。由于该WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心构造的恶意 HTTP 请求,获得目标服务器的权限,在未授权的情况下远程执行命令。
漏洞范围:
风险等级:
高危
修复建议:
目前, Oracle官方未发布漏洞补丁,但可以通过临时解决措施缓解漏洞造成的危害,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。 通过访问策略控制禁止 /_async/* 路径的URL访问,此操作可能会造成业务系统无法正常使用,可通过白名单机制允许授权用户访问。
建议使用WebLogic Server构建网站的信息系统运营者进行自查,发现存在漏洞后,按照临时解决方案及时进行修复。

1.7.6 (CVE-2018-2628)Weblogic WLS Core Components 反序列化命令执行漏洞

漏洞分析:
Oracle WebLogic Server WLS核心组件远程代码执行漏洞(CNNVD-201804-803、CVE-2018-2628),攻击者可以在未经授权的情况下,远程发送攻击数据,通过T3协议在WebLogic Server中执行反序列化操作,反序列过程中会远程加载RMI registry,加载回来的registry又会被反序列化执行,最终实现了远程代码的执行。
漏洞范围:
风险等级:
高危
修复建议:
目前,Oracle官方已经发布补丁修复该漏洞,请用户及时检查产品版本,如确认受到漏洞影响,请尽快安装补丁进行防护。
Oracle官方更新链接如下: http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html
临时解决方案 通过设置weblogic.security.net.ConnectionFilterImpl默认连接筛选器,对T3/T3s协议的访问权限进行配置,阻断漏洞利用途径。具体如下: (a)进入WebLogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。 (b)在连接筛选器中输入:WebLogic.security.net.ConnectionFilterImpl,在连接筛选器规则中输入: 7001 deny t3 t3s (c)保存后规则即可生效,无需重新启动。

1.7.7 (CVE-2020-2555)ORACLE COHERENCE反序列化远程代码执行

漏洞分析:
2020年1月15日,Oracle官方发布了2020年1月关键补丁更新公告,修复了334个不同程度的漏洞。其中包括一个Oracle Coherence反序列化远程代码执行漏洞(CVE-2020-2555),CVSS评分为9.8;该漏洞允许未经身份验证的攻击者通过构造T3网络协议请求进行攻击,成功利用该漏洞可实现在目标主机上执行任意代码。使用了Oracle Coherence库的产品受此漏洞影响,在WebLogic Server 11g Release(10.3.4)及以上版本的安装包中默认集成了Oracle Coherence库。
漏洞范围:
风险等级:
高危
修复建议:
目前官方已针对受支持的产品版本发布了修复该漏洞的安全补丁,请受影响的用户尽快安装进行防护,下载链接:
https://support.oracle.com/rs?type=doc&id=2602410.1

1.7.8 Apache shiro反序列化命令执行

漏洞分析:
Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookierememberMe字段内容分别进行序列化、AES加密、Base64编码操作。但是,AES加密的密钥Key被硬编码在代码里,意味着每个人通过源代码都能漏洞描述拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。
漏洞范围:
风险等级:
高危
修复建议:
目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://shiro.apache.org

1.7.9 fastjson反序列化命令执行

漏洞分析:
fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕过autoType限制,风险影响较大。
漏洞范围:
风险等级:
高危
修复建议:
升级方案
升级到最新版本1.2.69或者更新的1.2.70版本。
1.2.69 https://github.com/alibaba/fastjson/releases/tag/1.2.69
1.2.70 https://github.com/alibaba/fastjson/releases/tag/1.2.70
如果遇到兼容问题,原地升级sec10版本。
1.1.15~1.1.31 -> 1.1.31.sec10
1.1.32~1.1.33 -> 1.1.33.sec10
1.1.34 -> 1.1.34.sec10
1.1.35~1.1.46 -> 1.1.46.sec10
1.2.0~1.2.2 -> 1.2.2.sec10 因为1.2.3之后的版本Map是没有排序输出的,如果不关注这个兼容问题,升级到1.2.70
1.2.3~1.2.7 -> 1.2.7.sec10 因为1.2.7使用最多特别提供,也可以直接使用1.2.8.sec10
1.2.8 -> 1.2.8.sec10
1.2.9~1.2.29 -> 1.2.29.sec10
1.2.30~1.2.48 -> 1.2.48.sec10
1.2.49~1.2.68 -> 1.2.691.2.70 中间有很多sec10小版本,建议直接升级到1.2.69或1.2.70,如果遇到兼容再考虑sec10版本
如果还遇到其他兼容问题,这里有更多的sec10版本 https://repo1.maven.org/maven2/com/alibaba/fastjson/
fastjson加固
fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可一定程度上缓解反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)
开启方法参考:
https://github.com/alibaba/fastjson/wiki/fastjson_safemode

1.7.10 JBOSS远程代码执行

漏洞分析:
JBOSS默认配置会有一个后台漏洞,漏洞发生在jboss.deployment命名空间,中的addURL()函数,该函数可以远程下载一个war压缩包并解压。如果压缩包里含有webshell文件,是直接可以解析的。
漏洞范围:
风险等级:
高危
修复建议:
临时漏洞修补办法:给jmx-console加上访问密码
1.在 ${jboss.server.home.dir}/deploy下面找到jmx-console.war目录编辑WEB-INF/web.xml文件去掉 security-constraint 块的注释,使其起作用
2.编辑WEB-INF/classes/jmx-console-users.properties或server/default/conf/props/jmx-console-users.properties (version >=4.0.2)和 WEB-INF/classes/jmx-console-roles.properties
或server/default/conf/props/jmx-console-roles.properties(version >=4.0.2) 添加用户名密码
3.编辑WEB-INF/jboss-web.xml去掉 security-domain 块的注释 ,security-domain值的映射文件为 login-config.xml (该文件定义了登录授权方式)

1.7.11 Redis未授权访问

漏洞分析:
Redis未授权访问主要是由于默认安装的情况下并未对Redis配置身份校验功能,导致攻击者可非法访问Redis下的数据信息,同时可进一步通过配置文件功能对服务器文件进行写入,如写入SSH密钥或计划任务,从而获得服务器的控制权限。
漏洞范围:
6379端口
风险等级:
高危
修复建议:
1.以低权限运行Redis服务,严禁使用root用户等高权限用户运行Redis服务;
2.修改redis.conf,为Redis添加密码验证;
3.修改redis.conf,禁止外网访问Redis,使得Redis服务只在当前主机可用。

1.7.12 Jenkins CLI远程代码执行漏洞(CNNVD-201611-384)

漏洞分析:
CloudBees Jenkins是美国CloudBees公司的一款基于Java开发的开源的、可持续集成的自动化服务器,它主要用于监控持续的软件版本发布/测试项目和一些定时执行的任务。LTS(Long-Term Support)是CloudBees Jenkins的一个长期支持版本。 CloudBees Jenkins 2.31及之前的版本和Jenkins LTS 2.19.2及之前的版本中存在远程代码执行漏洞(漏洞编号:CNNVD-201611-384,CVE-2016-9299)。攻击者可通过传输恶意的序列化Java对象利用该漏洞执行任意代码,绕过保护机制。
漏洞范围:
风险等级:
高危
修复建议:
目前,Jenkins官方已发布针对该漏洞的修复版本,并且,该漏洞细节及利用方式已在互联网上公布,请受影响的用户尽快升级至最新版本以消除漏洞影响。
1. Jenkins main line用户应升级至2.32版本
2. Jenkins LTS用户应升级至2.19.3版本
Jenkins公告链接:
https://jenkins.io/blog/2016/11/16/security-updates-addressing-zero-day/

1.7.13 IBM WebSphere Application Server远程代码执行漏洞

漏洞分析:
IBM WebSphere Application Server(WAS)是美国IBM公司的一款应用服务器产品。该产品是JavaEE和Web服务应用程序的平台,也是IBM WebSphere软件平台的基础。该漏洞是由于IIOP协议上的反序列化造成,未经身份认证的攻击者可以通过IIOP协议远程攻击IBM WebSphere服务器,在目标服务端执行任意代码,获取系统权限,进而完全控制服务器。
漏洞范围:
风险等级:
高危
修复建议:
目前,IBM官方已经发布补丁修复了漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。
IBM官方更新链接如下:
https://www.ibm.com/support/pages/node/6220276

1.7.14 tomcat默认后台登录

站点信息的更新通常通过后台管理来实现的,Web应用程序开发者或者站点维护者可能使用常规的后台地址名称来管理,比如html/manager等。攻击者可能通过使用上述常用的地址尝试访问目标站点,获取站点的后台管理地址。攻击者一旦破解口令,直接可上传后门文件获取网站文件管理权限。
安全建议:
设置允许访问后台的IP列表,防止被暴力猜解,并为Tomcat管理用户设置一个较强的密码。
如不使用,请对该页面进行限制访问。

1.8 主机漏洞

1.8.1 CVE-2019-0708

漏洞分析:
该漏洞允许未经身份验证的攻击者使用远程桌面服务连接到目标系统并发送精心设计过的请求,利用其身份预认证、不需要用户交互确认同意接收连接的缺陷,即可在目标系统上执行任意代码,涵盖但不限于安装程序,查看、更改或删除目标系统内数据,或创建具有完全用户权限的新账户。
漏洞范围:
风险等级:
紧急
修复建议:
1. 安装微软的安全更新来给系统打上安全补丁:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708
2.已不受微软更新支持的系统Windows Server 2003和Windows XP提供的安全更新下载地址为:
https://support.microsoft.com/zh-cn/help/4500705/customer-guidance-for-cve-2019-0708;
3.若用户不需要用到远程桌面服务,建议禁用该服务;
4.开启网络级别身份验证(NLA),此方案适用于Windows 7, Windows Server 2008, Windows Server 2008 R2。

1.8.2 (CVE-2020-0796)微软SMB远程代码执行漏洞

漏洞分析:
SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。 攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。该漏洞的后果十分接近永恒之蓝系列,都利用Windows SMB漏洞远程攻击获取系统最高权限,WannaCry勒索蠕虫就是利用永恒之蓝系列漏洞攻击工具制造的大灾难。除了直接攻击SMB服务端造成RCE外,该漏洞得亮点在于对SMB客户端的攻击,攻击者可以构造特定的网页,压缩包,共享目录,OFFICE文档等多种方式触发漏洞进行攻击。 该漏洞并未出现在微软3月的例行更新列表,有国外安全厂商意外发布了有关该漏洞存在的消息,随后引发行业关注。
漏洞范围:
风险等级:
高危
修复建议:
1. 微软已经发布了此漏洞的安全补丁,访问如下链接: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796 2. 如果暂时无法安装补丁,微软当前建议按如下临时解决方案处理: 执行以下命令 :
Set-ItemProperty-Path”HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters”DisableCompression -Type DWORD -Value 1 -Force
禁用SMB 3.0的压缩功能,是否使用需要结合自己业务进行判断

1.8.3 永恒之蓝(MS17010)

漏洞分析:
该网段一台主机存在MS17-010永恒之蓝漏洞,永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞,未经身份验证的远程攻击者可以通过特制数据包利用该漏洞执行任意代码
漏洞范围:
风险等级:
高危
修复建议:
1.安装最新的安全补丁,微软已发布补丁MS17-010修复了“永恒之蓝”攻击的系统漏洞,https://technet.microsoft.com/zh-cn/library/security/MS17-010。
2.关闭445、135、137、138、139端口,关闭网络共享。

1.8.4 远程桌面协议RDP远程代码执行漏洞(MS12-020)

漏洞分析:
2012年3月13日微软发布重要安全公告MS12-020,级别为严重。远程桌面中的漏洞可能允许远程执行代码 (2671387),如果攻击者向受影响的系统发送一系列特制 RDP 数据包,则这些漏洞中较严重的漏洞可能允许远程执行代码。
漏洞范围:
风险等级:
高危
修复建议:
1、建议及时更新和安装补丁。
2、如非必要,请关闭远程桌面功能。

1.9 其他

1.9.1 URL重定向

漏洞分析:
网站接受用户输入的链接,跳转到一个攻击者控制的网站,可能导致跳转过去的用户被精心设置的钓鱼页面骗走自己的个人信息。
漏洞范围:
风险等级:
中危
修复建议:
1.代码固定跳转地址,不让用户控制变量;
2.跳转目标地址采用白名单映射机制;
3.校验跳转的目标地址,非己方地址时告知用户跳转风险。

1.9.2 疑似失陷资产

风险分析:
监测发现xxx存在恶意网络攻击行为,疑似被黑客攻陷和控制。请对服务器进行排查,是否有木马病毒存在,如存在,请及时清除。
风险截图:
漏洞范围:
风险等级:
紧急
修复建议:
1.登录对应设备,确认是否存在异常进程、操作、服务、启动项等;
2.全盘查杀并删除木马病毒等相关恶意文件;
3.为避免恶意程序横向传播,请立即下线设备并对该网段其他服务器也进行排查工作;
4.排查服务器的应用与服务是否存在安全风险,如ssh或数据库弱口令、网站安全漏洞等,对发现的安全风险及时进行修补。

1.9.3 疑似远程控制

风险分析:
经安全监测,发现xxx多次请求恶意域名,疑似被远程控制,除此之外,可能也存在挖矿行为,这种情况通常是中了木马,请及时排查。
风险截图:
域名威胁情报信息:
漏洞范围:
风险等级:
紧急
安全建议1:
1.登录对应设备,确认是否存在异常进程、服务、启动项等,必要时及时切断网络连接以免恶意程序横向传播;
2.全盘查杀并删除木马等相关恶意文件。
安全建议2:
1.登录对应设备,确认是否存在异常进程、操作、服务、启动项等;
2.全盘查杀并删除木马等相关恶意文件;
3.为避免恶意程序横向传播,请立即下线设备并对该网段其他服务器也进行排查工作。

1.9.4 疑似挖矿行为

风险分析:
经安全监测,发现xxx与矿池有交互通信的行为,疑似中了挖矿木马,请及时排查。
风险截图:
矿池威胁情报信息:
漏洞范围:
风险等级:
紧急
安全建议1:
1.登录对应设备,确认是否存在异常进程、服务、启动项等,必要时及时切断网络连接以免恶意程序横向传播;
2.全盘查杀并删除木马等相关恶意文件。
安全建议2:
1.登录对应设备,确认是否存在异常进程、操作、服务、启动项等;
2.全盘查杀并删除木马等相关恶意文件;
3.为避免恶意程序横向传播,请立即下线设备并对该网段其他服务器也进行排查工作。

1.9.5 不良外链/暗链

漏洞分析:
这些不良外链(暗链)通常指向了一些不安全的网站,用户很可能会被欺骗访问到钓鱼网站,蒙受经济损失。
漏洞范围:
(因数量较多,以下仅为示例)
(由于漏洞存在的位置不止一处,请对全局进行排查修复)
风险等级:
高危/紧急
修复建议:
1.尽快删除不良外链(处理暗链),并确认是否还有其他不良外链(暗链)的残存;
2.因不清楚不良外链(暗链)存在缘由,请对服务器和系统代码进行全面查杀和检查,同时更新服务器补丁,升级可能存在漏洞的组件。

1.9.6 双非资产

资产分析:
网站名称为“XXX”,该网站域名不属于xxx,IP归属也不属于xxx,属于双非资产。
修复建议:
1.请尽快下线双非资产或迁移至校内网站群;
2.如经确认不是xxx资产,请删除网站上有关xxx的字样和标识。

1.9.7 网站存在后门木马

漏洞分析:
经检测,XX网站(URL:XX,IP:XX)存在后门木马,服务器已经沦陷。
漏洞范围:
风险等级:
紧急
修复建议:
1.删除该木马文件;
2.对服务器进行全面扫描,清除其他潜在木马后门;
3.对网站进行安全检测,并修补漏洞;
4.严重情况下建议重装服务器并重新部署网站。

1.9.8 缓慢的HTTP拒绝服务攻击

漏洞分析:
攻击者通过缓慢地将HTTP请求分段发送给Web服务器,一次发送一次。如果HTTP请求未完成,或者传输速率非常低,则服务器将使其资源繁忙,以等待其余数据。当服务器的并发连接池达到最大值时,会创建一个DoS攻击。
漏洞范围:
风险等级:
中危
修复建议:
1.使用URL不支持的HTTP方法拒绝/删除连接;
2.将标头和消息正文限制为最小合理长度。为每个接受消息正文的资源设置更严格的URL特定限制;
3.设置绝对连接超时。根据连接长度统计信息指定一个超时值,例如,超时值略大于连接的中值生存期,应该可以满足大多数合法客户端的要求;
4.如果服务器支持积压,建议将其设置为足够大,以便HTTP服务器可以处理较小的攻击;
5.定义最小传入数据速率,并删除比该速率慢的连接。注意不要将最小值设置得太低,否则可能会丢失合法连接。

1.9.9 输入框自动填充

漏洞分析:
在源代码中可以看到该系统的用户名和密码,并且攻击者不需要自己输入用户名和密码即可进入系统,对系统内的数据进行查阅或更改,严重则可获得服务器权限。
漏洞范围:
风险等级:
紧急
修复建议:
1.严禁将用户名密码等存放到前端页面;
2.敏感信息输入框禁用自动填充。

1.9.10 未使用HTTPS

漏洞分析:
本网站未使用HTTPS协议传输数据。HTTP协议采用明文的方式传输数据,可能导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题。HTTPS 可以解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输安全。
漏洞范围:
风险等级:
低危
安全建议:
采用HTTPS协议传输数据。

1.9.11 未配置X-XSS-Protection

漏洞分析:
因Web应用程序编程或配置不安全,导致缺少“X-XSS-Protection”头,可能产生跨站脚本攻击等隐患。HTTP XSS-Protection响应标头是Internet Explorer,Chrome和Safari的功能,当页面检测到反射的跨站点脚本(XSS)攻击时,该页面将阻止加载页面。
漏洞范围:
风险等级:
低危
安全建议:
推荐配置:X-XSS-Protection: 1; mode=block
Nginx:
add_header “X-XSS-Protection” “1; mode=block”;
Apache (.htaccess):

Header set X-XSS-Protection “1; mode=block”

PHP:
header(“X-XSS-Protection: 1; mode=block”);

1.9.12 未配置Content-Security-Policy(CSP)

漏洞分析:
因Web应用程序编程或配置不安全,导致HTTP响应缺少”Content-Security-Policy”头,可能产生跨站脚本攻击等隐患,可能会收集有关Web应用程序的敏感信息,如用户名、密码、卡号或敏感文件位置等。
漏洞范围:
风险等级:
低危
安全建议:
将服务器配置为使用安全策略的”Content-Security-Policy”头。
1. 在web.config 配置文件中添加如下HTTP响应头:







2. 使用meta标签:

1.9.13 未配置X-Frame-Options

漏洞分析:
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 ,