0


漏洞介绍及修复建议(漏洞汇总,建议收藏后期会不断更新)

可直接进行复制使用:

保存格式为.md文件会自动生成标题,不过需要使用支持.md的编辑器打开,博主使用的是Typora(一款 Markdown 编辑器和阅读器)。

# 漏洞介绍以及修复建议

# 未分类

## Host 头攻击(高危)

*介绍:*

对开发人员来说,提取请求头中的Host参数写入当前页面是一个很不明智的选择。因为如果这样,攻击者就可以通过修改HTTP请求头中的Host字段,控制服务器返回页面中的URL。

修复:

不允许读取Host字段并写入页面。如有需要,应使用服务器脚本自带的SERVER_NAME变量。

## 域名访问限制不严格(高危)

*介绍:*

目标存在域名访问限制不严格漏洞,Http请求的Hostname字段没有严格的域名限制,导致可以绕过一些防护措施。

修复:

配置WEB服务器,限制只能以域名形式访问服务器。

## **URL 重定向(中危)**

*介绍:*

URL 重定向 (URLredirection) 漏洞,又称跳转漏洞,指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中使用该链接。该安全漏洞给网络钓鱼攻击提供了极大的便利。

*修复:*

1.referer的限制
如果确定传递URL参数进入的来源,可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接。
2.加入有效性验证Token
保证所有生成的链接都是来自于可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用。
3.URL白名单,在白名单内才进行跳转

## 会话劫持漏洞**(中危)**

*介绍:*

攻击者通过暴力破解、预测或者窃取(网络嗅探/XSS攻击)等方式获取用户Session  ID后,使用该Session ID登录目标账号的攻击方法。

*修复:*

1.更改Session名称。PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,阻挡部分攻击。
2.关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。
3.设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。
4.关闭所有phpinfo类dump request信息的页面。
5.使用User-Agent检测请求的一致性。但有专家警告不要依赖于检查User-Agent的一致性。这是因为服务器群集中的HTTP代理服务器会对User-Agent进行编辑,而本群集中的多个代理服务器在编辑该值时可能会不一致。

## 会话固定漏洞**(中危)**

*介绍:*

会话固定也可以看成是会话劫持的一种类型,原因是会话固定的攻击的主要目的同样是获得目标用户的合法会话,不过会话固定还可以是强迫受害者使用攻击者设定的一个有效会话,以此来获得用户的敏感信息。

*修复:*

1.用户登录时生成新的Session ID。如果攻击者使用的会话标识符不是有效的,那么这种方式将会非常有效。如果不是有效的会话标识符,服务器将会要求用户重新登录。如果攻击者使用的是有效的Session ID,那么还可以通过校验的方式来避免攻击。
2.大部分防止会话劫持的方法对会话固定攻击同样有效。如设置HttpOnly,关闭透明化Session ID,User-Agent验证,Token校验等。

## **DNS 域传送漏洞(中危)**

*介绍:*

DNS区域传送(DNS  zone  transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库,一般来说,DNS区域传送操作只在网络里真的有备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息。

*修复:*

针对域传送漏洞,建议通过定义ACL(访问控制列表)来限制在域名服务器之间的区域传送,通常可编辑/etc/named.conf中allow-transfer参数。存在漏洞的是ns1.com,  如果其他ns2、ns3、ns4是备用dns服务器,那么应该只允许域传送至其他对应的地址。配置如下:     allow-transfer { localhost; ns2的IP; ns3的IP; ns4的IP;};

## **检测到网站被黑痕迹(高危)**

*介绍:*

网站页面已被篡改或已有入侵痕迹。

*修复:*

清除网站木马,全面检测网站漏洞并及时修复。

## **传输层保护不足漏洞(中危)**

*介绍:*

传输层保护不足,会暴露传输的数据,导致数据被窃听,账号被盗等,如果是管理员的账号面临这个问题,那么将会导致整个网站处于数据暴露的状态,将对网站和用户造成严重的甚至无法挽回的损失。

*修复:*

1.对所有敏感的页面使用SSL,非SSL请求的页面应该被重定向到SSL请求的页面;

2.对所有敏感的Cookie,设置“secure”的flag;

3.保证SSL的提供商只支持强大的算法,这样就不能够被轻易破解;

4.确保您的证书是有效的,不过期,不被撤销,并匹配这个网站使用的所有域;

5.后台和其他的连接也应该使用SSL或其他加密技术;

6.即使是开发者的注释也应该很好的被保护,防止信息泄露。     

## **服务器启用了 TRACE  Method 方法 (中危)**

*介绍:*

恶意攻击者可以通过TRACE Method返回的信息了解到网站前端的一些信息,如缓存服务器等,从而为下一步的攻击提供便利;恶意攻击者可以通过TRACE Method进行XSS攻击;即使网站对关键页面启用了HttpOnly头标记和禁止脚本读取cookie信息,那么通过TRACE  Method恶意攻击者还是可以绕过这个限制读取到cookie信息。

*修复:*

禁用TRACE方法。

## **点击劫持漏洞(X-Frame-Options 头缺失)(中危)**

*介绍:*

通过覆盖不可见的框架误导受害者点击,受害者点击的是他所看到的网页,但其实他所点击的是被黑客精心构建的另一个置于原网页上面的透明页面。

*修复:*

设置X-Frame-Options值来防御利用iframe嵌套的点击劫持攻击。

## 启用了不安全的 HTTP 方法(启用了 OPTIONS 方法)(中危)

*介绍:*

开启了不安全的HTTP方法:DELTE/SEARCE/COPY,MOVE/PROPFIND/PROPPATCH/MKCOL/LOCK/UNLOCK/PUT,可能会在Web  服务器上上载、修改或删除Web 页面、脚本和文件。

*修复:*

如果服务器不需要支持WebDAV,请务必禁用它,或禁止不必要的HTTP  方法。

## **Tomcat 版本过低漏洞 (中危)**

*介绍:*

Tomcat由于版本过低存在安全漏洞。

*修复:*

升级Tomcat版本或及时打补丁。

## **Apache  Tomcat 示例目录漏洞 (中危)**

*介绍:*

tomcat安装时默认的演示、文档页面,会造成信息泄露和XSS跨站脚本漏洞,攻击者可以创建、销毁或控制session。

*修复:*

删除相关功能演示页面。

## SpringBlade 框架默认 SIGN_KRY 秘钥(CVE-2021-44910)(高危)

*介绍:*

SpringBlade 是一个由商业级项目升级优化而来的SpringCloud分布式微服务架构、SpringBoot单体式微服务架构并存的综合型项目。SpringBlade 框架存在默认SIGN_KEY,攻击者可利用漏洞获取用户账号密码日志等敏感信息。

*修复:*

1、通过防火墙等安全设备设置访问策略,设置白名单访问;
2、如非必要,禁止公网访问该系统;
3、限制目录访问权限

## **SSL/TLS 服务器 Diffie-Hellman 公共密钥过弱漏洞(高危)**

*介绍:*

Diffie-Hellman 密钥交换是一种流行的加密算法,它允许 Internet 协议就共享密钥达成一致并协商安全连接。当服务器SSL/TLS的瞬 时Diffie-Hellman公共密钥小于等于1024位时,可能容易受到被动窃听攻击。

*修复:*

使用具有“安全”素数的2048位或更强的Diffie-Hellman组。可参考:https://weakdh.org/sysadmin.html

## **OpenSSL 远程内存泄露漏洞(心脏滴血漏洞)(高危)**

*介绍:*

OpenSSL是一款开放源码的SSL实现,用来实现网络通信的高强度加密。漏洞与OpenSSL  TLS/DTLS传输层安全协议heartbeat扩展组件(RFC6520)相关,因此漏洞又被称为“heartbleed  bug”(中文名称:“心血”漏洞)。该漏洞无需任何特权信息或身份验证,就可以获得X.509证书的私钥、用户名与密码、cookies等信息,进一步可直接从服务提供商和用户通讯中窃取聊天工具消息、电子邮件以及重要的商业文档和通信等私密数据。

*修复:*

升级OpenSSL版本到最新的1.0.1g;使用-DOPENSSL_NO_HEARTBEATS参数重新编译低版本的OpenSSL以禁用Heartbleed模块。

## Apache apisix 默认密钥漏洞(CVE-2020-13945)(高危)

*介绍*:

Apache APISIX 是一个动态、实时、高性能的 API 网关,基于 Nginx 网络库和 etcd 实现, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。当使用者开启了Admin API,没有配置相应的IP访问策略,且没有修改配置文件Token的情况下,则攻击者利用Apache APISIX的默认Token即可访问Apache APISIX,从而控制APISIX网关。

*修复*:

(1)修改Apache APISIX配置文件中 conf/config.yaml 的admin_key,禁止使用默认Token;
(2)若非必要,关闭Apache APISIX Admin API功能,或者增加IP访问限制;
(3)升级Apache APISIX 至最新版本。

# 弱口令登录类

## **弱口令(高危)**

*介绍:*

弱口令指的是仅包含简单数字和字母的口令,例如“123456”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的信息资产面临风险。攻击者可以直接利用该漏洞,获取访问权限。

*修复:*

1)不使用空口令或系统缺省的口令,因为这些口令众所周知,为典型的弱口令;
2)口令长度不小于8个字符;
3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.);
4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符;
5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词;
6)口令不应该为用数字或符号代替某些字母的单词;
7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入;
8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。

## FTP 弱口令(高危)

*介绍:*

攻击者可通过弱口令访问FTP服务器,获取服务器数据,从而控制服务器,获取服务器控制权限,进而对内网其他资产进行攻击。

*修复:*

(1)设置FTP权限,或添加白名单访问;
(2)禁用匿名登录。

## 任意用户密码重置漏洞(高危)

*介绍:*

系统在处理重置密码请求时使用本地验证方法,未在服务端处理,造成用户可在本地修改数据包,绕过系统身份验证,达到重置任意账号的目的。

*修复:*

针对任意用户密码重置漏洞,建议在服务器端加强逻辑验证。

## 验证码漏洞(高危)

*介绍:*

验证码可以一次多用,导致可以暴力破解,验证码没有限定次数和时间,导致可以无限制的发送验证码。

*修复:*

设置验证码登录一次,变换一次,防止暴力破解;设置验证码120秒只发送一次。

## 暴力破解漏洞(中危)

*介绍:*

登录入口没有验证码或者验证码可以一次多用,导致可以暴力破解。攻击者可能试图尝试每个可能的字母,数字和符号组合,或使用一些暴力破解工具进行猜测,直到它发现了一个正确的组合,从而进入登录页面做进一步深度非法攻击。

*修复:*

1.增加验证码,使之登录失败一次,验证码变换一次;
2.针对密码猜测,建议控制错误登录次数,以防止暴力破解。同一用户如果5分钟内登录失败6次,禁用此用户登录30分钟。

## 短信轰炸漏洞(中危)

*介绍:*

短信轰炸是由于系统设计缺陷可无限制发送短信验证码给客户端,攻击者可利用该漏洞对任意手机号码进行短信轰炸,对公司造成不良影响和运行安全风险。

*修复:*

建议针对发送短信验证码接口加强权限控制,在服务端限制单位时间内发送短信次数。

## 用户名猜解漏洞(中危)

*介绍:*

通过登录信息可以判断有无此用户,可以对用户名进行猜解。

*修复:*

使用模糊的错误登录提示,如:用户名或密码错误。

## SNMP 默认团体名漏洞(高危)

*介绍:*

由于很多操作系统或者网络设备的SNMP代理服务存在可读默认口令。如果这些默认口令没有修改或者为弱口令,远程攻击者就可以通过SNMP代理获取系统的很多细节信息。如果攻击者得到了可写口令,它甚至可以修改系统文件或者执行系统命令。

*修复:*

针对SNMP信息泄露漏洞,建议修改SNMP缺省口令或者关闭SNMP服务。

# 敏感信息泄漏

## **源码信息泄漏(高危)**

*介绍:*

网站源代码文件泄露指管理员误将网站备份压缩文件或是敏感信息文件存放在某个网站目录下。
攻击者可以利用该漏洞下载网站源代码,并对源代码进行分析获取信息系统的敏感信息(如数据库等),进而可直接攻击、控制服务器。

*修复:*

1、不要在网站目录下存放网站备份文件或包含敏感信息的文件;
2、如需存放该类文件,请将文件名命名为难以破解的字符串,并进行文件加密;
3、使用软件WAF或硬件WAF防护;
4、提升网站管理员安全意识。

## **错误页面信息泄露(应用程序错误信息)(中危)**

*介绍:*

攻击者可以根据错误或警告消息收集服务器信息。

*修复:*

1.关闭web服务器错误提示;
2.关闭运行平台的错误提示;
3.建立错误机制,不要把真实的错误反馈给访问者。捕获后台抛出的异常,制定异常固定跳转页面,如500错误,跳转到相应页面,例如“系统异常请与管理员联系”,403异常,找不到页面等等。

## **目录遍历(高危)**

*介绍:*

攻击者通过不指定url中的具体文件,来查看某个目录下的所有文件和目录结构。

*修复:*

针对目录遍历漏洞,建议通过修改配置文件,去除Web  容器(如Apache)的文件目录索引功能。

## **IIS 短文件名漏洞(中危)**

*介绍:*

Microsoft  IIS在实现上存在文件枚举漏洞,攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。

*修复:*

针对IIS短文件名漏洞,建议禁止url中使用“~”或它的Unicode编码,或关闭windows的8.3格式功能。

## robots.txt 文件泄露**(中危)**

*介绍:*

泄露网站敏感信息,包括网站的后台页面或其它隐私页面。

*修复:*

1.robots.txt 文件不应用来保护或隐藏信息;
2.应该将敏感的文件和目录移到另一个隔离的子目录,以便将这个目录排除在 Web Robot 搜索之外。如下列示例所示,将文件移到“folder”之类的非特定目录名称是比较好的解决方案: New directory structure: /folder/passwords.txt /folder/sensitive_folder/ 
New robots.txt: User-agent: * Disallow: /folder/ ;
3.如果您无法更改目录结构,且必须将特定目录排除于 Web Robot 之外,在 robots.txt 文件中,请只用局部名称。虽然这不是最好的解决方案,但至少它能加大完整目录名称的猜测难度。例如,如果要排除“sensitive_folder”和 “passwords.txt”,请使用下列名称(假设 Web 根目录中没有起始于相同字符的文件或目录): robots.txt: User-agent: * Disallow: /se Disallow: /pa。

## PHP 探针信息泄露**(中危)**

*介绍:*

PHP探针文件会导致网站敏感信息泄露

*修复:*

删除默认安装PHP探针文件。

## PHPINFO 页面泄露**(中危)**

*介绍:*

泄露网站服务器敏感信息,包括网站物理路径、PHP版本、服务器信息及环境变量等。

*修复:*

1.通过修改服务器环境内php.ini文件,将“expose_php = On”修改成“expose_php = Off”然后重启php即可;
2.如果确实需要该测试信息,在测试时使用,测试完毕后将该文件删除掉;
3.若无需要可以将一些php的危险函数禁用,打开/etc/php.ini文件,查找到 disable_functions,添加需禁用的以下函数名:phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen。

## 未加密的登录请求**(低危)**

*介绍:*

检测中发现登录请求(例如:用户名、密码、电子邮件地址、社会安全号码等)被发送到服务器的过程中并未采用通讯加密协议或加密。恶意人员可通过数据截包实现网站管理员用户名、密码信息的截获。

*修复:*

注册或登录时,客户发送请求敏感信息进行加密,例如密码、电话、邮件等敏感信息进行加密传输。

## **致远 OA A6 员工敏感信息泄露(中危)**

*介绍:*

seeyon OA A6版本存在敏感信息泄露漏洞,攻击者可构造payload,获取敏感信息。

*修复:*

限制用户访问权限

## **Dedecms-cve-2018-6910 信息泄露漏洞(中危)**

*介绍:*

DesdevDedeCMS(织梦内容管理系统)是中国卓卓网络(Desdev)科技有限公司的一套开源的集内容发布、编辑、管理检索等于一体的PHP网站内容管理系统(CMS)。DesdevDedeCMS版本中存在信息泄露漏洞。远程攻击者可通过对include/downmix.inc.php或inc/inc_archives_functions.php文件发送接请求利用该漏洞获取完整路径。

*修复:*

修改应用程序源代码,以避免信息泄漏。

## Solr admin 信息泄露(高危)

*介绍:*

网站存在Apache Solr 敏感信息泄露漏洞

*修复:*

1、修改网站默认管理界面路径;
2、对敏感路径设置访问权限只允许白名单访问;
3、禁用没有必要敏感目录。

## SSL/TLS RC4 信息泄露漏洞 CVE-2013-2566(高危)

*介绍:*

安全套接层(Secure Sockets Layer,SSL),一种安全协议,是网景公司(Netscape)在推出Web浏览器首版的同时提出的,目的是 为网络通信提供安全及数据完整性。SSL在传输层对网络连接进行加密。传输层安全(Transport Layer Security),IETF对SSL协议标 准化(RFC 2246)后的产物,与SSL 3.0差异很小。SSL/TLS内使用的RC4算法存在单字节偏差安全漏洞,可允许远程攻击者通过分 析统计使用大量相同明文的大量会话,利用此漏洞恢复纯文本信息。

*修复:*

1、禁止apache服务器使用RC4加密算法;
2、关于lighttpd加密算法,在配置文件lighttpd.conf中禁用RC4算法;
3、windows系统建议参考官网链接修复:
https://support.microsoft.com/en-us/help/2868725/microsoft-security-advisory-update-for-disabling-rc4

## ThinkPHP 信息泄漏(中危)

*介绍*:

ThinkPHP的默认页面存在信息泄漏问题,允许攻击者从 index.php 访问所有系统环境参数。

*修复*:

1、严格控制访问参数,修改因客户端参数请求报错,泄漏系统参数信息;

2、升级thinkPHP版本。

## LARAVEL 敏感信息泄漏(高危)

*介绍*:

在 laravel 框架的根目录下存在配置文件,该文件存储了 debug 的配置、mysql账号密码、邮箱账号密码、redis 密码等信息。如果访问控制不当会导致文件泄露敏感信息。

*修复*:

关闭 laravel 配置文件中的调试功能,在 .env 文件中找到 APP_DEBUG=true,将 true 改为 false。

# 未授权访问类

## 未授权访问(高危)

*介绍*:

后台页面或者其他用户页面没有做session认证,导致可以无需登录,直接访问页面。

*修复*:

对未授权访问页面做session认证,严格审核后台功能页面的访问权限,若为未登录用户则拒绝访问。

## 越权漏洞(高危)

*介绍*:

水平越权:攻击者能够执行与自己同级别权限用户的操作     垂直越权:攻击者能够执行高级别权限用户的操作,比如管理员的相关操作。

*修复*:

1.设计严格的权限控制系统,对于每个请求和URL都要进行校验和权限确认,防止非法请求被执行;
2.默认情况下,应该拒绝执行所有访问权限,也就是说缺省不给用户任何权限,防止攻击者利用缺省权限执行攻击等;
3.对于每个功能的访问,都要有明确的角色授权,防止黑客利用不完善的访问控制缺陷造成不必要的损失;
或者是实现Web访问的IP白名单列表,或者是只允许属于管理员范围权利的指定IP访问等等。

## Memcached  未授权访问漏洞(高危)

*介绍*:

由于memcached安全设计缺陷,客户端连接memcached服务器后无需认证就可读取、修改服务器缓存内容。

*修复*:

1.配置memcached监听本地回环地址127.0.0.1;
2.当memcached配置为监听内网IP或公网IP时,使用主机防火墙(iptalbes、firewalld等)和网络防火墙对memcached服务端口进行过滤。

## Rsync 未授权访问漏洞(高危)

*介绍*:

rsync是类unix系统下的数据镜像备份工具,如果配置不当,可导致攻击者匿名访问rsync程序,进一步进行增删改等操作。

*修复*:

建议两种方式防御,一是限定访问的IP,另一个是不允许匿名访问,添加用户口令。

## Cisco vpn 未授权访问(高危)

*介绍*:

Cisco  Adaptive Security Appliance (ASA) Software在Clientless SSL  VPN入口自定义框架在实现上存在安全漏洞,未经身份验证的远程攻击者可利用此漏洞修改Clientless SSL  VPN入口内容,导致窃取凭证、跨站脚本及其他攻击。此漏洞源于没有正确实现Clientless SSL VPN入口自定义框架内的身份验证检查。

*修复*:

建议升级思科最新发布的补丁:http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20141008-asa

## Mongodb 数据库未授权访问漏洞(高危)

*介绍*:

Mongodb在启动的时候未设置  –auth参数,造成恶意攻击者可使用默认空口令登陆到数据服务器。

*修复*:

建议增加数据库用户校验或限制设备登录IP地址,限制未授权访问。

## Redis 数据库未授权访问漏洞(高危)

*介绍*:

Redis  默认情况下会绑定在 0.0.0.0:6379,这样将会将 Redis  服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis  的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis的相关方法,可以成功在 Redis  服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。

*修复*:

1.配置bind选项,限定可以连接Redis服务器的IP,修改 Redis 的默认端口6379;
2.配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中;
3.配置rename-command 配置项 “RENAME_CONFIG”,这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度;
4.好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如config等。

##  .htaccess 文件未授权访问(高危)

*介绍:*

攻击者可未授权访问.htaccess文件,泄露网站敏感信息。

*修复:*

禁止.htaccess文件被查看。

## **Phpmyadmin 未授权访问(高危)**

*介绍:*

发现phpmyadmin路径,且没有密码保护,可直接登录数据库,获得数据库root权限。

*修复:*

设置数据库密码防止未授权访问,修改phpmyadmin默认路径防止被攻击者发现。

## **Druid 未授权访问漏洞(中危)**

*介绍:*

Druid是阿里巴巴数据库出品的,为监控而生的数据库连接池,并且Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控,首先Druid是不存在什么漏洞的。但当开发者配置不当时就可能造成未授权访问。

*修复:*

1、设置StatViewServlet(监控页面)为 false;

2、给druid的web页面设置账户密码,增加访问druid的权限。

## **Springboot 未授权访问(高危)**

*介绍:*

Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生。

*危害:*

访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录用户的操作请求,可以伪造cookie进行登录,访问/env端点可以获取全部环境属性,由于 actuator 会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息还可以获取mysql、mangodb 数据库信息。
endpoints.env.enabled= false
*修复:*
1、配置访问账号密码;
2、禁用访问接口配置endpoints.env.enabled= false。

# 注入类

## **SQL 注入**(高危)

*介绍:*

SQL注入攻击者在HTTP请求中输入含有恶意构造且语法合法的SQL语句,所谓基于时间的盲注,就是根据web页面相应的时间差来判断该页面是否存在SQL注入点。攻击者通过SQL注入可以获取到网站数据库的库名、表名、字段名,从而获取到整个服务器中的数据,对网站用户的数据安全有极大的威胁。攻击者也可以通过获取到的数据,得到后台管理员的密码,然后对网页页面进行恶意篡改。

*修复:*

(1)程序员加强自身技术水平,使用固定开发的标准;
(2)在提交服务端处理之前对数据的合法性进行检查;
(3)封装客户端提交信息;
(4)替换或删除敏感字符、字符串;
(5)错误信息不返回给用户;
(6)对敏感数据进行非常规加密,防止信息外泄;
(7)加强数据库检查(表结构是否出现异常、是否有多余数据等)、日志检查(SQL注入攻击往往会大量访问某一个存在漏洞的网页,日志文件会急剧增加,通过查看日志文件的大小以及日志文件中的内容。);
(8)不用字串连接建立SQL查询,而使用SQL变量,因为变量不是可以执行的脚本;
(9)建议部署使用SQL注入防范系统如数据库防火墙、WAF等网络安全设备。

## CRLF 注入漏洞(高危)

*介绍:*

CRLF是”回车 + 换行”(\r\n)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,所以CRLF Injection又叫HTTP Response Splitting,简称HRS。HRS是比XSS危害更大的安全问题。

*修复:*

针对CRLF注入漏洞,建议过滤\r 、\n等特殊字符,避免输入的数据污染到其他HTTP头。

## 框架注入漏洞(高危)

*介绍:*

攻击者有可能注入含有恶意内容的 frame 或 iframe 标签。如果用户不够谨慎,就有可能浏览该标签所对应的页面,但意识不到自己会离开原始站点而进入恶意的站点。之后,攻击者便可以诱导用户再次登录,然后获取其登录凭证。

*修复:*

建议过滤以下所有字符:| & ; $ % @ ' " \' \" <> () + CR LF , \。

# 跨站脚本类

## XSS 跨站脚本漏洞(高危)

*介绍:*

跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行,攻击者可利用该漏洞窃取或操纵客户会话和 cookie,用来模仿合法用户,从而使攻击者获得管理员权限,控制整个网站。

*修复:*

1.在cookie中设置了HttpOnly属性,那么通过JavaScript脚本将无法读取到cookie信息,这样能一定程度上防止XSS攻击;
2.假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的cookie中的变量,HTTP请求头部中的变量等;
3.不仅验证数据的类型,还要验证其格式、长度、范围和内容;
4.过滤“<” 、“>” 将用户输入放入引号间,基本实现数据与代码隔离;过滤双引号防止用户跨越许可的标记,添加自定义标记;过滤TAB和空格,防止关键字被拆分;过滤script关键字;过滤&#,防止HTML属性绕过检查。在客户端和服务器端同时做数据的验证与过滤;
5.对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

## JQuery 版本过低(JQuery低版本存在跨站)(中危)

*介绍:*

jQuery  1.6.3之前版本中存在跨站脚本漏洞。当使用location.hash选择元素时,通过特制的标签,远程攻击者利用该漏洞注入任意web脚本或HTML。

*修复:*

升级jQuery版本。

## Unicode 转换漏洞(高危)

*介绍:*

在Unicode在转换时,由于超长字节序列和错误格式引起子序列的安全问题。通过特殊的编码格式绕过程序对恶意字符的检测,可以用在SQL注入、XSS等。

*修复:*

1.升级Unicode版本至官方最新稳定版本http://www.unicode.org;

2.Unicode转化UTF-8编码后,对转换后进行安全检测,对特殊字符过滤或进行安全编码后输出。

# 文件上传、文件包含、文件读取、SSRF类

## 文件上传漏洞(高危)

*介绍:*

验证上传文件的程序没有对上传文件作任何过滤,导致可以上传任意文件到服务器,甚至是病毒文件和木马文件。

修复:

对于上传的附件,验证程序要做严格验证,使用服务器端校验,而不能仅用前端javascript验证。 
1.建议严格限制上传文件类型和上传文件名及后缀;
2.检查文件头和文件内容,对上传文件目录的运行权限进行严格限制;
3.及时排查、删除服务器木马文件。

## WebDav 文件上传/信息泄露漏洞(高危)

*介绍:*

WebDAV是一种基于  HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法。使应用程序可直接对Web Server文件进行读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。远程攻击者可能利用此漏洞非授权读写文件。

修复:

通常情况下网站不需要支持额外的方法,建议禁用WebDav服务,关闭PUT、MOVE、COPY等方法。

## 本地文件包含漏洞(高危)

*介绍:*

由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件,成功利用时可以使web server将特定文件当成脚本执行,从而导致攻击者可获取一定的服务器权限;或直接读取系统文件,造成服务器敏感信息泄露。

修复:

针对文件包含漏洞,建议采用“白名单”的方式,限制允许包含的文件范围。

## 远程文件包含漏洞(高危)

*介绍:*

服务器通过语言的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严格,从而可以去包含一个恶意文件,攻击者就可以远程构造一个特定的恶意文件达到攻击目的。

修复:

如果一定要动态包含文件,建议最好明确规定包含哪些文件,进行白名单比对。同时,也可以在包含函数中加入目录限制。

## **任意文件读取漏洞(高危)**

*介绍:*

程序过滤不严,导致可以通过../../../等方式跳转到其他目录读取任意文件。

*修复:*

1.过滤”../”的特殊字符
2.限制读取文件的目录,不允许跨目录读取

## **任意文件下载漏洞(高危)**

*介绍:*

在正常下载链接的文件参数前加 ../../../../ 来跳出目录限制,下载系统文件等任意文件。该漏洞是由于后台代码未对下载路径做安全限制引起的。

*修复:*

针对任意文件下载漏洞,建议严格限制文件下载路径。

## SSRF(服务端请求伪造)(高危)

*介绍:*

很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器,探测内网信息甚至内网入侵。

修复:

SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。建议对url参数值做严格的限制。

## **ShopXO 任意文件读取(高危)**

*介绍:*

ShopXO是一套开源的企业级开源电子商务系统;ShopXO存在任意文件读取漏洞,攻击者可利用该漏洞获取敏感信息。

*修复:*

升级系统版本

## Resin 任意文件读取漏洞(高危)

*介绍:*

安装某些版本Resin服务器的网站存在可读取任意文件的漏洞,攻击者利用该漏洞可以读取网站服务器的任意文件内容。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

# 命令执行、代码执行类

## Struts2 dev-mod 命令执行漏洞(高危)

*介绍:*

网站封装采用Apache Struts xwork作为网站应用框架,且devMode为打开状态。当这个设置开启时,Struts2会提供更多的日志和调试信息来帮助开发者更快速的开发。
然而在开发者模式下,将允许OGNL语句注入,攻击者可能利用此漏洞进行远程代码执行。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-005 命令执行漏洞(高危)

*介绍:*

OGNL除其他功能外,还提供了广泛的表达评估功能。该漏洞允许恶意用户绕过构建在ParametersInterceptor中的“#”  - 使用保护,从而能够利用此漏洞进行远程代码执行。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-009 命令执行漏洞(高危)

*介绍:*

OGNL除其他功能外,还提供广泛的表达评估功能。该漏洞允许恶意用户绕过构建到ParametersInterceptor中的所有保护(正则表达式模式,拒绝方法调用),从而能够在任何公开的字符串变量中注入恶意表达式以进一步评估。     S2-003和S2-005中已经解决了类似的行为,但事实证明,基于白名单可接受的参数名称所产生的修复只是部分地关闭了漏洞。     正则表达式在ParametersInterceptor中匹配top ['foo'](0)作为一个有效的表达式,OGNL把它视为(top  ['foo'])(0)并且将'foo'动作参数的值作为OGNL表达式来计算。这使得恶意用户可以将任意的OGNL语句放入任何由操作暴露的字符串变量中,并将其作为OGNL表达式进行求值,并且由于OGNL语句在HTTP参数值中,攻击者可以使用黑名单字符(例如#)禁用方法执行并执行任意方法绕过了ParametersInterceptor和OGNL库的保护。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-016 命令执行漏洞(高危)

*介绍:*

在struts2中,DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式,由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-017 URL 跳转漏洞(高危)

*介绍:*

在2.3.15.1之前的Struts  2中,“redirect:”或“redirectAction:”之后的信息可以很容易地被操纵,以重定向到任意位置。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-019 命令执行漏洞(高危)

*介绍:*

Struts2的操作映射机制支持特殊参数前缀操作,这可能会在表格底部附加引导信息,在映射  "action:" 前缀操作时存在安全绕过漏洞,可被攻击者利用绕过某些安全限制访问受限制功能。Struts2的Dynamic  Method  Invocation机制是默认开启的(仅提醒用户如果可能的情况下关闭此机制)这样就存在远程代码执行漏洞,攻击者可利用此漏洞在受影响应用上下文中执行任意代码。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-032 命令执行漏洞(高危)

*介绍:*

动态方法调用启用时,可能会传递一个恶意表达式,用于在服务器端执行任意代码。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-037 命令执行漏洞(高危)

*介绍:*

Struts2使用Rest插件之后,ActionMapping通过org.apache.struts2.rest.RestActionMapper.java类的publicActionMappinggetMapping(HttpServl  etRequest  request,ConfigurationManagerconfigManager)的方法获取的。其中,当请求url是如下的格式:actionName/id/methodName会获取methodName  作为ActionMapping的method属性。但method属性未做任何处理,同S2-032漏洞执行流程一致,都是将ActionMapping的属性设置到ActionProxy中,从ActionProxy中获取method属性带入到ognl表达式中执行,通过OGNL表达式静态调用获取ognl.OgnlContext的DEFAULT_MEMBER_ACCESS属性并覆盖_memberAccess的方式进行绕过,进而可在受控制的服务器端执行任意代码。即攻击者在部署了REST插件的Struts  2服务器上均可利用该漏洞远程执行任意命令

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-045 命令执行漏洞(高危)

*介绍:*

使用 Jakarta 文件上传插件的  Struts,攻击者可在上传文件时通过修改HTTP请求头中的  Content-Type 值来触发该漏洞,进而执行系统命令。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-046 命令执行漏洞(高危)

*介绍:*

使用 Jakarta 文件上传插件的  Struts,攻击者可在上传文件的大小(由 Content-Length 头指定)大于 Struts2 允许的最大大小(2GB),文件名内容构造恶意的 OGNL 来触发该漏洞,进而执行系统命令。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## S2-052 命令执行漏洞(高危)

*介绍:*

Apache  Struts2 Freemarker标签如果被错误的配置使用,将会导致RCE远程代码执行漏洞。

*修复:*

1.升级到Apache  Struts版本2.5.12或2.3.34;

2.使用只读属性来初始化value属性(仅限getter属性);

3.Freemarker标签内容不要通过Request方式获取 。

## S2-053 命令执行漏洞(高危)

*介绍:*

Struts2  REST 插件使用带有 XStream 程序的 XStream Handler 进行未经任何代码过滤的反序列化操作,这可能在反序列化XML  payloads时导致远程代码执行。任意攻击者都可以构造恶意的XML内容提升权限。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## JDWP 远程命令执行漏洞(高危)

*介绍:*

JDWP 是 Java Debug Wire Protocol  的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target  vm)之间的通信协议。当对外开启该协议的Java调试模式时,存在远程命令执行漏洞。允许攻击者远程执行代码,获得服务器权限。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## ElasticSearch 命令执行漏洞(高危)

*介绍:*

该漏洞存在于一个名为ElasticSearch.yml的文件,在这个文件中存在一个配置项“script.disable_dynamic”,默认为“false”。此默认配置允许服务器动态执行用户发送的任意代码。黑客只需要通过一个URL地址向服务器传送一段代码,就可以创建和执行他们自己的程序。一旦黑客获得通过,他们在服务器上的操作将不受任何限制,包括窃取网站中的用户账号及密码等敏感信息,或者留下一个后门程序。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## GNU Bash 远程命令执行(高危)

*介绍:*

GNU Bash  4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。

*修复:*

1.升级最新版本;
2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

## Weblogic  Java 反序列化远程命令执行漏洞(高危)

*介绍:*

Weblogic存在Java反序列化漏洞,攻击者可以远程执行系统命令,获得服务器权限。

*修复:*

及时升级官方补丁。

## **shiro 反序列化命令执行漏洞(高危)**

*介绍*

利用工具:shiro反序列化漏洞综合利用工具

https://github.com/j1anFen/shiro_attack

shiro-550(shiro小于1.2.5)主要是由shiro的rememberMe内容反序列化导致的命令执行漏洞,造成的原因是AES密钥被硬编码在shiro源码中,这就导致了可以通过在coo0kie的rememberMe字段插入payload实现任意代码执行。

*修复:*

升级shiro版本。

## **JBoss 反序列化命令执行漏洞(高危)**

*介绍*

根源在CommonsCollections组件中对于集合的操作存在可以进行反射调用的方法,并且该方法在相关对象反序列化时并未进行任何校验,导致远程代码执行。利用漏洞,允许攻击者远程执行系统命令,获得服务器权限,导致服务器运行安全风险。

*修复:*

1.针对JBoss  Java反序列化漏洞,建议更新jboss版本到最新版(http://www.jboss.org/)或 更新官方补丁;

2.针对数据库帐号密码进行修改,要求密码长度8位数以上,密码复杂程度必须包含数字、大小写字母及特殊字符;

3.对服务器进行全面安全检查,及时排查、清除webshell等后门文件;及时修改数据库密码等。

## **JBoss JMXInvokerServlet 远程命令执行漏洞(高危)**

*介绍*

Jboss在默认安装的时候,会安装http-invoker.sar站点,当请求invoker/JMXInvokerServlet或invoker/EJBInvokerServlet会调用org.jboss.invocation.http.servlet.InvokerServlet.class处理请求。该类对GET请求和POST请求,统一调用processRequest函数处理,因此,攻击者需要自己构造一个jboss的类,并且将其序列化,然后将序列化的数据直接提交到存在漏洞站点的invoker/JMXInvokerServlet页面,恶意代码将会被执行。

*修复:*

建议删除或禁止访问/invoker/JMXInvokerServlet文件。

## **ThinkPHP 命令执行(高危)**

*介绍:*

由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。

*修复:*

升级thinkPHP至最新版本。

## **Apache ActiveMQ 远程代码执行漏洞 (CVE-2016-3088)(高危)**

*介绍*

Apache ActiveMQ Fileserver 存在多个安全漏洞,可使远程攻击者用恶意代码替代Web应用,在受影响系统上执行远程代码(CVE-2016-3088)。

*修复:*

1.ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本;

2.通过移除 conf\jetty.xml 的以下配置来禁用 ActiveMQ Fileserver 功能。

## JBoss Seam 参数化EL表达式远程代码执行漏洞(高危)

*介绍:*

JBoss Seam是一个Java  EE5框架,把JSF与EJB3.0组件合并在一起,从而为开发基于Web的企业应用程序提供一个最新的模式。     JBoss Seam处理某些参数化JBoss  EL表达式的方式存在输入过滤漏洞( CVE-2010-1871)。如果远程攻击者能够诱骗通过认证的JBoss  Seam用户访问特制的网页,就可能导致执行任意代码

*修复:*

升级至4.3.0  EL4或以上更高的、确认已修复此漏洞的版本。参考链接:https://bugzilla.redhat.com/show_bug.cgi?id=615956。

## HPPT.sys 远程代码执行漏洞(MS15-034)(高危)

*介绍*:

远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。

*修复*:

缓解方案:https://learn.microsoft.com/en-us/security-updates/SecurityBulletins/2015/ms15-034
升级补丁:https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2015/ms15-034?redirectedfrom=MSDN

## Webview 远程代码执行漏洞(高危)

*介绍*:

WebView组件中的addJavascriptInterface方法用于实现本地Java和JavaScript的交互,但是该函数并没有对方法调用进行限制,导致攻击者可以调用任何JAVA类,最终导致JavaScript代码对设备进行任意攻击

*修复*:

建议不使用addJavascriptInterface接口,对于Android  API  Level为17或者以上的Android系统,Google规定允许被调用的函数,必须在Java的远程方法上面声明一个@JavascriptInterface注解;在使用js2java的bridge时候,需要对每个传入的参数进行验证,避免恶意代码的攻击。

# 拒绝服务类

## slowhttp 拒绝服务攻击(中危)

*介绍*:

如果远程攻击者使用发包工具向Apache服务器发送了不完整的HTTP请  求,服务器会打开连接等待接受完整的头,但如果发包工具不再继续发送完整请求而是发送无效头的话,就会一直保持打开的连接。这种攻击所造成的影响很严重,  因为攻击者不需要发送很大的通讯就可以耗尽服务器上的可用连接。也就是说,即使低带宽的用户也可以攻击大流量的服务器。

*修复*:

1.升级到最新版的apache;

2.在httpd.conf中添加RequestReadTimeout header=20-40,MinRate=500  body=20,MinRate=500;

3.直接在 iptables 中限制每个 IP 的连接数可以解决以上绝大部分问题,除非攻击者拥有众多肉鸡,否则单 IP 的攻击将失去效果。     iptables -A INPUT -p tcp --syn --dport 8889 -m  connlimit --connlimit-above 20 -j REJECT --reject-with tcp-reset 。

未分类

Host 头攻击(高危)

介绍:

对开发人员来说,提取请求头中的Host参数写入当前页面是一个很不明智的选择。因为如果这样,攻击者就可以通过修改HTTP请求头中的Host字段,控制服务器返回页面中的URL。

修复:

不允许读取Host字段并写入页面。如有需要,应使用服务器脚本自带的SERVER_NAME变量。

域名访问限制不严格(高危)

介绍:

目标存在域名访问限制不严格漏洞,Http请求的Hostname字段没有严格的域名限制,导致可以绕过一些防护措施。

修复:

配置WEB服务器,限制只能以域名形式访问服务器。

URL 重定向(中危)

介绍:

URL 重定向 (URLredirection) 漏洞,又称跳转漏洞,指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中使用该链接。该安全漏洞给网络钓鱼攻击提供了极大的便利。

修复:

1.referer的限制 如果确定传递URL参数进入的来源,可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接。 2.加入有效性验证Token 保证所有生成的链接都是来自于可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用。 3.URL白名单,在白名单内才进行跳转

会话劫持漏洞(中危)

介绍:

攻击者通过暴力破解、预测或者窃取(网络嗅探/XSS攻击)等方式获取用户Session ID后,使用该Session ID登录目标账号的攻击方法。

修复:

1.更改Session名称。PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,阻挡部分攻击。 2.关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。 3.设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。 4.关闭所有phpinfo类dump request信息的页面。 5.使用User-Agent检测请求的一致性。但有专家警告不要依赖于检查User-Agent的一致性。这是因为服务器群集中的HTTP代理服务器会对User-Agent进行编辑,而本群集中的多个代理服务器在编辑该值时可能会不一致。

会话固定漏洞(中危)

介绍:

会话固定也可以看成是会话劫持的一种类型,原因是会话固定的攻击的主要目的同样是获得目标用户的合法会话,不过会话固定还可以是强迫受害者使用攻击者设定的一个有效会话,以此来获得用户的敏感信息。

修复:

1.用户登录时生成新的Session ID。如果攻击者使用的会话标识符不是有效的,那么这种方式将会非常有效。如果不是有效的会话标识符,服务器将会要求用户重新登录。如果攻击者使用的是有效的Session ID,那么还可以通过校验的方式来避免攻击。 2.大部分防止会话劫持的方法对会话固定攻击同样有效。如设置HttpOnly,关闭透明化Session ID,User-Agent验证,Token校验等。

DNS 域传送漏洞(中危)

介绍:

DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库,一般来说,DNS区域传送操作只在网络里真的有备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息。

修复:

针对域传送漏洞,建议通过定义ACL(访问控制列表)来限制在域名服务器之间的区域传送,通常可编辑/etc/named.conf中allow-transfer参数。存在漏洞的是ns1.com, 如果其他ns2、ns3、ns4是备用dns服务器,那么应该只允许域传送至其他对应的地址。配置如下: allow-transfer { localhost; ns2的IP; ns3的IP; ns4的IP;};

检测到网站被黑痕迹(高危)

介绍:

网站页面已被篡改或已有入侵痕迹。

修复:

清除网站木马,全面检测网站漏洞并及时修复。

传输层保护不足漏洞(中危)

介绍:

传输层保护不足,会暴露传输的数据,导致数据被窃听,账号被盗等,如果是管理员的账号面临这个问题,那么将会导致整个网站处于数据暴露的状态,将对网站和用户造成严重的甚至无法挽回的损失。

修复:

1.对所有敏感的页面使用SSL,非SSL请求的页面应该被重定向到SSL请求的页面;

2.对所有敏感的Cookie,设置“secure”的flag;

3.保证SSL的提供商只支持强大的算法,这样就不能够被轻易破解;

4.确保您的证书是有效的,不过期,不被撤销,并匹配这个网站使用的所有域;

5.后台和其他的连接也应该使用SSL或其他加密技术;

6.即使是开发者的注释也应该很好的被保护,防止信息泄露。

服务器启用了 TRACE Method 方法 (中危)

介绍:

恶意攻击者可以通过TRACE Method返回的信息了解到网站前端的一些信息,如缓存服务器等,从而为下一步的攻击提供便利;恶意攻击者可以通过TRACE Method进行XSS攻击;即使网站对关键页面启用了HttpOnly头标记和禁止脚本读取cookie信息,那么通过TRACE Method恶意攻击者还是可以绕过这个限制读取到cookie信息。

修复:

禁用TRACE方法。

点击劫持漏洞(X-Frame-Options 头缺失)(中危)

介绍:

通过覆盖不可见的框架误导受害者点击,受害者点击的是他所看到的网页,但其实他所点击的是被黑客精心构建的另一个置于原网页上面的透明页面。

修复:

设置X-Frame-Options值来防御利用iframe嵌套的点击劫持攻击。

启用了不安全的 HTTP 方法(启用了 OPTIONS 方法)(中危)

介绍:

开启了不安全的HTTP方法:DELTE/SEARCE/COPY,MOVE/PROPFIND/PROPPATCH/MKCOL/LOCK/UNLOCK/PUT,可能会在Web 服务器上上载、修改或删除Web 页面、脚本和文件。

修复:

如果服务器不需要支持WebDAV,请务必禁用它,或禁止不必要的HTTP 方法。

Tomcat 版本过低漏洞 (中危)

介绍:

Tomcat由于版本过低存在安全漏洞。

修复:

升级Tomcat版本或及时打补丁。

Apache Tomcat 示例目录漏洞 (中危)

介绍:

tomcat安装时默认的演示、文档页面,会造成信息泄露和XSS跨站脚本漏洞,攻击者可以创建、销毁或控制session。

修复:

删除相关功能演示页面。

SpringBlade 框架默认 SIGN_KRY 秘钥(CVE-2021-44910)(高危)

介绍:

SpringBlade 是一个由商业级项目升级优化而来的SpringCloud分布式微服务架构、SpringBoot单体式微服务架构并存的综合型项目。SpringBlade 框架存在默认SIGN_KEY,攻击者可利用漏洞获取用户账号密码日志等敏感信息。

修复:

1、通过防火墙等安全设备设置访问策略,设置白名单访问; 2、如非必要,禁止公网访问该系统; 3、限制目录访问权限

SSL/TLS 服务器 Diffie-Hellman 公共密钥过弱漏洞(高危)

介绍:

Diffie-Hellman 密钥交换是一种流行的加密算法,它允许 Internet 协议就共享密钥达成一致并协商安全连接。当服务器SSL/TLS的瞬 时Diffie-Hellman公共密钥小于等于1024位时,可能容易受到被动窃听攻击。

修复:

使用具有“安全”素数的2048位或更强的Diffie-Hellman组。可参考:Logjam: PFS Deployment Guide

OpenSSL 远程内存泄露漏洞(心脏滴血漏洞)(高危)

介绍:

OpenSSL是一款开放源码的SSL实现,用来实现网络通信的高强度加密。漏洞与OpenSSL TLS/DTLS传输层安全协议heartbeat扩展组件(RFC6520)相关,因此漏洞又被称为“heartbleed bug”(中文名称:“心血”漏洞)。该漏洞无需任何特权信息或身份验证,就可以获得X.509证书的私钥、用户名与密码、cookies等信息,进一步可直接从服务提供商和用户通讯中窃取聊天工具消息、电子邮件以及重要的商业文档和通信等私密数据。

修复:

升级OpenSSL版本到最新的1.0.1g;使用-DOPENSSL_NO_HEARTBEATS参数重新编译低版本的OpenSSL以禁用Heartbleed模块。

Apache apisix 默认密钥漏洞(CVE-2020-13945)(高危)

介绍

Apache APISIX 是一个动态、实时、高性能的 API 网关,基于 Nginx 网络库和 etcd 实现, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。当使用者开启了Admin API,没有配置相应的IP访问策略,且没有修改配置文件Token的情况下,则攻击者利用Apache APISIX的默认Token即可访问Apache APISIX,从而控制APISIX网关。

修复

(1)修改Apache APISIX配置文件中 conf/config.yaml 的admin_key,禁止使用默认Token; (2)若非必要,关闭Apache APISIX Admin API功能,或者增加IP访问限制; (3)升级Apache APISIX 至最新版本。

弱口令登录类

弱口令(高危)

介绍:

弱口令指的是仅包含简单数字和字母的口令,例如“123456”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的信息资产面临风险。攻击者可以直接利用该漏洞,获取访问权限。

修复:

1)不使用空口令或系统缺省的口令,因为这些口令众所周知,为典型的弱口令; 2)口令长度不小于8个字符; 3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.); 4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符; 5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词; 6)口令不应该为用数字或符号代替某些字母的单词; 7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入; 8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。

FTP 弱口令(高危)

介绍:

攻击者可通过弱口令访问FTP服务器,获取服务器数据,从而控制服务器,获取服务器控制权限,进而对内网其他资产进行攻击。

修复:

(1)设置FTP权限,或添加白名单访问; (2)禁用匿名登录。

任意用户密码重置漏洞(高危)

介绍:

系统在处理重置密码请求时使用本地验证方法,未在服务端处理,造成用户可在本地修改数据包,绕过系统身份验证,达到重置任意账号的目的。

修复:

针对任意用户密码重置漏洞,建议在服务器端加强逻辑验证。

验证码漏洞(高危)

介绍:

验证码可以一次多用,导致可以暴力破解,验证码没有限定次数和时间,导致可以无限制的发送验证码。

修复:

设置验证码登录一次,变换一次,防止暴力破解;设置验证码120秒只发送一次。

暴力破解漏洞(中危)

介绍:

登录入口没有验证码或者验证码可以一次多用,导致可以暴力破解。攻击者可能试图尝试每个可能的字母,数字和符号组合,或使用一些暴力破解工具进行猜测,直到它发现了一个正确的组合,从而进入登录页面做进一步深度非法攻击。

修复:

1.增加验证码,使之登录失败一次,验证码变换一次; 2.针对密码猜测,建议控制错误登录次数,以防止暴力破解。同一用户如果5分钟内登录失败6次,禁用此用户登录30分钟。

短信轰炸漏洞(中危)

介绍:

短信轰炸是由于系统设计缺陷可无限制发送短信验证码给客户端,攻击者可利用该漏洞对任意手机号码进行短信轰炸,对公司造成不良影响和运行安全风险。

修复:

建议针对发送短信验证码接口加强权限控制,在服务端限制单位时间内发送短信次数。

用户名猜解漏洞(中危)

介绍:

通过登录信息可以判断有无此用户,可以对用户名进行猜解。

修复:

使用模糊的错误登录提示,如:用户名或密码错误。

SNMP 默认团体名漏洞(高危)

介绍:

由于很多操作系统或者网络设备的SNMP代理服务存在可读默认口令。如果这些默认口令没有修改或者为弱口令,远程攻击者就可以通过SNMP代理获取系统的很多细节信息。如果攻击者得到了可写口令,它甚至可以修改系统文件或者执行系统命令。

修复:

针对SNMP信息泄露漏洞,建议修改SNMP缺省口令或者关闭SNMP服务。

敏感信息泄漏

源码信息泄漏(高危)

介绍:

网站源代码文件泄露指管理员误将网站备份压缩文件或是敏感信息文件存放在某个网站目录下。 攻击者可以利用该漏洞下载网站源代码,并对源代码进行分析获取信息系统的敏感信息(如数据库等),进而可直接攻击、控制服务器。

修复:

1、不要在网站目录下存放网站备份文件或包含敏感信息的文件; 2、如需存放该类文件,请将文件名命名为难以破解的字符串,并进行文件加密; 3、使用软件WAF或硬件WAF防护; 4、提升网站管理员安全意识。

错误页面信息泄露(应用程序错误信息)(中危)

介绍:

攻击者可以根据错误或警告消息收集服务器信息。

修复:

1.关闭web服务器错误提示; 2.关闭运行平台的错误提示; 3.建立错误机制,不要把真实的错误反馈给访问者。捕获后台抛出的异常,制定异常固定跳转页面,如500错误,跳转到相应页面,例如“系统异常请与管理员联系”,403异常,找不到页面等等。

目录遍历(高危)

介绍:

攻击者通过不指定url中的具体文件,来查看某个目录下的所有文件和目录结构。

修复:

针对目录遍历漏洞,建议通过修改配置文件,去除Web 容器(如Apache)的文件目录索引功能。

IIS 短文件名漏洞(中危)

介绍:

Microsoft IIS在实现上存在文件枚举漏洞,攻击者可以利用“~”字符猜解或遍历服务器中的文件名,或对IIS服务器中的.Net Framework进行拒绝服务攻击。

修复:

针对IIS短文件名漏洞,建议禁止url中使用“~”或它的Unicode编码,或关闭windows的8.3格式功能。

robots.txt 文件泄露(中危)

介绍:

泄露网站敏感信息,包括网站的后台页面或其它隐私页面。

修复:

1.robots.txt 文件不应用来保护或隐藏信息; 2.应该将敏感的文件和目录移到另一个隔离的子目录,以便将这个目录排除在 Web Robot 搜索之外。如下列示例所示,将文件移到“folder”之类的非特定目录名称是比较好的解决方案: New directory structure: /folder/passwords.txt /folder/sensitive_folder/ New robots.txt: User-agent: * Disallow: /folder/ ; 3.如果您无法更改目录结构,且必须将特定目录排除于 Web Robot 之外,在 robots.txt 文件中,请只用局部名称。虽然这不是最好的解决方案,但至少它能加大完整目录名称的猜测难度。例如,如果要排除“sensitive_folder”和 “passwords.txt”,请使用下列名称(假设 Web 根目录中没有起始于相同字符的文件或目录): robots.txt: User-agent: * Disallow: /se Disallow: /pa。

PHP 探针信息泄露(中危)

介绍:

PHP探针文件会导致网站敏感信息泄露

修复:

删除默认安装PHP探针文件。

PHPINFO 页面泄露(中危)

介绍:

泄露网站服务器敏感信息,包括网站物理路径、PHP版本、服务器信息及环境变量等。

修复:

1.通过修改服务器环境内php.ini文件,将“expose_php = On”修改成“expose_php = Off”然后重启php即可; 2.如果确实需要该测试信息,在测试时使用,测试完毕后将该文件删除掉; 3.若无需要可以将一些php的危险函数禁用,打开/etc/php.ini文件,查找到 disable_functions,添加需禁用的以下函数名:phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen。

未加密的登录请求(低危)

介绍:

检测中发现登录请求(例如:用户名、密码、电子邮件地址、社会安全号码等)被发送到服务器的过程中并未采用通讯加密协议或加密。恶意人员可通过数据截包实现网站管理员用户名、密码信息的截获。

修复:

注册或登录时,客户发送请求敏感信息进行加密,例如密码、电话、邮件等敏感信息进行加密传输。

致远 OA A6 员工敏感信息泄露(中危)

介绍:

seeyon OA A6版本存在敏感信息泄露漏洞,攻击者可构造payload,获取敏感信息。

修复:

限制用户访问权限

Dedecms-cve-2018-6910 信息泄露漏洞(中危)

介绍:

DesdevDedeCMS(织梦内容管理系统)是中国卓卓网络(Desdev)科技有限公司的一套开源的集内容发布、编辑、管理检索等于一体的PHP网站内容管理系统(CMS)。DesdevDedeCMS版本中存在信息泄露漏洞。远程攻击者可通过对include/downmix.inc.php或inc/inc_archives_functions.php文件发送接请求利用该漏洞获取完整路径。

修复:

修改应用程序源代码,以避免信息泄漏。

Solr admin 信息泄露(高危)

介绍:

网站存在Apache Solr 敏感信息泄露漏洞

修复:

1、修改网站默认管理界面路径; 2、对敏感路径设置访问权限只允许白名单访问; 3、禁用没有必要敏感目录。

SSL/TLS RC4 信息泄露漏洞 CVE-2013-2566(高危)

介绍:

安全套接层(Secure Sockets Layer,SSL),一种安全协议,是网景公司(Netscape)在推出Web浏览器首版的同时提出的,目的是 为网络通信提供安全及数据完整性。SSL在传输层对网络连接进行加密。传输层安全(Transport Layer Security),IETF对SSL协议标 准化(RFC 2246)后的产物,与SSL 3.0差异很小。SSL/TLS内使用的RC4算法存在单字节偏差安全漏洞,可允许远程攻击者通过分 析统计使用大量相同明文的大量会话,利用此漏洞恢复纯文本信息。

修复:

1、禁止apache服务器使用RC4加密算法; 2、关于lighttpd加密算法,在配置文件lighttpd.conf中禁用RC4算法; 3、windows系统建议参考官网链接修复: Microsoft security advisory: Update for disabling RC4 - Microsoft Support

ThinkPHP 信息泄漏(中危)

介绍

ThinkPHP的默认页面存在信息泄漏问题,允许攻击者从 index.php 访问所有系统环境参数。

修复

1、严格控制访问参数,修改因客户端参数请求报错,泄漏系统参数信息;

2、升级thinkPHP版本。

LARAVEL 敏感信息泄漏(高危)

介绍

在 laravel 框架的根目录下存在配置文件,该文件存储了 debug 的配置、mysql账号密码、邮箱账号密码、redis 密码等信息。如果访问控制不当会导致文件泄露敏感信息。

修复

关闭 laravel 配置文件中的调试功能,在 .env 文件中找到 APP_DEBUG=true,将 true 改为 false。

未授权访问类

未授权访问(高危)

介绍

后台页面或者其他用户页面没有做session认证,导致可以无需登录,直接访问页面。

修复

对未授权访问页面做session认证,严格审核后台功能页面的访问权限,若为未登录用户则拒绝访问。

越权漏洞(高危)

介绍

水平越权:攻击者能够执行与自己同级别权限用户的操作 垂直越权:攻击者能够执行高级别权限用户的操作,比如管理员的相关操作。

修复

1.设计严格的权限控制系统,对于每个请求和URL都要进行校验和权限确认,防止非法请求被执行; 2.默认情况下,应该拒绝执行所有访问权限,也就是说缺省不给用户任何权限,防止攻击者利用缺省权限执行攻击等; 3.对于每个功能的访问,都要有明确的角色授权,防止黑客利用不完善的访问控制缺陷造成不必要的损失; 或者是实现Web访问的IP白名单列表,或者是只允许属于管理员范围权利的指定IP访问等等。

Memcached 未授权访问漏洞(高危)

介绍

由于memcached安全设计缺陷,客户端连接memcached服务器后无需认证就可读取、修改服务器缓存内容。

修复

1.配置memcached监听本地回环地址127.0.0.1; 2.当memcached配置为监听内网IP或公网IP时,使用主机防火墙(iptalbes、firewalld等)和网络防火墙对memcached服务端口进行过滤。

Rsync 未授权访问漏洞(高危)

介绍

rsync是类unix系统下的数据镜像备份工具,如果配置不当,可导致攻击者匿名访问rsync程序,进一步进行增删改等操作。

修复

建议两种方式防御,一是限定访问的IP,另一个是不允许匿名访问,添加用户口令。

Cisco vpn 未授权访问(高危)

介绍

Cisco Adaptive Security Appliance (ASA) Software在Clientless SSL VPN入口自定义框架在实现上存在安全漏洞,未经身份验证的远程攻击者可利用此漏洞修改Clientless SSL VPN入口内容,导致窃取凭证、跨站脚本及其他攻击。此漏洞源于没有正确实现Clientless SSL VPN入口自定义框架内的身份验证检查。

修复

建议升级思科最新发布的补丁:Multiple Vulnerabilities in Cisco ASA Software

Mongodb 数据库未授权访问漏洞(高危)

介绍

Mongodb在启动的时候未设置 –auth参数,造成恶意攻击者可使用默认空口令登陆到数据服务器。

修复

建议增加数据库用户校验或限制设备登录IP地址,限制未授权访问。

Redis 数据库未授权访问漏洞(高危)

介绍

Redis 默认情况下会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。

修复

1.配置bind选项,限定可以连接Redis服务器的IP,修改 Redis 的默认端口6379; 2.配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中; 3.配置rename-command 配置项 “RENAME_CONFIG”,这样即使存在未授权访问,也能够给攻击者使用config 指令加大难度; 4.好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如config等。

.htaccess 文件未授权访问(高危)

介绍:

攻击者可未授权访问.htaccess文件,泄露网站敏感信息。

修复:

禁止.htaccess文件被查看。

Phpmyadmin 未授权访问(高危)

介绍:

发现phpmyadmin路径,且没有密码保护,可直接登录数据库,获得数据库root权限。

修复:

设置数据库密码防止未授权访问,修改phpmyadmin默认路径防止被攻击者发现。

Druid 未授权访问漏洞(中危)

介绍:

Druid是阿里巴巴数据库出品的,为监控而生的数据库连接池,并且Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控,首先Druid是不存在什么漏洞的。但当开发者配置不当时就可能造成未授权访问。

修复:

1、设置StatViewServlet(监控页面)为 false;

2、给druid的web页面设置账户密码,增加访问druid的权限。

Springboot 未授权访问(高危)

介绍:

Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生。

危害:

访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录用户的操作请求,可以伪造cookie进行登录,访问/env端点可以获取全部环境属性,由于 actuator 会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息还可以获取mysql、mangodb 数据库信息。 endpoints.env.enabled= false 修复: 1、配置访问账号密码; 2、禁用访问接口配置endpoints.env.enabled= false。

注入类

SQL 注入(高危)

介绍:

SQL注入攻击者在HTTP请求中输入含有恶意构造且语法合法的SQL语句,所谓基于时间的盲注,就是根据web页面相应的时间差来判断该页面是否存在SQL注入点。攻击者通过SQL注入可以获取到网站数据库的库名、表名、字段名,从而获取到整个服务器中的数据,对网站用户的数据安全有极大的威胁。攻击者也可以通过获取到的数据,得到后台管理员的密码,然后对网页页面进行恶意篡改。

修复:

(1)程序员加强自身技术水平,使用固定开发的标准; (2)在提交服务端处理之前对数据的合法性进行检查; (3)封装客户端提交信息; (4)替换或删除敏感字符、字符串; (5)错误信息不返回给用户; (6)对敏感数据进行非常规加密,防止信息外泄; (7)加强数据库检查(表结构是否出现异常、是否有多余数据等)、日志检查(SQL注入攻击往往会大量访问某一个存在漏洞的网页,日志文件会急剧增加,通过查看日志文件的大小以及日志文件中的内容。); (8)不用字串连接建立SQL查询,而使用SQL变量,因为变量不是可以执行的脚本; (9)建议部署使用SQL注入防范系统如数据库防火墙、WAF等网络安全设备。

CRLF 注入漏洞(高危)

介绍:

CRLF是”回车 + 换行”(\r\n)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码,所以CRLF Injection又叫HTTP Response Splitting,简称HRS。HRS是比XSS危害更大的安全问题。

修复:

针对CRLF注入漏洞,建议过滤\r 、\n等特殊字符,避免输入的数据污染到其他HTTP头。

框架注入漏洞(高危)

介绍:

攻击者有可能注入含有恶意内容的 frame 或 iframe 标签。如果用户不够谨慎,就有可能浏览该标签所对应的页面,但意识不到自己会离开原始站点而进入恶意的站点。之后,攻击者便可以诱导用户再次登录,然后获取其登录凭证。

修复:

建议过滤以下所有字符:| & ; $ % @ ' " ' " <> () + CR LF , \。

跨站脚本类

XSS 跨站脚本漏洞(高危)

介绍:

跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行,攻击者可利用该漏洞窃取或操纵客户会话和 cookie,用来模仿合法用户,从而使攻击者获得管理员权限,控制整个网站。

修复:

1.在cookie中设置了HttpOnly属性,那么通过JavaScript脚本将无法读取到cookie信息,这样能一定程度上防止XSS攻击; 2.假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的cookie中的变量,HTTP请求头部中的变量等; 3.不仅验证数据的类型,还要验证其格式、长度、范围和内容; 4.过滤“<” 、“>” 将用户输入放入引号间,基本实现数据与代码隔离;过滤双引号防止用户跨越许可的标记,添加自定义标记;过滤TAB和空格,防止关键字被拆分;过滤script关键字;过滤&#,防止HTML属性绕过检查。在客户端和服务器端同时做数据的验证与过滤; 5.对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

JQuery 版本过低(JQuery低版本存在跨站)(中危)

介绍:

jQuery 1.6.3之前版本中存在跨站脚本漏洞。当使用location.hash选择元素时,通过特制的标签,远程攻击者利用该漏洞注入任意web脚本或HTML。

修复:

升级jQuery版本。

Unicode 转换漏洞(高危)

介绍:

在Unicode在转换时,由于超长字节序列和错误格式引起子序列的安全问题。通过特殊的编码格式绕过程序对恶意字符的检测,可以用在SQL注入、XSS等。

修复:

1.升级Unicode版本至官方最新稳定版本http://www.unicode.org;

2.Unicode转化UTF-8编码后,对转换后进行安全检测,对特殊字符过滤或进行安全编码后输出。

文件上传、文件包含、文件读取、SSRF类

文件上传漏洞(高危)

介绍:

验证上传文件的程序没有对上传文件作任何过滤,导致可以上传任意文件到服务器,甚至是病毒文件和木马文件。

修复:

对于上传的附件,验证程序要做严格验证,使用服务器端校验,而不能仅用前端javascript验证。 1.建议严格限制上传文件类型和上传文件名及后缀; 2.检查文件头和文件内容,对上传文件目录的运行权限进行严格限制; 3.及时排查、删除服务器木马文件。

WebDav 文件上传/信息泄露漏洞(高危)

介绍:

WebDAV是一种基于 HTTP 1.1协议的通信协议.它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法。使应用程序可直接对Web Server文件进行读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。远程攻击者可能利用此漏洞非授权读写文件。

修复:

通常情况下网站不需要支持额外的方法,建议禁用WebDav服务,关闭PUT、MOVE、COPY等方法。

本地文件包含漏洞(高危)

介绍:

由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件,成功利用时可以使web server将特定文件当成脚本执行,从而导致攻击者可获取一定的服务器权限;或直接读取系统文件,造成服务器敏感信息泄露。

修复:

针对文件包含漏洞,建议采用“白名单”的方式,限制允许包含的文件范围。

远程文件包含漏洞(高危)

介绍:

服务器通过语言的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严格,从而可以去包含一个恶意文件,攻击者就可以远程构造一个特定的恶意文件达到攻击目的。

修复:

如果一定要动态包含文件,建议最好明确规定包含哪些文件,进行白名单比对。同时,也可以在包含函数中加入目录限制。

任意文件读取漏洞(高危)

介绍:

程序过滤不严,导致可以通过../../../等方式跳转到其他目录读取任意文件。

修复:

1.过滤”../”的特殊字符 2.限制读取文件的目录,不允许跨目录读取

任意文件下载漏洞(高危)

介绍:

在正常下载链接的文件参数前加 ../../../../ 来跳出目录限制,下载系统文件等任意文件。该漏洞是由于后台代码未对下载路径做安全限制引起的。

修复:

针对任意文件下载漏洞,建议严格限制文件下载路径。

SSRF(服务端请求伪造)(高危)

介绍:

很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器,探测内网信息甚至内网入侵。

修复:

SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。建议对url参数值做严格的限制。

ShopXO 任意文件读取(高危)

介绍:

ShopXO是一套开源的企业级开源电子商务系统;ShopXO存在任意文件读取漏洞,攻击者可利用该漏洞获取敏感信息。

修复:

升级系统版本

Resin 任意文件读取漏洞(高危)

介绍:

安装某些版本Resin服务器的网站存在可读取任意文件的漏洞,攻击者利用该漏洞可以读取网站服务器的任意文件内容。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

命令执行、代码执行类

Struts2 dev-mod 命令执行漏洞(高危)

介绍:

网站封装采用Apache Struts xwork作为网站应用框架,且devMode为打开状态。当这个设置开启时,Struts2会提供更多的日志和调试信息来帮助开发者更快速的开发。 然而在开发者模式下,将允许OGNL语句注入,攻击者可能利用此漏洞进行远程代码执行。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-005 命令执行漏洞(高危)

介绍:

OGNL除其他功能外,还提供了广泛的表达评估功能。该漏洞允许恶意用户绕过构建在ParametersInterceptor中的“#” - 使用保护,从而能够利用此漏洞进行远程代码执行。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-009 命令执行漏洞(高危)

介绍:

OGNL除其他功能外,还提供广泛的表达评估功能。该漏洞允许恶意用户绕过构建到ParametersInterceptor中的所有保护(正则表达式模式,拒绝方法调用),从而能够在任何公开的字符串变量中注入恶意表达式以进一步评估。 S2-003和S2-005中已经解决了类似的行为,但事实证明,基于白名单可接受的参数名称所产生的修复只是部分地关闭了漏洞。 正则表达式在ParametersInterceptor中匹配top ['foo'](0)作为一个有效的表达式,OGNL把它视为(top ['foo'])(0)并且将'foo'动作参数的值作为OGNL表达式来计算。这使得恶意用户可以将任意的OGNL语句放入任何由操作暴露的字符串变量中,并将其作为OGNL表达式进行求值,并且由于OGNL语句在HTTP参数值中,攻击者可以使用黑名单字符(例如#)禁用方法执行并执行任意方法绕过了ParametersInterceptor和OGNL库的保护。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-016 命令执行漏洞(高危)

介绍:

在struts2中,DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式,由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-017 URL 跳转漏洞(高危)

介绍:

在2.3.15.1之前的Struts 2中,“redirect:”或“redirectAction:”之后的信息可以很容易地被操纵,以重定向到任意位置。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-019 命令执行漏洞(高危)

介绍:

Struts2的操作映射机制支持特殊参数前缀操作,这可能会在表格底部附加引导信息,在映射 "action:" 前缀操作时存在安全绕过漏洞,可被攻击者利用绕过某些安全限制访问受限制功能。Struts2的Dynamic Method Invocation机制是默认开启的(仅提醒用户如果可能的情况下关闭此机制)这样就存在远程代码执行漏洞,攻击者可利用此漏洞在受影响应用上下文中执行任意代码。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-032 命令执行漏洞(高危)

介绍:

动态方法调用启用时,可能会传递一个恶意表达式,用于在服务器端执行任意代码。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-037 命令执行漏洞(高危)

介绍:

Struts2使用Rest插件之后,ActionMapping通过org.apache.struts2.rest.RestActionMapper.java类的publicActionMappinggetMapping(HttpServl etRequest request,ConfigurationManagerconfigManager)的方法获取的。其中,当请求url是如下的格式:actionName/id/methodName会获取methodName 作为ActionMapping的method属性。但method属性未做任何处理,同S2-032漏洞执行流程一致,都是将ActionMapping的属性设置到ActionProxy中,从ActionProxy中获取method属性带入到ognl表达式中执行,通过OGNL表达式静态调用获取ognl.OgnlContext的DEFAULT_MEMBER_ACCESS属性并覆盖_memberAccess的方式进行绕过,进而可在受控制的服务器端执行任意代码。即攻击者在部署了REST插件的Struts 2服务器上均可利用该漏洞远程执行任意命令

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-045 命令执行漏洞(高危)

介绍:

使用 Jakarta 文件上传插件的 Struts,攻击者可在上传文件时通过修改HTTP请求头中的 Content-Type 值来触发该漏洞,进而执行系统命令。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-046 命令执行漏洞(高危)

介绍:

使用 Jakarta 文件上传插件的 Struts,攻击者可在上传文件的大小(由 Content-Length 头指定)大于 Struts2 允许的最大大小(2GB),文件名内容构造恶意的 OGNL 来触发该漏洞,进而执行系统命令。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

S2-052 命令执行漏洞(高危)

介绍:

Apache Struts2 Freemarker标签如果被错误的配置使用,将会导致RCE远程代码执行漏洞。

修复:

1.升级到Apache Struts版本2.5.12或2.3.34;

2.使用只读属性来初始化value属性(仅限getter属性);

3.Freemarker标签内容不要通过Request方式获取 。

S2-053 命令执行漏洞(高危)

介绍:

Struts2 REST 插件使用带有 XStream 程序的 XStream Handler 进行未经任何代码过滤的反序列化操作,这可能在反序列化XML payloads时导致远程代码执行。任意攻击者都可以构造恶意的XML内容提升权限。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

JDWP 远程命令执行漏洞(高危)

介绍:

JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。当对外开启该协议的Java调试模式时,存在远程命令执行漏洞。允许攻击者远程执行代码,获得服务器权限。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

ElasticSearch 命令执行漏洞(高危)

介绍:

该漏洞存在于一个名为ElasticSearch.yml的文件,在这个文件中存在一个配置项“script.disable_dynamic”,默认为“false”。此默认配置允许服务器动态执行用户发送的任意代码。黑客只需要通过一个URL地址向服务器传送一段代码,就可以创建和执行他们自己的程序。一旦黑客获得通过,他们在服务器上的操作将不受任何限制,包括窃取网站中的用户账号及密码等敏感信息,或者留下一个后门程序。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

GNU Bash 远程命令执行(高危)

介绍:

GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。

修复:

1.升级最新版本; 2.系统如果不再使用 ,请将其下线或用防火墙屏蔽。

Weblogic Java 反序列化远程命令执行漏洞(高危)

介绍:

Weblogic存在Java反序列化漏洞,攻击者可以远程执行系统命令,获得服务器权限。

修复:

及时升级官方补丁。

shiro 反序列化命令执行漏洞(高危)

介绍

利用工具:shiro反序列化漏洞综合利用工具

GitHub - j1anFen/shiro_attack: shiro反序列化漏洞综合利用,包含(回显执行命令/注入内存马)

shiro-550(shiro小于1.2.5)主要是由shiro的rememberMe内容反序列化导致的命令执行漏洞,造成的原因是AES密钥被硬编码在shiro源码中,这就导致了可以通过在coo0kie的rememberMe字段插入payload实现任意代码执行。

修复:

升级shiro版本。

JBoss 反序列化命令执行漏洞(高危)

介绍

根源在CommonsCollections组件中对于集合的操作存在可以进行反射调用的方法,并且该方法在相关对象反序列化时并未进行任何校验,导致远程代码执行。利用漏洞,允许攻击者远程执行系统命令,获得服务器权限,导致服务器运行安全风险。

修复:

1.针对JBoss Java反序列化漏洞,建议更新jboss版本到最新版(This Week in JBoss - 08 September 2022 - JBoss.org)或 更新官方补丁;

2.针对数据库帐号密码进行修改,要求密码长度8位数以上,密码复杂程度必须包含数字、大小写字母及特殊字符;

3.对服务器进行全面安全检查,及时排查、清除webshell等后门文件;及时修改数据库密码等。

JBoss JMXInvokerServlet 远程命令执行漏洞(高危)

介绍

Jboss在默认安装的时候,会安装http-invoker.sar站点,当请求invoker/JMXInvokerServlet或invoker/EJBInvokerServlet会调用org.jboss.invocation.http.servlet.InvokerServlet.class处理请求。该类对GET请求和POST请求,统一调用processRequest函数处理,因此,攻击者需要自己构造一个jboss的类,并且将其序列化,然后将序列化的数据直接提交到存在漏洞站点的invoker/JMXInvokerServlet页面,恶意代码将会被执行。

修复:

建议删除或禁止访问/invoker/JMXInvokerServlet文件。

ThinkPHP 命令执行(高危)

介绍:

由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。

修复:

升级thinkPHP至最新版本。

Apache ActiveMQ 远程代码执行漏洞 (CVE-2016-3088)(高危)

介绍

Apache ActiveMQ Fileserver 存在多个安全漏洞,可使远程攻击者用恶意代码替代Web应用,在受影响系统上执行远程代码(CVE-2016-3088)。

修复:

1.ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本;

2.通过移除 conf\jetty.xml 的以下配置来禁用 ActiveMQ Fileserver 功能。

JBoss Seam 参数化EL表达式远程代码执行漏洞(高危)

介绍:

JBoss Seam是一个Java EE5框架,把JSF与EJB3.0组件合并在一起,从而为开发基于Web的企业应用程序提供一个最新的模式。 JBoss Seam处理某些参数化JBoss EL表达式的方式存在输入过滤漏洞( CVE-2010-1871)。如果远程攻击者能够诱骗通过认证的JBoss Seam用户访问特制的网页,就可能导致执行任意代码

修复:

升级至4.3.0 EL4或以上更高的、确认已修复此漏洞的版本。参考链接:615956 – (CVE-2010-1871) CVE-2010-1871 JBoss Seam / Seam2: Improper sanitization of parametrized JBoss EL expressions (ACE)。

HPPT.sys 远程代码执行漏洞(MS15-034)(高危)

介绍

远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。

修复

缓解方案:Microsoft Security Bulletin MS15-034 - Critical | Microsoft Learn 升级补丁:Microsoft 安全公告 MS15-034 - 严重 | Microsoft Learn

Webview 远程代码执行漏洞(高危)

介绍

WebView组件中的addJavascriptInterface方法用于实现本地Java和JavaScript的交互,但是该函数并没有对方法调用进行限制,导致攻击者可以调用任何JAVA类,最终导致JavaScript代码对设备进行任意攻击

修复

建议不使用addJavascriptInterface接口,对于Android API Level为17或者以上的Android系统,Google规定允许被调用的函数,必须在Java的远程方法上面声明一个@JavascriptInterface注解;在使用js2java的bridge时候,需要对每个传入的参数进行验证,避免恶意代码的攻击。

拒绝服务类

slowhttp 拒绝服务攻击(中危)

介绍

如果远程攻击者使用发包工具向Apache服务器发送了不完整的HTTP请 求,服务器会打开连接等待接受完整的头,但如果发包工具不再继续发送完整请求而是发送无效头的话,就会一直保持打开的连接。这种攻击所造成的影响很严重, 因为攻击者不需要发送很大的通讯就可以耗尽服务器上的可用连接。也就是说,即使低带宽的用户也可以攻击大流量的服务器。

修复

1.升级到最新版的apache;

2.在httpd.conf中添加RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500;

3.直接在 iptables 中限制每个 IP 的连接数可以解决以上绝大部分问题,除非攻击者拥有众多肉鸡,否则单 IP 的攻击将失去效果。 iptables -A INPUT -p tcp --syn --dport 8889 -m connlimit --connlimit-above 20 -j REJECT --reject-with tcp-reset 。


本文转载自: https://blog.csdn.net/x319427393/article/details/129380078
版权归原作者 Alone hackers 所有, 如有侵权,请联系我们删除。

“漏洞介绍及修复建议(漏洞汇总,建议收藏后期会不断更新)”的评论:

还没有评论