漏洞整改建议

漏洞整改建议

2023年7月11日发(作者:)

1.1. 针对网站目录路径泄露整改建议

统一错误代码:确保你不小心通过提供不一致或“冲突”的错误消息给攻击者。

信息错误消息:确保错误信息不透露太多的信息。完全或部分路径,变量和文件名,行和表中的列名,和特定的数据库的错误不应该透露给最终用户。

适当的错误处理:利用通用的错误页面和错误处理逻辑,告知潜在的问题的最终用户。不提供系统信息或可能被攻击者利用精心策划的攻击时,其它数据。

1.2. 针对文件上传漏洞整改建议

文件上传功能允许 Web 用户将文件从自己的计算机发送到 Web 服务器。如果用于接收文件的 Web 应用程序未仔细检查此文件是否包含恶意内容,那么攻击者也许能够通过上传文件在服务器上执行任意命令。建议采取严格的文件上传策略,通过清理和筛选避免上传恶意材料。

限制文件上传的类型,检查的文件扩展名,只允许特定的文件上传。用白名单的方式而不是一个黑名单。检查双扩展,如.。检查的文件没有文件 名一样。htaccess(对配置文件,检查网络配置。)。改变对上传文件夹的权限,文件在此文件夹中不可执行。如果可能的话,重命名上传文件。

可能会在 Web 服务器上运行远程命令。这通常意味着完全破坏服务器及其内容

可能会在 Web 服务器上上载、修改或删除 Web 页面、脚本和文件

在文件上载过程中,限制用户能力和许可权:

[1] 确保上载脚本只能控制上载的文件名和位置。

[2] 不上载脚本文件,如 asp、aspx、php、jsp 等。只允许上载静态内容。

[3] 只允许上载预期的文件类型。例如,如果您预期纯文本文件,便只允许 .txt 扩展名。

[4] 验证上载的文件内容。如果您预期纯文本文件,请确保它不含二进制字符或动态脚本部分。

1.3. 针对文件WEB站点结构泄露漏洞整改建议

可能会检索有关站点文件系统结构的信息,这可能会帮助攻击者映射此 Web 站点。

1、 文件不应用来保护或隐藏信息

2、 您应该将敏感的文件和目录移到另一个隔离的子目录,以便将这个目录排除在 Web Robot 搜索之外。如下列示例所示,将文件移到“folder”之类的非特定目录名称是比较好的解决方案: New directory

structure: /folder/ /folder/sensitive_folder/

New : User-agent: * Disallow: /folder/

3、 如果您无法更改目录结构,且必须将特定目录排除于 Web Robot 之外,在 文件中,请只用局部名称。虽然这不是最好的解决方案,但至少它能加大完整目录名称的猜测难度。例如,如果要排除“sensitive_folder”和 “”,请使用下列名称(假设

Web 根目录中没有起始于相同字符的文件或目录): :

User-agent: * Disallow: /se Disallow: /pa

1.4. 针对源代码泄露漏洞整改建议

攻击者可以收集敏感信息(数据库连接字符串,应用程序逻辑)的源代码分析。该信息可以被用来进行进一步的攻击。

1、 建议升级最新tomcat中间件。

2、 建议在tomcat的conf/文件里加入大写.JSP映射。即

JSP

*.JSP

1.5. 针对SVN库发现漏洞整改建议

这些文件可以公开敏感信息,有助于一个恶意用户准备更进一步的攻击。

从生产系统中删除这些文件或限制访问.svn目录。拒绝访问所有你需要在适当的范围内添加以下几行svn文件夹(或者全局配置, 或者 vhost/directory,

或者是 .htaccess)。

Order allow,deny

Deny from all

1.6. 针对网络端口未限制漏洞的整改建议

1、 建议明确每个端口对应的服务进程,根据系统和应用的要求,关闭系统中不必要的服务进程

2、 建议明确服务器的对外和对内的服务用途,关闭系统中不必要的服务端口(如139、445等)。

3、 如果需要对外开放其他端口,建议采用IP地址限制(例如:3389端口)。

4、 建议防火墙关闭不需要的端口,只开放对外提供服务的端口(例如:80端口)。

远程攻击者可以根据端口号来判断服务器有哪些应用,并根据相应的应用采取对应攻击,为黑客提供了更多攻击途径与手段。

1.1 针对SQL注入漏洞的整改建议

每个提交信息的客户端页面,通过服务器端脚本(JSP、ASP、ASPX、PHP等脚本)生成的客户端页面,提交的表单(FORM)或发出的连接请求中包含的所有变量,必须对变量的值进行检查。过滤其中包含的特殊字符,或对字符进行转义处理。特殊字符包括:

SQL语句关键词:如 and 、or 、select、declare、update、xp_cmdshell;

SQL语句特殊符号:’、”、;等;

此外,Web应用系统接入数据库服务器使用的用户不应为系统管理员,用户角色应遵循最小权限原则;具体建议如下:

1、 严格定义应用程序可接受的数据类型(例如,字符串、字母数字字符等)。

2、 使用肯定的定义而非否定的定义。验证输入中是否存在不正确的字符。采用这样一种基本原理:使用肯定的定义而非否定的定义。有关详细信息,请参阅下面的代码示例。

3、 不要向最终用户显示提供的信息(如表名)可用于策划攻击的错误消息。

4、 定义受允许的字符集。例如,如果某个字段要接受数字,请使该字段仅接受数字。

5、 定义应用程序接受的最大和最小数据长度。

6、 指定输入可接受的数字范围。

1.7. 针对跨站脚本漏洞整改建议

每个提交信息的客户端页面,通过服务器端脚本(JSP、ASP、ASPX、PHP等脚本)生成的客户端页面,提交的表单(FORM)或发出的连接请求中包含的所有变量,必须对变量的值进行检查。过滤其中包含的特殊字符,或对字符进行转义处理。特殊字符包括:

HTML标签的<符号、“符号、’符号、%符号等,以及这些符号的Unicode值;

客户端脚本(Javascript、VBScript)关键字:javascript、script等;

此外,对于信息搜索功能,不应在搜索结果页面中回显搜索内容。同时应设置出错页面,防止Web服务器发生内部错误时,错误信息返回给客户端。 1.8. 针对Fckeditor编辑器漏洞整改建议

1、 删除FCKeditor测试页面。

2、 升级最新版FCKeditor编辑器

1.9. 针对任意文件下载漏洞整改建议

1、 禁止用文件名的方式访问网站目录的文件。

2、 访问的文件名必须限制在规定的目录内,禁止越权使用别的目录

1.10. URL跳转漏洞

漏洞类型: URL跳转漏洞

详细说明:Web应用程序接收到用户提交的URL参数后,没有对参数做“可信任URL”的验证,就向用户浏览器返回跳转到该URL的指令。黑客可以通过URL跳转漏洞进行钓鱼窃取账号

修复方案:

保证用户所点击的URL,是从web应用程序中生成的URL,所以要做TOKEN验证。

1.11. 检测到应用程序测试脚本

可能会下载临时脚本文件,这会泄露应用程序逻辑及其他诸如用户名和密码之类的敏感信息

不可将测试/暂时脚本遗留在服务器上,未来要避免出现这个情况。

确保服务器上没有非正常操作所必备的其他脚本。

1.12. Apache – TraceEnable

可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务

譯者:Nica < nicaliu at gmail dot com >

【Nica 註:這是 檔裡的設定指令!~】 Description: Determines the behaviour on TRACE requests

Syntax: TraceEnable [on|off|extended]

Default: TraceEnable on

Context: server config

Status: Core

Module: core

Compatibility: Available in Apache 1.3.34, 2.0.55 and later

Traditionally experts will suggest to disable this using some rewrite

rules like:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} ^TRACE

RewriteRule .* - [F]

(this needs to be added somewhere in your main apache config file outside

of any vhost or directory config).

Still this has the disadvantage that you need to have

mod_rewrite enabled

on the server just to mention one. But for apache versions newer than

1.3.34 for the legacy branch, and 2.0.55 (or newer) for apache2 this can

be done very easily because there is a new apache variable that controls

if TRACE method is enabled or not:

TraceEnable off

解决方案: 禁用这些方式。

1、在各虚拟主机的配置文件里添加如下语句:

在里解除

LoadModule rewrite_module modules/mod_的注释

再增加

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)

RewriteRule .* - [F]

2、Available in Apache 1.3.34, 2.0.55 and later

TraceEnable off

1.13. tomcat下禁止不安全的http方法

如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等协议访问应用程序

WebDAV (Web-based Distributed Authoring and Versioning)是基于 HTTP

1.1 的一个通信协议。它为 HTTP 1.1 添加了一些扩展(就是在 GET、POST、HEAD

等几个 HTTP 标准方法以外添加了一些新的方法),使得应用程序可以直接将文件写到 Web Server 上,并且在写文件时候可以对文件加锁,写完后对文件解锁,还可以支持对文件所做的版本控制。这个协议的出现极大地增加了 Web 作为一种创作媒体对于我们的价值。基于 WebDAV 可以实现一个功能强大的内容管理系统或者配置管理系统。

现在主流的WEB服务器一般都支持WebDAV,使用WebDAV的方便性,呵呵,就不用多说了吧,用过开发应用的朋友就应该 知道,新建/修改WEB项目,其实就是通过WebDAV+FrontPage扩展做到的,下面我就较详细的介绍一下,WebDAV在tomcat中的配 置。

如何禁止DELETE、PUT、OPTIONS、TRACE、HEAD等协议访问应用程序应用程序呢?

解决方法

第一步:修改应用程序的文件的协议

Xml代码

1.

2.

3.

4.

5.

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/xml/ns/j2ee/web-app_2_"

version="2.4">

第二步:在应用程序的中添加如下的代码即可

Xml代码

1.

2.

3.

4.

5.

6.

7.

8.

9.

/*

PUT

DELETE

HEAD

OPTIONS

TRACE

10.

11.

12.

13.

14. BASIC

15.

重新部署程序,重启tomcat即可完成

如果用户要验证既可以将POST和GET也添加在其中,重新部署并启动tomcat即可看到效果

以上的代码添加到某一个应用中,也可以添加到tomcat的中,区别是添加到某一个应用只对某一个应用有效如果添加到tomcat的中,则对tomcat下所有的应用有效。

(转)启用了不安全的HTTP方法

2013-04-26 15:28:56| 分类: spring mvc |字号 订阅

原文地址:/blog/static//

安全风险:

可能会在Web 服务器上上载、修改或删除Web 页面、脚本和文件。

可能原因:

Web 服务器或应用程序服务器是以不安全的方式配置的。

修订建议:

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

方法简介:

除标准的GET和POST方法外,HTTP请求还使用其他各种方法。许多这类方法主要用于完成不常见与特殊的任务。如果低权限用户可以访问这些方法,他们就能够以此向应用程序实施有效攻击。以下是一些值得注意的方法:

PUT

COPY

MOVE

向指定的目录上载文件

将指定的资源复制到Destination消息头指定的位置

将指定的资源移动到Destination消息头指定的位置

DELETE

删除指定的资源

SEARCH

在一个目录路径中搜索资源

PROPFIND

获取与指定资源有关的信息,如作者、大小与内容类型

TRACE

在响应中返回服务器收到的原始请求

其中几个方法属于HTTP协议的WebDAV(Web-based Distributed Authoring and Versioning)扩展。

渗透测试步骤:

使用OPTIONS方法列出服务器使用的HTTP方法。注意,不同目录中激活的方法可能各不相同。

许多时候,被告知一些方法有效,但实际上它们并不能使用。有时,即使OPTIONS请求返回的响应中没有列出某个方法,但该方法仍然可用。

手动测试每一个方法,确认其是否可用。

使用curl测试:

curl -v -X OPTIONS /test/

查看响应的 Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS

curl -v -T /test/

看是否能上载来判断攻击是否生效。

找一个存在的页面,如

curl -X DELETE /test/

如果删除成功,则攻击有效。

解决方案:

如tomcat,配置

fortune

/*

PUT

DELETE

HEAD

OPTIONS

TRACE

BASIC

重启tomcat即可完成。

以上的代码添加到某一个应用中,也可以添加到tomcat的中,区别是添加到某一个应用只对某一个应用有效,如果添加到tomcat的中,则对tomcat下所有的应用有效。

1.14. 针对启用了Microsoft Debugging整改建议

对所有易受攻击的目录禁用调试。要禁用调试,请如下所述编辑 文件:

<>

可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置

1.15. 针对Apache(tomcat)默认示例页面漏洞整改建议

将 Web 服务器配置成拒绝列出目录。

根据 Web 服务器或 Web 应用程序上现有的问题来下载特定安全补丁。部分已知的目录列表问题列在这个咨询的“引用”字段中。

可能会查看和下载特定 Web 应用程序虚拟目录的内容,其中可能包含受限文件

1.16. 针对直接访问管理页面漏洞的整改建议

可能会升级用户特权并通过 Web 应用程序获取管理许可权

不具备适当的授权,便禁止访问管理脚本,因为攻击者可能会因而获取特许权利。

漏洞描述

在测试的过程中发现应用系统的管理后台地址存在泄漏的风险,应用系统的管理后台地址过于简单攻击者可以轻易的猜解到进行更一步的攻击。

应用系统管理后台地址太简单,导致攻击者可以轻易猜测到应用系统的管理漏洞危害 后台地址,进而通过fuzzer等技术破解后台密码或通过其他技术攻击应用系统。

安全建议

为应用程序管理后台配置一个复杂的地址,防止非法访问者得到管理后台访问权。 1.17. 针对Apache、PHP版本低漏洞的整改建议

1、

将您的 Apache Web 服务器升级到最新的可能版本。您可以下载补丁,链接位置如下: /dist/httpd/

2、

将您的PHP服务器升级到最新的可能版本。您可以下载补丁,链接位置如下:/

恶意攻击者可以利用各种版本漏洞进行攻击,会导致服务器拒绝服务影响服务器的正常运行。

1.18. 针对PHPinfo信息泄露漏洞的整改建议

禁止在代码中使用phpinfo()函数。

1.19. 针对URL重定向漏洞的整改建议

保证用户所点击的URL,是从web应用程序中生成的URL,所以要做正确过滤用户输入。

1.20. 针对Flash 参数 AllowScriptAccess 已设置为

always漏洞整改建议

请将 AllowScriptAccess 参数设为“sameDomain”,告诉 Flash 播放器,只有从父 SWF 的相同域中装入的 SWF 文件有对托管 Web 页面的脚本访问权。

1.21. 主机允许从任何域进行 flash 访问

可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务

请安装 文件中 allow-access-from 实体的 domain 属性来包括特定域名,而不是任何域。

1.22. 针对网站后台管理口令弱漏洞整改建议

加强口令强度,建议密码为8位以上以字母、数字、符号的组合。

建议用户对网站后台采取IP授权管理,只有被认证的IP可以远程访问网站后台。

1.23. 目录列表

危害

攻击者在您的应用程序服务器上发现“目录列表”所带来的风险取决于所发现的目录类型以及其中包含的文件类型。可访问目录列表的主要威胁是,数据文件、源代码或开发中的应用程序等隐藏文件将对于潜在攻击者可见。除访问包含敏感信息的文件以外,其他风险包含攻击者利用在该目录中发现的信息执行其他类型的攻击。

可能会查看和下载特定 Web 应用程序虚拟目录的内容,其中可能包含受限文件

整改建议

对于开发部门:

除非您主动参与实施 Web 应用程序服务器,否则对于因攻击者找到目录列表而可能发生的问题,尚没有太多可用的解决方案。此问题将主要由 Web 应用程序服务器管理员解决。但是,可以采取一些措施来帮助保护 Web 应用程序。

限制只有那些确实需要的人员才可以访问重要文件和目录。

确保包含敏感信息的文件不可公开访问,或者遗留在文件中的注释不会泄漏机密目录的位置。

对于安全运营部门:

保证 Web 应用程序安全性最重要的一个方面是,限制只有那些确实需要访问的人员才可以访问重要文件和目录。确保不要将 Web 应用程序的专有体系结构暴露给任何希望查看该结构的人员,因为即使表面上看似无害的目录也可能向潜在攻击者提供重要信息。

以下建议可帮助您避免无意中允许对可用于进行攻击的信息和存储在可公开访问目录中的专有数据进行访问。

在您使用的任何应用程序服务器软件包中关闭自动目录列表功能。

限制只有那些确实需要的人员才可以访问重要文件和目录。

确保不要将包含敏感信息的文件保留为可公开访问的状态。

对于隐藏目录,请勿遵循标准的命名规则。例如,不要创建名为“cgi”的包含 cgi 脚本的隐藏目录。太明显的目录名称...很容易被攻击者猜到。

请记住,越是让攻击者难以访问有关 Web 应用程序的信息,他就越是有可能轻易地找到更易攻击的目标。

1.24. How to disable directory listings

The easiest way to disable directory listing is to create an index file. The name of the

index file depends on the web server configuration. On Apache is called ,

. On IIS is named , , .

On IIS directory listings are disabled by default.

For Apache you need to edit the Apache configuration file (usually named ) or

create an .htaccess file. In the configuration file you will have the definition of the

directory. Something like

Options Indexes FollowSymLinks

...

To disable directory listing for that directory you need to remove the 'Indexes' option.

配置apache的配置文件,看到目录文件进行如下时。

Options Indexes FollowSymLinks

...

去掉Indexes参数即可

1.25. 针对内部IP地址泄露漏洞整改建议

对攻击者而言,泄露内部 IP 非常有价值,因为它显示了内部网络的 IP 地址方案。知道内部网络的 IP 地址方案,可以辅助攻击者策划出对内部网络进一步的攻击。

禁止使用IP链接,防止内部网络信息泄露,可以把IP链接改成域名连接方式即可。

1.26. 针对敏感信息泄露漏洞的整改建议

危害:

由于服务器配置或开发设计不当,导致的敏感信息泄漏问题。例如根据页面的错误提示,我们可以知道该数据库信息、中间件名称,版本,甚至是目录列表等,然后制定有针对性的攻击。

整改建议:

1、 检查输入请求,以了解所有预期的参数和值是否存在。 当参数缺失时,发出适当的错误消息,或使用缺省值。

2、 应用程序应验证其输入是否由有效字符组成(解码后)。 例如,应拒绝包含空字节(编码为 %00)、单引号、引号等的输入值。

3、 确保值符合预期范围和类型。 如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。 例如,如果应用程序预期值在 10..99 范围内,那么就该确保该值确实是数字,且在 10..99 范围内。

4、 验证数据是否属于提供给客户端的集合。

5、 请勿在生产环境中输出调试错误消息和异常。

6、 将所有的错误信息设定统一的返回页面。 1.27. 针对 Padding Oracle漏洞整改建议

1、根据相应的软件只要打上微软官方的相应补丁。

2、如果您使用的是1.0,1.1,2.0或3.5,那么你应该遵循以下的步骤,开启使所有错误映射到某一个错误页面上。

<>

3、如果您使用的是3.5 SP1或4.0,那么你应该遵循以下步骤,开启使所有错误映射到某一个错误页面上。

<>

defaultRedirect="~/" />

攻击者利用此漏洞可以查看目标服务器的加密的数据,如视图状态,或从服务器中的文件中读取数据,如中。这将允许攻击者篡改数据的内容。通过发回改变内容给受影响的服务器,攻击者可以观察到由服务器返回的错误代码。

1.28. 针对.net错误信息漏洞整改建议

将应用程序配置为不向远程用户显示错误

在应用程序的 文件中,对 customErrors 元素执行以下更改:

将 mode 属性设置为 RemoteOnly(区分大小写)。这就将应用程序配置为仅向本地用户(即开发人员)显示详细的错误。

(可选)包括指向应用程序错误页面的 defaultRedirect 属性。

(可选)包括将特定错误重定向到特定页面 元素。例如,可以将标准 404 错误(未找到页面)重定向到自己的应用程序页。

• 下面的示例显示了 文件中典型的 customErrors 块。

statusCode="403" redirect=""/>

*摘录结束*

在这种情况下,应将 500 错误重定向到自定义页面:

statusCode="403" redirect=""/>

statusCode="500" redirect=""/>

任何时候都不应该在生产 Web 应用程序上提供详细的错误报告。错误消息为攻击者提供关于应用程序的有用信息,这些消息通常是协助攻击者执行攻击的第一步。

1.29. 针对服务器路径泄露漏洞整改建议

以下建议将有助于确保潜在攻击者不会从显示的任何错误消息中得到有价值的信息。

统一的错误代码:确保您不会使用不一致或“冲突的”错误消息而在无意中将信息提供给攻击者。例如,请不要通过错误消息(如“拒绝访问”)泄漏非预期信息,这样也会让攻击者知道他搜索的文件确实存在。对于存在、不存在以及拒绝读取权限的文件和文件夹,应使用一致的术语。

信息性错误消息:确保错误消息不会泄漏过多信息。完整或部分路径、变量和文件名、表中的行和列名称以及特定的数据库错误切不可泄漏给最终用户。请记住,攻击者将收集尽可能多的信息,然后将一些表面上无害的信息整合到一起即可策划攻击方法。

适当的错误处理:使用常规错误页面和错误处理逻辑向最终用户通知潜在问题。不要提供可供攻击者在策划攻击时使用的系统信息或其他数据。

可能会检索 Web 服务器安装的绝对路径,这可能会帮助攻击者开展进一步攻击和获取有关 Web 应用程序文件系统结构的信息

1.30. 针对内部IP地址泄露漏洞整改建议

禁止使用IP链接,防止内部网络信息泄露,可以把IP链接改成域名连接方式即可。

发现了与内部/保留 IPv4 或 IPv6 地址范围相匹配的字符串。这可能会泄漏有关内部网络的 IP 寻址方案的信息,对攻击者很有价值。

1.31. Frontpage Server Extensions 服务配置泄漏

()

危害

在某个运行 Microsoft FrontPage Server Extensions 的系统上的 _vti_pvt

目录中找到了 文件。该文件包含可由 Web 用户更新的文件的反向链接,如“保存结果”表单处理程序结果文件。攻击者可能会请求易受攻击的文件,从而导致服务泄漏敏感系统信息。攻击者可以利用此信息对受影响的主机进一步发动攻击。建议不需要该文件时将其从系统上删除,或严格设置默认权限。

fix

如果不再需要该文件,将其从系统上删除。将丢失所有的 FrontPage 功能,所有 FrontPage Server Extension 功能(包括发布功能)都无法工作。

如果需要该文件,请确保访问控制列表 (ACL) 不会向匿名用户授予

文件的访问权限。严格设置默认权限,防止未经授权访问此文件。阻止未经授权访问该文件可防止向潜在攻击者泄漏敏感系统信息。

1.32. IIS Missing Host Header Internal IP Address

Disclosure

在某些配置下,当 HTTP/1.0 请求不包含主机标头时,IIS 可能会泄漏其内部 IP

地址。

信息泄漏漏洞会向攻击者泄漏有关系统或 Web 应用程序的敏感信息。尝试在未经授权的情况下进行访问时,攻击者可以使用这些信息了解有关系统的更多信息。

1.33.

SQL注入漏洞

每个提交信息的客户端页面,通过服务器端脚本(JSP、ASP、ASPX、PHP等脚本)生成的客户端页面,提交的表单(FORM)或发出的连接请求中包含的所有变量,必须对变量的值进行检查。过滤其中包含的特殊字符,或对字符进行转义处理。特殊字符包括:

SQL语句关键词:如 and 、or 、select、declare、update、xp_cmdshell;

SQL语句特殊符号:’、”、;等;

此外,Web应用系统接入数据库服务器使用的用户不应为系统管理员,用户角色应遵循最小权限原则;具体建议如下:

1. 严格定义应用程序可接受的数据类型(例如,字符串、字母数字字符等)。

2. 使用肯定的定义而非否定的定义。验证输入中是否存在不正确的字符。采用这样一种基本原理:使用肯定的定义而非否定的定义。有关详细信息,请参阅下面的代码示例。

3. 不要向最终用户显示提供的信息(如表名)可用于策划攻击的错误消息。

4. 定义受允许的字符集。例如,如果某个字段要接受数字,请使该字段仅接受数字。

5. 定义应用程序接受的最大和最小数据长度。

指定输入可接受的数字范围。

影响

SQL 注入是一种攻击方法,其中攻击者可以利用易受攻击的代码和应用程序将接受的数据类型,可在影响数据库查询的任意应用程序参数中利用该攻击方法。正常 SQL 注入攻击很大程度上取决于攻击者使用从错误消息获取的信息对原始

SQL 查询进行的反向工程部分。但是,即使未显示错误消息,您的应用程序仍然易受 SQL 盲注的影响。如果成功,SQL 注入可使攻击者有权访问后端数据库内容、能够远程执行系统命令,在某些情况下甚至可以控制托管数据库的服务器。

1.34.

跨站脚本漏洞

每个提交信息的客户端页面,通过服务器端脚本(JSP、ASP、ASPX、PHP等脚本)生成的客户端页面,提交的表单(FORM)或发出的连接请求中包含的所有变量,必须对变量的值进行检查。过滤其中包含的特殊字符,或对字符进行转义处理。特殊字符包括:

HTML标签的<符号、“符号、’符号、%符号等,以及这些符号的Unicode值;

客户端脚本(Javascript、VBScript)关键字:javascript、script等;

此外,对于信息搜索功能,不应在搜索结果页面中回显搜索内容。同时应设置出错页面,防止Web服务器发生内部错误时,错误信息返回给客户端。具体建议如下:

1. 定义允许的行为。确保 Web 应用程序根据预期结果的严格定义来验证所有输入参数(Cookie、标头、查询字符串、表单、隐藏字段等)。

2. 检查POST 和 GET 请求的响应,以确保返回的对象是预期的内容且有效。

3. 通过对用户提供的数据进行编码,从用户输入中移除冲突的字符、括号和单双引号。这将防止将插入的脚本以可执行的格式发送给最终用户。

4. 只要可能,就应将客户端提供的所有数据限制为字母数字数据。使用此过滤机制时,如果用户输入“”,将缩减为“scriptalertdocumentcookiescript”。如果必须使用非字母数字字符,请先将其编码为 HTML 实体,然后再将其用在 HTTP 响应中,这样就无法将它们用于修改 HTML 文档的结构。

5. 使用双因素客户身份验证机制,而非单因素身份验证。

6. 在修改或使用脚本之前,验证脚本的来源。

7. 不要完全信任其他人提供的脚本并用在您自己的代码中(不论是从 Web

上下载的还是熟人提供给您的)。

影响: 跨站脚本漏洞可以再分成两类:Stored attack 和 Reflected attack。这两种攻击的主要区别在于有效负荷到达服务器的方式。Stored attack 仅以某种形式存储在目标服务器上(例如在数据库中),或通过提交至公告板或访问者日志来进行存储。如果请求了所存储的信息,受害者将在自己的浏览器中检索和执行攻击代码。而 Reflected attack 则来自其他地方。当通过动态生成的网页中的服务器端,直接将 Web 客户端的用户输入包含在内时,就会出现 Reflected

attack。通过某些社会工程手段,例如通过恶意链接或“伪装”表单,攻击者可以哄骗受害者提交信息,然后对信息进行修改以包含攻击代码,并将其发送至合法服务器。注入的代码随后将反射回用户的浏览器,由于此代码来自受信任的服务器,用户的浏览器将会执行此代码。两种攻击的影响都是相同的。

1.35.

发现目录启用了自动目录列表功能

描述:

目标目录启用了自动目录列表功能。

1.当用户访问的网址是某个目录地址的时候,服务器自动显示该目录所包含的文件列表内容。

2. 当用户请求的URL地址是某个目录地址的时候,如果该目录开启了自动列表功能并且WEB服务器默认的页面文件(如/////等)也不存在,那么该目录所包含的文件就会被自动的以列表的形式显示出来,这样可能就会导致敏感文件被泄露。

危害:

1.任何人都可以浏览该目录下的所有文件列表。

2. 如果该目录不存在默认的主页面文件,并且该目录包含了敏感的文件内容(如应用程序源码文件或其它的重要文件内容),那么将导致敏感文件内容外泄,从而对企业造成直接的经济损失或为恶意攻击者提供进一步攻击的有效信息。

解决方案: 1、如果必须开启该目录的目录列表功能,则应对该目录下的文件进行详细检查,确保不包含敏感文件。

2、如非必要,请重新配置WEB服务器,禁止该目录的自动目录列表功能。

附:1. Apache禁止列目录:

方法一,修改 配置文件,查找 Options Indexes FollowSymLinks,修改为

Options -Indexes;

方法二,在www 目录下的修改.htaccess 配置文件,加入 Options -Indexes。 (推荐)

2. Tomcat 禁止列目录:

在Tomcat的conf/文件里把listings值改为false,即,

……

listings

false

……

PS:修改完后,一定记得重启web服务,才能生效噢!

1.36.

CVS服务器敏感信息泄露漏洞

描述:

目标存在CVS服务器敏感信息泄露漏洞

由于CVS pserver配置不当,导致泄露CVS的连接账号和密码

危害:

黑客可以通过泄露的CVS的连接账号和密码,对网站进行下一步攻击。

解决案: 屏蔽此类信息的输出。

1.37. 针对Tomcat控制台暴露漏洞整改建议

可以删除{$tomcat_home}/conf/Catalina/localhost目录下的和文件。

1.38. 缺HOST头IP地址泄露整改建议

当黑客得到了主机IP地址之后就可能用各种方法进入这个IP地址,甚至可以得到整个局域网的地址,从而产生很大的危害。

adsutil set w3svc/UseHostName True

net stop iisadmin /y

net start w3svc

Option 1: Set the UseHostName property

To set the UseHostName property, follow these steps:

 Click Start, click Run, type cmd, and then click OK to open a command prompt.

 Change to the folder where the tool is located. By default, this folder is the

following:

%SYSTEMROOT%InetpubAdminScripts

This really means type the following in the command prompt

Type CD /D C:InetpubAdminScipts

 Type the following command, where x is your site identifier:

cscript set w3svc/x/UseHostName true

To get the Site Identifier open the IIS Adminsitrative tool

On the Left Select Web Sites folder, then on the Right view the IDENTIFIER Column. For each

number shown run the following command

cscript set w3svc/#####/UseHostName true

Where ### is the Identifiere

Run these commands to complete the changes.

net stop iisadmin /y

Net start w3svc 修改成功后的命令(经过测试)。

注意由于alternateHostName属性用来停止泄露服务器的内部 IP 地址,还应设置alternateHostName的值在您安装此修补程序时。要设置的alternateHostName值,请执行以下命令:

set config -section:ver/serverRuntime

/alternateHostName:"" /commit:apphost

1.39. 针对登录请求未加密漏洞整改建议

1. 确保所有登录请求都以加密方式发送到服务器。

2. 请确保敏感信息,例如:

- 用户名

- 密码

- 社会保险号码

- 信用卡号码

- 驾照号码

- 电子邮件地址

- 电话号码

- 邮政编码

一律以加密方式传给服务器。

漏洞危害

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

可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息

1.40. 针对密码猜测攻击整改建议

1、

2、

针对密码猜测,建议控制错误登录次数,以防止暴力破解。

添加验证码,防止暴力破解。 1.41. 未设置cookie的Httponly属性

lljavascript:();

未设置cookie的httponly属性,可通过客户端脚本读取cookie内容。

将该漏洞与跨站脚本漏洞结合利用,可造成窃取用户会话或更大的危害。

1.42. 备份文件

备份文件可以包含脚本源,配置文件或其他敏感信息,有助于一个恶意用户准备更先进的攻击。

How to fix this vulnerability

Remove the file(s) if they are not required on your website. As an

additional step, it is recommended to implement a security policy within

your organization to disallow creation of backup files in directories

accessible from the web.

1.2 针对Struts开发模式开启漏洞整改建议

攻击者可以受影响的服务器上执行任意非法指令。

请在生产服务器上关闭Struts开发模式。如 file:

name="e" value="true" />.

1.3 针对文件包含漏洞整改建议 远程攻击者可以用WEB服务器权限查看本地或远程的文件资源和/或执行任意的脚本代码,这可能会允许攻击者恢复应用程序源代码,系统配置信息,或私人数据。

编辑源代码以确保正确验证输入,建议列出接受文件名和限制输入列表。对于PHP,allow_url_fopen选项默认是开放的,包括或以其他方式使用远程文件使用URL而非本地文件的路径,建议禁用此选项的。

1.43. 错误信息泄露漏洞

任何时候都不应该在生产 Web 应用程序上提供详细的错误报告。错误消息为攻击者提供关于应用程序的有用信息,这些消息通常是协助攻击者执行攻击的第一步。某些页面的信息会提供给恶意用户攻击的各种途径和入口。

1.44. 版本低漏洞

中间件Tomcat 6.0.20历史上出现过 个漏洞。漏洞描述的详细信息为:。

恶意人员可以利用操作系统或软件过去暴露的漏洞,来对系统进行攻击,造成拒绝服务,甚至是控制整个系统。

1.45. 可能敏感文件

This file may expose sensitive information that could help a malicious user to prepare more

advanced attacks.

这些文件可能会暴露敏感信息,并有助于恶意用户为此准备进一步深度攻击。

Restrict access to this file or remove it from the website.

限制访问该文件或删除这些文件。 1.46. 弱口令漏洞

An attacker may access the contents of the password-protected page.

攻击者可以访问受密码保护页面内容,并此做进一步深度攻击。

Enforce a strong password policy. Don't permit weak passwords or passwords based on

dictionary words.

加强强密码策略,不允许使用弱密码或基于字典类密码。

1.47. 发现压缩目录

可能会检索服务器端脚本的源代码,这可能会泄露应用程序逻辑及其他诸如用户名和密码之类的敏感信息

除去或约束对压缩目录文件的访问权。

1.48. SSL v3 Poodle安全漏洞

openssl s_client -ssl3 -connect :443

漏洞危害:

该漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等类似的方式破解(只要劫持到的数据加密两端均使用SSL3.0),便可以成功获取到传输数据(例如HTTP

cookies等敏感信息)。

服务器端解决方法:

建议采用如下防护措施: 即禁用SSL 3.0协议。

注:目前常用浏览器只有IE 6.0仍然不支持TLS 1.0,禁用SSL 3.0协议将影响IE 6客户的SSL访问。

禁止使用SSLv3协议配置:

nginx

修改应用原SSL配置文件中的ssl_protocols以及ssl_ciphers ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-RC4-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;

apache

修改应用原SSL配置文件中SSLProtocol 以及SSLCipherSuite

SSLProtocol all -SSLv3 -SSLv2

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-RC4-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS

不禁止SSLv3协议,去除SSLv3支持的CBC模式的块加密算法配置:

nginx

修改应用原SSL配置文件中的ssl_protocols以及ssl_ciphers

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers

ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-RC4-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;

apache

修改应用原SSL配置文件中SSLProtocol 以及SSLCipherSuite

SSLProtocol all -SSLv2

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-RC4-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS

特别提示:修复完成后请务必重启Apache和Nginx服务使修复生效。

1.49. 弱 SSL 密码套件

可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务

重新配置服务器以避免使用弱密码套件。此配置更改特定于服务器。

对于 Microsoft Windows XP 和 Microsoft Windows Server 2003,请遵循下列指示信息:

/kb/245030

对于 Microsoft Windows Vista、Microsoft Windows 7 和 Microsoft Windows

Server 2008,请通过下列指示信息来移除受支持的密码套件列表中的标记为不安全的密码套件:

/en-us/library/windows/desktop/bb870930(v=vs.85).aspx

对于 Apache TomCat 服务器,请遵循下列指示信息:

//Talk:Securing_tomcat#Disabling_weak_ciphers_in_Tomcat

对于 Apache 服务器,请在 或 文件中修改(或添加)SSLCipherSuite 伪指令:" SSLCipherSuite

HIGH:MEDIUM:!MD5!EXP:!NULL:!LOW:!ADH "(不需要引号)。有关更多信息,请访问:

/docs/2.2/mod/mod_#sslciphersuite

1.50. 已解密的 __VIEWSTATE 参数

可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置

在 文件的 <> 元素之下,添加下面这一行:

1.51. 会话 cookie 中缺少 HttpOnly 属性

可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务

一般

基本上,cookie 的唯一必需属性是“name”字段。常见的可选属性如下:“comment”、“domain”、“path”,等等。必须相应地设置“HttpOnly”属性,才能防止会话 cookie 被脚本访问。

1.52. BEA WebLogic 管理界面

可能会升级用户特权并通过 Web 应用程序获取管理许可权

限制访问管理控制台,倘若不需要,请将其除去。

1.53. 越权信息修改漏洞(高)

越权信息修改漏洞可能会在用户不知情的情况下被修改重要个人信息,在特殊情况下,可能会造成该账户的盗取。

严格校验用户身份合法性,限定用户修改权限,增加修改校验。

1.54. 用户权限保护认证机制缺陷(高)

恶意攻击者可以根据该漏洞直接修改系统相关信息,给系统造成恶劣的影响,甚至获得入侵系统的有效途径。

严格验证用户身份是否合法,如果是合法用户再判断请求范围是否在该用户权限范围内,如不是则跳转到某页面或登录页面。

1.55. 针对test-cgi 敏感信息泄露漏洞整改建议

可能会泄露服务器环境变量,这可能会帮助攻击者开展针对 Web 应用程序的进一步攻击。

强烈建议您从服务器除去这份脚本,或加以禁用(即除去执行许可权)。

替代方案:您也可以用引号(")住响应的变量来修订这份脚本,将:echo

QUERY_STRING = $QUERY_STRING 改成 echo QUERY_STRING =

"$QUERY_STRING"

1.56. HTTP PUT 方法站点篡改

可能会在 Web 服务器上运行远程命令。这通常意味着完全破坏服务器及其内容

可能会在 Web 服务器上上载、修改或删除 Web 页面、脚本和文件

重新配置您的 Web 服务器来拒绝 HTTP“PUT”请求(所有目录),或将 PUT 方法限制于受信任的用户。

1.57. 发现醒置文件

配置文件将披露敏感信息,将有助于恶意用户准备更高级的攻击。

从服务器上删除该文件。作为一个额外的步骤,建议实施安全策略,不允许从Web访问临时/备份文件创建的目录。

1.58. 目录遍历任意文件下载

可能会查看 Web 服务器(在 Web 服务器用户的许可权限制下)上的任何文件(例如,数据库、用户信息或配置文件)的内容

确保请求的文件驻留于 Web 服务器的虚拟路径中。

确保仅可打开特定的扩展名

从用户输入中除去特殊字符(元字符),如竖线(“|”)字符。

针对 Perl CGI 脚本中的文件使用“显式打开”方式。

1.59. Tomcat默认页面(低)

当Apache Tomcat安装默认配置,默信文件也安装。这些文件可能会泄露敏感信息,可以帮助潜在的攻击者。

删除该页面

1.60. 中间件程序版本信息泄漏(低)

漏洞危害

中间件程序版本信息泄漏,会导致攻击者收集到该版本中间件程序的漏洞,进而寻找利用方法进行进一步的侵入。

安全建议 定制统一的错误页面,删除/修改/隐藏中间件程序版本信息,避免信息泄漏。

1.61. Slow Http Denial of Service Attack

Slowloris和Slow HTTP POST拒绝服务攻击基于HTTP协议,由于应用设计要求服务器完全接收请求后才处理,如果一个HTTP请求是不完整的,或者传输率是非常低的,服务器将保持其资源忙并等待其余的数据。如果服务器一直等待,会导致服务器资源耗尽,造成拒绝服务。

参考如下参考资料针对不同的web服务器制定不同的修改方案:

/wiki/Slowloris_DOS_Mitigation_Guide

/slowloris/

/2011/08/protect-apache-slowloris-attack/

1.62. 点击劫持:X-Frame-Options未配置(低)

点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

针对不同应用,请选用不同配置,如下

Apache配置X-Frame-Options

在站点配置文件中添加如下配置,限制只有站点内的页面才可以嵌入iframe。

Header always append X-Frame-Options SAMEORIGIN

配置之后重启apache使其生效。该配置方式对IBM HTTP Server同样适用。

如果同一apache服务器上有多个站点,只想针对一个站点进行配置,可以修改.htaccess文件,添加如下内容:

Header append X-FRAME-OPTIONS "SAMEORIGIN"

Nginx 配置X-Frame-Options

到 nginx/conf文件夹下,修改 ,添加如下内容:

add_header X-Frame-Options "SAMEORIGIN";

重启Nginx服务。

IIS配置X-Frame-Options

在web站点的中配置:

...

...

1.63. JBOSS远程代码执行漏洞

1.64. 自动填写密码启用

可能会绕开 Web 应用程序的认证机制。

或敏感信息泄露。

如果“input”元素的“password”字段中缺失“autocomplete”属性,请进行添加并将其设置为“off“。

如果“autocomplete”属性设置为“on”,请将其更改为“off”。

1.65. 系统无图形验证码功能

系统并没有使用验证码功能进行暴力猜解攻击的防止,攻击者可通过暴力猜解攻击尝试登录系统,进而获取用户登陆密码或认证凭据,冒充合法用户登漏洞危害

陆,通过利用这个弱点提升在系统中的访问权限,从而严重的影响系统的完整性、可靠性。

安全建议 为应用系统加上验证码功能。

1.66. 启用options http方法

漏洞描述 攻击者可通过OPTIONS方法提交特定的请求,在响应中查看allow头信息。

漏洞危害

攻击者可以查看服务器启用的http方法列表,导致信息泄漏或被攻击者进一步利用。

安全建议 修改系统web服务器配置,禁止使用OPTIONS等方法。

1.67. 中间件程序版本信息泄露

漏洞描述

攻击者可以通过访问一个不存在的页面,或者通过服务器的响应包来收集中间件信息的版本信息,来进行更一步的攻击。

漏洞危害 中间件程序版本信息泄漏,导致攻击者收集到该版本中间件程序的漏洞,进而寻找利用方法进行进一步的侵入。

安全建议 定制统一的错误页面,删除/修改/隐藏中间件程序版本信息,避免信息泄漏。

1.68. 登录页面暴力猜解攻击

漏洞危害

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

建议定义错误密码企图登录次数,超过后次数后对该类型帐户进行锁定。

1.69. 未限制账户错误登录次数

漏洞描述

在应用程序测试过程中,对相关账号信息提交多次错误尝试次数(15次以上),再提交正确的认证信息,发现应用系统未对错误尝试登录次数做出限制。

未对错误尝试登录次数做出限制,而且并未防暴力破解措施的话,恶意攻击漏洞危害 者可以通过自动化提交认证信息进行暴力破解,因此,对尝试登录次数做出限制是很有必要的。

安全建议 一般情况下,限制次数在5次左右便可以有效阻止暴力攻击。

1.70. 可被绕过的验证码验证机制

漏洞描述

漏洞危害

安全建议

系统的验证码机制不完全,攻击者可以发送任意次数的登录请求,程序都不会提示验证码错误。攻击者可利用此缺陷对系统用户进行暴力破解。

程序的登录模块没有验证验证码的正确性,导致验证码名存实亡,起不到保护作用。

修改应用程序源代码,在登录模块中增加对验证码正确性的验证,并且要保证在验证用户名、密码或其他信息之前首先验证验证码的正确性。

1.71. 系统无超时退出功能

漏洞描述

应用程序将用户的会话令牌ssionid写入了URL,攻击者很容易通过获取用户的会话令牌。 漏洞危害

攻击者可以通过等方式获得当前的URL,进而获得用户的jsessionid会话令牌,最终发起用户会话劫持攻击。

安全建议 以POST方式传递jsessionid,且应防止将jsessionid存入客户端硬盘。

1.72. 会话令牌不应写入URL

jsessionid设计的初衷是代替不安全的cookie,所以jsessionid信息是保存在服务端和客户端的内存中的,这样攻击者就无法通过读取客户端cookie漏洞描述 的方式获得用户的会话令牌来劫持用户会话。

但是现在应用程序将用户的会话令牌jsessionid写入了URL,已经违背了jsessionid设计的初衷。

漏洞危害

攻击者可以通过等方式获得当前的URL,进而获得用户的jsessionid会话令牌,最终发起用户会话劫持攻击。

安全建议 以POST方式传递jsessionid,且应防止将jsessionid存入客户端硬盘。

1.73. 基于DOM型的XSS跨站漏洞

通过对URL的分析发现了一个js文件系统调用了漏洞描述 属性,但没有对属性进行限定范围的处理,导致存在基于DOM的任意URL跳转漏洞。

漏洞危害

安全建议

攻击者可以随意定义将跳转的URL,这会导致挂马攻击、钓鱼攻击等等,危害很大。

调用属性后进行范围限定处理,限定格式、范围等条件。

漏洞描述 通过对当前js文件的分析发现当前js文件存在基于DOM型的xss跨站请求。

攻击者可以通过构造URL注入JavaScript、VBScript、ActiveX、HTML或者Flash的手段,利用跨站脚本漏洞欺骗用户,收集Cookie等相关数据并冒充漏洞危害 其他用户。通过精心构造的恶意代码,可以让访问者访问非法网站或下载恶意木马,如果再结合其他攻击手段(如社会工程学、提权等),甚至可以获取系统的管理权限。

请分析并加强客户端 (JavaScript) 代码,清理攻击者所能影响的输入源。

例如:

安全建议 ncoded

on(及其许多属性)

on(及其许多属性)

必须特别注意应用程序修改了 DOM 的情况。

1.74. 应用程序错误信息泄漏

攻击者通过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序。并收集服务器的对该请求的响应信息,并通过该信息找出应用程序的弱点所在。

如果攻击者通过伪造包含非应用程序预期的参数或参数值的请求,来探测应用程序,那么应用程序会进入易受攻击的未定义状态。 攻击者可以从应用程序对该请求的响应中获取有用的信息,且可利用该信息,以找出应用程序的弱点。

检查程序中的所有变量,以了解所有预期的参数和值是否存在。当参数缺失导致程序错误时,程序应转向统一的错误页面,不应该抛出未经处理的异常。

应用程序应验证其输入是否由有效字符组成(解码后)。例如,应拒绝包含空字节(编码为 %00)、单引号、引号等的输入值。确保值符合预期范围和类型。如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。例如,如果应用程序预期值在 10..99 范围内,那么就该确保该值确实是数字,且在 10..99 范围内,验证数据是否属于提供给客户端的集合,请勿在生产环境中输出调试错误消息和异常。

1.75. 特殊字符串过滤不严

漏洞描述

漏洞危害

安全建议

应用系统没有危险字符串的过滤机制,容易引发SQL注入、XSS跨站等高危漏洞。

没有过滤危险字符串,使SQL注入、XSS跨站漏洞存在的几率增大,影响应用系统的安全性。

对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含HTML特殊字符。这些检查或过滤必须在服务器端完成,建议过滤的常见危险字符如下:

script/svg/alert/confirm/prompt/onload/onmouseover/onfocus/onerror/xss

应用系统过滤了常见的XSS跨站攻击字符串,但其他特殊符号都没有过滤。已经被过滤的特殊字符有:Script

未被过滤的特殊字符有:svg、alert、confirm、prompt、onload、onmouseover、onfocus、onerror、xss

应用系统只过滤了少量的特殊字符串,不能严密的防御XSS跨站攻击。

对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含HTML特殊字符。这些检查或过滤必须在服务器端完成,程序没有过滤的字符串:svg、alert、confirm、prompt、onload、onmouseover、onfocus、onerror、xss。

漏洞描述

漏洞危害

安全建议

1.76. jQuery xss漏洞

漏洞描述 1.x系列版本低于1.11.3的jQuery,和2.x系列版本低于2.1.4的jQuery,过滤用户输入数据所使用的正则表达式存在缺陷,可导致跨站漏洞。

攻击者可以通过构造URL注入JavaScript、VBScript、ActiveX、HTML或者Flash的手段,利用跨站脚本漏洞欺骗用户,收集Cookie等相关数据并冒充其他用户。通过精心构造的恶意代码,可以让访问者访问非法网站或下载恶意木马,如果再结合其他攻击手段(如社会工程学、提权等),甚至可以获取系统的管理权限。

临时解决方案:

暂时隐藏jQuery版本信息,避免被攻击者识别出版本号;

为应用系统制定统一的、影响全局的危险字符黑名单,发现输入中存在危险字符时直接返回固定的错误页面。

正式解决方案:

等待jQuery发布新的修复版本后升级。

漏洞危害

安全建议

1.77. 敏感数据明文传输

漏洞描述 系统采用HTTP访问模式,在页面上的操作全部采用HTTP方式明文传输,并且页面中也没有对传输的用户名和密码等敏感信息进行加密后传输,这样用户输入的敏感信息在网络中是明文传输,很容易被嗅探到

攻击者或者其他恶意用户通过网络窃听手段监听HTTP通讯协议,可以获取正常用户登陆过程,获取用户登陆的用户名和密码,冒充合法用户登陆,通过利用这个弱点提升在系统中的访问权限,从而严重的影响系统的完整性、可靠性。

以HTTPS代替HTTP协议,建议启用WEB服务器的HTTPS功能,在原有HTTP登陆界面上设置自动转向以HTTPS协议访问系统登录页面。如果因为业务需求无法使用HTTPS协议,建议在页面认证信息传输之前先对认证信息实现加密,不要使用md5/base64等公开的加密算法,建议使用自己定义算法规则的、不会被攻击者一眼就看穿加密方式的加密算法实现加密。

漏洞危害

安全建议

1.78. 应用系统管理后台地址泄漏

漏洞描述

漏洞危害

在测试的过程中发现应用系统的管理后台地址存在泄漏的风险,应用系统的管理后台地址过于简单攻击者可以轻易的猜解到进行更一步的攻击。

应用系统管理后台地址太简单,导致攻击者可以轻易猜测到应用系统的管理后台地址,进而通过fuzzer等技术破解后台密码或通过其他技术攻击应用系统。

安全建议

为应用程序管理后台配置一个复杂的地址,防止非法访问者得到管理后台访问权。

1.79. 未限制用户可输入长度

漏洞描述

漏洞危害

应用程序未对用户处的输入进行限制,攻击者可以通过此处对服务器写入大量垃圾造成应用程序或数据库溢出。

应用系统未对用户可输入长度作出限制,恶意攻击者可以通过提交大量垃圾信息造成应用程序/数据库溢出。

安全建议 限制用户的可输入数据的长度,禁止大量垃圾数据的提交。

1.80. 会话令牌不应写入URL

漏洞描述

漏洞危害

应用程序将用户的会话令牌ssionid写入了URL,攻击者很容易通过获取用户的会话令牌。

攻击者可以通过等方式获得当前的URL,进而获得用户的jsessionid会话令牌,最终发起用户会话劫持攻击。

安全建议 以POST方式传递jsessionid,且应防止将jsessionid存入客户端硬盘。

jsessionid设计的初衷是代替不安全的cookie,所以jsessionid信息是保存在服务端和客户端的内存中的,这样攻击者就无法通过读取客户端cookie漏洞描述 的方式获得用户的会话令牌来劫持用户会话。

但是现在应用程序将用户的会话令牌jsessionid写入了URL,已经违背了jsessionid设计的初衷。

漏洞危害

攻击者可以通过等方式获得当前的URL,进而获得用户的jsessionid会话令牌,最终发起用户会话劫持攻击。

安全建议 以POST方式传递jsessionid,且应防止将jsessionid存入客户端硬盘。

1.81. 基于DOM型的URL跳转

通过对URL的分析发现了一个js文件系统调用了漏洞描述 属性,但没有对属性进行限定范围的处理,导致存在基于DOM的任意URL跳转漏洞。

漏洞危害

安全建议

攻击者可以随意定义将跳转的URL,这会导致挂马攻击、钓鱼攻击等等,危害很大。

调用属性后进行范围限定处理,限定格式、范围等条件。 1.82. CSRF跨站请求伪造

应用系统表单中没有随机会话令牌等可靠的验证策略,导致攻击者可以通过漏洞描述 伪造一个请求,该请求不是用户想发出去的请求,而对服务器或服务来说这个请求完全是合法的一个请求,但是却完成了一个攻击者所期望的操作。

漏洞危害

由于发送的请求不是用户想发出去的请求,但是该请求是合法的,于是就完成了一个攻击者所期望的操作。

检查http头的refer信息。使用一次性令牌,这是当前 Web 应用程序的设计人员广泛使用的一种方式,方法是对于 Get 请求,在 URL 里面加入一个安全建议

令牌,对于 Post 请求,在隐藏域中加入一个令牌。一个合适的令牌设计应该是 Session 信息做 Hash,用得出的哈希值来做 CSRF 的令牌。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689068701a202624.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信