web漏洞描述以及修复建议

人生几何,对酒当歌!

内容均来自互联网,风险等级根据实际情况定义

sql注入

风险等级:高危

1.漏洞描述**

SQL注入攻击是黑客对数据库进行攻击的常用手段之一。

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,导致Web程序代码中对于用户提交的参数未做过滤就直接放到SQL语句中执行,导致参数中的特殊字符打破了SQL语句原有逻辑,黑客可以利用该漏洞执行任意SQL语句。这就是SQL注入。

2.解决建议

1)使用参数化查询,对进入数据库中的语句进行转义处理,数据类型确定,编码统一,做好过滤防护工作,避免网站显示SQL错误信息。

2)部署Web应用防火墙;(设备层)

3)对数据库操作进行监控。(数据库层)

3.漏洞危害:

  1. 机密数据被窃取;
  2. 核心业务数据被篡改;
  3. 网页被篡改;
  4. 数据库所在服务器被攻击从而变为傀儡主机,导致局域网(内网)被入侵。

xss跨站

风险等级:高危

1.漏洞描述

跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息,恶意用户可以使用该漏洞来模拟其他用户身份登录,更甚至可以修改呈现给其他用户的内容。

用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息或在终端用户系统上执行恶意代码。

2.解决建议

1)推荐措施包括实施安全编程技术确保正确过滤用户提供的数据,并编码所有用户提供的数据以防以可执行的格式向终端用户发送注入的脚本。

1
2
PHP: string htmlspecialchars (string string [,int quote_style])
ASP/ASP.NET: Server.HTMLEncode (strHTML String)

2)确保web应用对所有输入参数(cookies、头、查询字符串、表单、隐藏字段等)验证严格定义的预期结果。

3)检查POST和GET请求的响应,确保返回内容是预期的且有效。

4)对所有输入输出做限制,避免出现如script,iframe等字样,不仅在客户端做验证与过滤,服务端更加需要验证和过滤,并且统一编码格式,做好转义处理。

链接注入

风险等级:中危

1.漏洞描述

“链接注入”是修改站点内容的行为,其方式为将外部站点的URL嵌入其中,或将有易受攻击的站点中的脚本的URL嵌入其中。将URL嵌入易受攻击的站点中,攻击者便能够以它为平台来启动对其他站点的攻击,以及攻击这个易受攻击的站点本身。

2.漏洞危害

1)可能会引诱初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息

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

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

3.解决建议

对用户输入内容进行过滤。

通过验证用户输入不能包含危险字符,防止恶意的用户执行应用程序执行计划外的任务,

例如:启动任意SQL查询、嵌入将在客户端执行的Javascript代码、运行各种操作系统命令,等等。

LDAP注入漏洞

风险等级:高危

1.漏洞描述:

LDAP是一种轻量级目录访问协议,可以用来保存信息。如果在查询语句中插入恶意代码,可以修改返回的结果

2.漏洞危害:

1)机密数据被窃取;

3.修复建议:

1)在查询中对用户输入的数据进行严格过滤;

2)部署Web应用防火墙;

命令执行漏洞

风险等级:高危

1.漏洞描述:

命令执行漏洞是指代码未对用户可控参数做过滤,导致直接带入执行命令的代码中,对恶意构造的语句,可被用来执行任意命令。

2.漏洞危害:

黑客可在服务器上执行任意命令,写入后门,从而入侵服务器,获取服务器的管理员权限,危害巨大。

3.修复建议:

严格过滤用户输入的数据,禁止执行系统命令

短文件名泄漏漏洞

1.漏洞描述

该漏洞由于Windows处理较长文件名时为方便使用较短的文件名代替,攻击者可利用该漏洞尝试获取网站服务器下的文件名。

2.漏洞危害

黑客可通过该漏洞尝试获取网站服务器下存放文件的文件名,达到获取更多信息来入侵服务器的目的。

3.修复建议

  • 修改Windows配置,关闭短文件名功能。
  • 部署Web应用防火墙,防止攻击者批量尝试。

URL存在框架注入漏洞

风险等级:中危

1.漏洞描述

攻击者有可能注入含有恶意内容的 frame 或 iframe标记。

如果用户不够谨慎,就有可能浏览该标记,却意识不到自己会离开原始站点而进入恶意的站点。之后,攻击者便可以诱导用户再次登录,然后获取其登录凭证。

2.解决建议

建议过滤出所有以下字符:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[1] |(竖线符号)

[2] & (& 符号)

[3] ;(分号)

[4] $(美元符号)

[5] %(百分比符号)

[6] @(at符号)

[7] '(单引号)

[8] "(引号)

[9] \'(反斜杠转义单引号)

[10] \"(反斜杠转义引号)

[11] <>(尖括号)

[12] ()(括号)

[13] +(加号)

[14] CR(回车符,ASCII 0x0d)

[15] LF(换行,ASCII 0x0a)

[16] ,(逗号)

[17] \(反斜杠)

敏感信息泄露

风险等级:中危

1.漏洞描述

由于网站管理员缺乏足够的安全意识或者配置不当,造成一些敏感信息泄露,黑客可以通过这些信息进行下一步攻击。

2.漏洞危害

  1. 攻击者可直接下载用户的相关信息,包括网站的绝对路径、用户的登录名、密码、真实姓名、身份证号、电话号码、邮箱、QQ号等;
  2. 攻击者通过构造特殊URL地址,触发系统web应用程序报错,在回显内容中,获取网站敏感信息;
  3. 攻击者利用泄漏的敏感信息,获取网站服务器web路径,为进一步攻击提供帮助;
  4. robots文件暴露web站点结构,黑客可通过此信息进行下一步攻击;
  5. 管理入口地址暴露,黑客可通过此信息进行下一步攻击。

3.解决建议

  1. 对网站错误信息进行统一返回,模糊化处理;
  2. 对存放敏感信息的文件进行加密并妥善储存,避免泄漏敏感信息。

目录遍历

风险等级:中危

1.漏洞描述

目录遍历漏洞是由于Web服务器设置不当导致的,攻击者可利用此漏洞查看Web目录下的文件及其文件夹,从而找到可攻击的文件。该漏洞一般被攻击者作为辅助攻击的手段之一。

由于网站管理员对服务器或CMS配置不当,导致目录可被遍历,黑客可以获知整个网站的结构。

2.解决建议

全面进行Web站点安全设置,防止攻击者能够仿冒成站点的其他用户来执行操作;确保Web站点对用户的安全分级授权方式越级和跨出合法区域的访问;对使用的Web应用系统进行升级和放漏洞补丁操作。

关闭WEB服务器目录浏览功能,对CMS进行安全配置或者对低版本的CMS进行补丁升级。

定期对相关管理人员和技术人员进行安全培训,提高安全技术能力和实际操作能力。

建立和完善一套有效的安全管理制度,对网站的日常维护和使用进行规范。

弱口令

风险等级:中危

1.漏洞描述

弱密码即容易破译的密码,多为简单的数字组合、帐号相同的数字组合、键盘上的临近键或常见姓名、终端设备出厂配置的通用密码等都属于弱密码范畴。攻击者很容易预测用户名和密码,登录应用程序,从而获取未获授权的特权。

由于网站管理员缺乏足够的安全意识,使用了默认口令或较简单的口令,致使黑客可以轻易猜测到口令。

2.解决建议

加强口令密码管理制度,设置强口令,在大型信息系统和运维环境复杂的情况下,可以采用运维管理设备进行密码管理。

增加验证机制,防爆破机制,限制ip+cookie访问次数。

建立和完善一套有效的安全管理制度,对网站的日常维护和使用进行规范。

黑链

风险等级:中危

1.漏洞描述

网站源代码中发现大量黑链,这表示网站受到入侵,黑客已经获取到一定权限。

2.解决建议

对源代码进行全面审查,删除黑链

启用了TRACE

风险等级:中危

1.漏洞描述

TRACE方法用于调用请求消息的远程应用层回送。

请求的最终接收方应该以 200(OK)响应的实体主体向客户端反映接收到的消息。

TRACE 可让客户端查看在请求链的另一端收到什么,并将这项数据用于测试或诊断信息。

TRACE方法是HTTP(超文本传输)协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容。

2.漏洞危害

恶意攻击者可以通过TRACE方法返回的信息了解到网站前端的某些信息,如缓存服务器等,从而为进一步的攻击提供便利。

3.解决建议

a、2.0.55以上的Apache服务器,在httpd.conf的尾部添加:TraceEnable off。

b、如果使用的是Apache:

确认rewrite模块激活(httpd.conf,下面一行前面没有#):

LoadModule rewrite_module modules/mod_rewrite.so

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

1
2
3
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* -[F]

慢速攻击

风险等级:中危

1.漏洞描述

针对任意HTTP Server,建立一个连接,以很低的速度发包,并保持住这个连接不断开。如果客户端持续建立这样的连接,那么服务器上可用的连接池将很快被占满,从而导致拒绝服务攻击。

2.解决建议

a、限制web服务器的HTTP头部传输的最大许可时间。

b、检查日志,查找类似的错误报警。

1
[error] server reached MaxClients setting, consider raising the MaxClients setting

http-slower-post-data-dos-attack-apache

host头部攻击

风险等级:中危

1.漏洞描述

为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用

1
$_SERVER["HTTP_HOST"]。

但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。

2.解决建议

web应用程序应该使用SERVER_NAME而不是host header。

在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。

在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项。

KindEditor3.5.5遍历目录漏洞

风险等级:中危

1.漏洞描述

KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。KindEditor目录/php/file_manager_json.php,
存在遍历目录漏洞。

2.解决建议

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.kindsoft.Net/

cookie缺少HttpOnly属性

1.漏洞描述

会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本、Applet等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。

HttpOnly是微软对cookie做的扩展,该值指定cookie是否可通过客户端脚本访问。Microsoft Internet Explorer 版本 6 Service Pack 1和更高版本支持cookie属性HttpOnly。

如果在Cookie中没有设置HttpOnly属性为true,可能导致Cookie被窃取。窃取的Cookie可以包含标识站点用户的敏感信息,如ASP.NET会话ID或Forms身份验证票证,攻击者可以重播窃取的Cookie,以便伪装成用户或获取敏感信息,进行跨站脚本攻击等。

如果在Cookie中设置HttpOnly属性为true,兼容浏览器接收到HttpOnly cookie,那么客户端通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这将有助于缓解跨站点脚本威胁

2.解决建议

向所有会话cookie中添加“HttpOnly”属性。 Php.ini session.cookie_httponly=

存在永久性cookie

1.漏洞描述

发现目标存在永久性Cookie。这可能使攻击者通过其他方式获得用户的会话凭证,这个时候,例如利用xss漏洞获得Cookie或者Session劫持就很有效了,具体分析应用程序的认证,然后使用某些技巧,甚至可以即使对方退出程序也一样永久性获得对方的身份,在未来很长时间甚至永久的控制账户。

2.解决建议

不要设置cookie为永久性的,修改cookie的属性expires的值,将cookie在会话关闭时则无效;或者一段时间内,过期后无效。

CI配置文件 application/config/config.php关于SESSION COOKIE的配置参数

在源码中存在用户名和密码泄露

风险等级:中危

1.漏洞描述

检测到目标站点的源码信息中可能存在用户名或者密码此类的敏感信息,从而可能造成用户或者站点的敏感信息泄露。如果用户名或者密码信息真实存在,那么攻击者便可以利用此信息,对目标站点进行进一步有效的攻击。由于该插件使用模式匹配方式检测,可能会出现误报,需要人工进行进一步核实。

2.解决建议

删除此类文件或限制此类文件的访问权限。

错误页面web服务器版本泄露

风险等级:中危

1.漏洞描述

Web服务器未能正确处理异常请求导致Web服务器版本信息泄露,攻击者收集到服务器信息后可进行进一步针对性攻击。

2.解决建议

临时修复建议如下:

1.关闭web服务器错误提示。

2.关闭运行平台的错误提示。

3.建立错误机制,不要把真实的错误反馈给访问者。

目标网站存在上传下载相关的目录和文件

1.漏洞描述

检测到目标网站存在上传下载相关的目录和文件。上传目录一般具有可写权限。攻击者可以预测文件上传的路径,便于和目标站点的其他漏洞攻击结合攻击目标服务器。

2.解决建议

检查此类目录的访问权限。如果不需要这些目录,建议删除。

后台登录入口暴露

风险等级:中危

1.漏洞描述

检查到目标应用的后台登陆入口。管理员应用程序一般用于网站的后台管理,具有全部的权限。这些应用程序可能包含一些敏感信息或具有较低的安全保护,攻击者可以通过该文件获取敏感信息或者进入网站后台,进行恶意操作。

2.解决建议

加强访问此类文件的认证和使用安全。
如果不需要此类文件,请删除。
修改为不可预测的文件名。
对管理地址进行更名,让管理地址变得不可猜测

存在web默认目录

风险等级:中危

1.漏洞描述

web应用架构中的目录都采用常见的目录名。如图片目录images,JavaScript目录js,不同的目录潜在的危险是不同的。攻击者一般利用常见目录中可能包含的敏感文件获取敏感信息。

2.解决建议

如果不需要这些目录,可以删除此类目录;
或者严格限制目录的访问权限。

form表单验证码点击不变

风险等级:中危

1.漏洞描述

在form表单中,验证码出现第一次之后,点击验证码图片,验证码不会变,只有在刷新页面的时候,验证码才会改变,这会导致攻击者可以绕开验证码,而对表单进行爆破。

2.解决建议

加强验证码验证模块

危险的HTTP请求类型

风险等级:中危

1.漏洞描述

web服务器或应用服务器是以不安全的方式配置的,会在web服务器上上传、修改或删除web页面、脚本和文件。

2.解决建议

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

逻辑设计缺陷

1.漏洞描述

逻辑设计缺陷是因为产品在最初设计时由于未考虑全面,而使产品在使用中存在的一些潜在的缺陷。

2.解决建议

在输入接口设置验证,如token,验证码等。注册界面的接口不要返回太多敏感信息,以防遭到黑客制作枚举字典。验证码请不要以短数字来甚至,最好是以字母加数字进行组合,并且验证码需要设定时间期限。

https://zhuanlan.zhihu.com/p/19728040
http://www.freebuf.com/vuls/112339.html

后门

1.漏洞描述

目标网站已经被黑客入侵,拿下webshell并留下后门。

2.解决建议

管理员定期手工或用专业的webshell扫描工具全面清查服务器中的文件,删除webshell。

任意文件读取

风险等级:中危

1.漏洞描述

由于CMS编写时参数过滤不严,黑客可以用../的方式访问其他目录中的文件。

2.解决建议

严格检查变量是否已经初始化;在服务器本地文件及远程文件,进行严格的检查,参数中不允许出现../之类的目录跳转符。

未授权访问

1.漏洞描述

由于CMS编写时采用本地验证机制或在服务器端验证不严,黑客可以采取绕过的方式对一些敏感信息或文件进行访问或操作。

2.解决建议

将对应的应用系统进行升级。

加强网站的验证机制与过滤机制,防止用户绕过过滤机制对一些敏感信息或危险功能进行访问和操作。

上传漏洞

1.漏洞描述

由于网站管理员的配置不当或者CMS的编写时未对上传的文件进行检查过滤或者过滤不严,致使黑客可以上传木马拿到webshell。

2.解决建议

客户端和服务端检测文件大小,文件后缀和文件内容等,并严格控制上传目录,不向用户暴露出具体路径。

错误详情泄漏漏洞

1.漏洞描述

页面含有CGI处理错误的代码级别的详细信息,例如sql语句执行错误原因,php的错误行数等。

2.检测方法

修改参数为非法参数,看页面返回的错误信息是否泄漏了过于详细的代码级别的信息。

3.修复方案

将错误信息对用户透明化,在CGI处理错误后可以返回友好的提示语以及返回码。但是不可以提示用户出错的代码级别的详细原因。

-------------本文结束感谢您的阅读-------------