您的需求已经提交,我们将在48小时内联系您
全国服务热线:400-1000-221
确定
免费享受企业级云安全服务
获取手机验证码
{{message}}
免费试用

网站常见漏洞检测方法

作者:
发布时间:2020-07-17

  网站漏洞检测是网站安全检测的其中一部分,整体的网站安全监测是包括网站漏洞、网页病毒木马监测、网页篡改监测、网站安全修复和加固等几个方面。这里着重介绍网站常见漏洞检测方法以及网站漏洞检测方面的其他相关知识。

  一、网站常见漏洞检测方法

  

网站常见漏洞检测方法

 

  1、XSS跨站脚本攻击

  SS与SQL注入相似,XSS是通过网页插入恶意脚本,主要用到的技术也是前端的HTML和JavaScript脚本。当用户浏览网页时,实现控制用户浏览器行为的攻击方式。

  一次成功的XSS,可以获取到用户的cookie,利用该cookie盗取用户对该网站的操作权限;也可以获取到用户联系人列表,利用被攻击者的身份向特定的目标群发送大量的垃圾信息,等等。

  XSS分为三类:存储型(持久性XSS)、反射型(非持久性XSS)、DOM型。

  测试方法:

  在数据输入界面,输入:,保存成功后如果弹出对话框,表明此处存在一个XSS 漏洞。

  或把url请求中参数改为,如果页面弹出对话框,表明此处存在一个XSS 漏洞。

  常用的防止XSS技术包括:

  (1)与SQL注入防护的建议一样,假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。

  (2)不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

  (3)不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。

  (4)对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

  (5)在发布应用程序之前测试所有已知的威胁。

  2、SQL注入

  SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符

  串,最终达到欺骗服务器执行恶意的SQL命令。

  SQL注入可能造成的危害有:网页、数据被篡改,核心数据被窃取,数据库所在的服务器被攻击,变成傀儡主机。

  例如有些网站没有使用预编译sql,用户在界面上输入的一些字段被添加到sql中,很有可能这些字段包含一些恶意的sql命令。如:password = "1' OR '1'='1";即使不知道用户密码,也能正常登录。

  测试方法:

  在需要进行查询的页面,输入正确查询条件 and 1=1等简单sql语句,查看应答结果,如与输入正确查询条件返回结果一致,表明应用程序对用户输入未进行过滤,可以初步判断此处存在SQL注入漏洞

  修改建议:

  对用户的输入进行校验,可以通过正则表达式,或限制长度;对以下关键字进行转换等;

  ||alert|and|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|declare|sitename|netuser|xp_cmdshell|or|+|,|like'|and|exec|execute|insert|create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr|mid|master|truncate|declare|or|--|+|,|like|//

  不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取;

  不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接;

  应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

  常见的防范方法

  (1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。

  (2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。

  (3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。

  (4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。

  (5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。

  (6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。

  (7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。

  (8)在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。

  3、URL跳转漏洞

  URL跳转漏洞,即未经验证的重定向漏洞,是指Web程序直接跳转到参数中的URL,或者在页面中引入了任意开发者的URL,将程序引导到不安全的第三方区域,从而导致安全问题。

  测试方法:

  1.使用抓包工具抓取请求。

  2.抓取302的url,修改目标地址,查看是否能跳转。

  ps:不过现在很多跳转都加了referer的校验导致攻击者跳转失败。

  4、文件上传漏洞

  文件上传攻击是指攻击者上传了一个可执行文件到服务器上,并执行。

  这种攻击方式是最直接有效的。上传的文件可以是病毒、木马、恶意脚本或者是webshell等等。

  Webshell是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以说是一种网页后门。攻击者在受影响系统防止或插入webshell后,可以通过webshell方便进入系统,达到控制网站服务器的目的。

  测试方法:

  对上传的文件类型、大小等进行严格校验,禁止上传恶意代码的文件。

  对相关目录的执行权限进行校验,可以通过浏览器访问Web 服务器上的所有目录,检查是否返回目录结构,如果显示的是目录结构,则可能存在安全问题。

  文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。

  因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。

  5、CSRF跨站伪造请求攻击

  CSRF,利用已登录的用户身份,以用户的名义发送恶意请求,完成非法操作。

  例如:用户如果浏览并信任了存在CSRF漏洞的网站A,浏览器产生了相应的cookie,用户在没有退出该网站的情况下,访问了危险网站B 。

  危险网站B要求访问网站A,发出一个请求。浏览器带着用户的cookie信息访问了网站A,因为网站A不知道是用户自身发出的请求还是危险网站B发出的请求,所以就会处理危险网站B的请求,这样就完成了模拟用户操作的目的。这就是CSRF攻击的基本思想。

  测试方法:

  1. 同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功,如果仍然能操作成功即存在风险。

  2.使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登录界面。

  CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。

  6、弱口令漏洞

  弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:

  (1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。

  (2)口令长度不小于8个字符。

  (3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。

  (4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。

  (5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。

  (6)口令不应该为用数字或符号代替某些字母的单词。

  (7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。

  (8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。

  7、HTTP报头追踪漏洞

  HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用。

  防御HTTP报头追踪漏洞的方法通常禁用HTTP TRACE方法。

  8、私有IP地址泄露漏洞

  IP地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping指令,Ping对方在网络中的名称而获得IP;在Internet上使用IP版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP。

  针对最有效的“数据包分析方法”而言,就可以安装能够自动去掉发送数据包包头IP信息的一些软件。不过使用这些软件有些缺点,譬如:耗费资源严重,降低计算机性能;访问一些论坛或者网站时会受影响;不适合网吧用户使用等等。现在的个人用户采用最普及隐藏IP的方法应该是使用代理,由于使用代理服务器后,“转址服务”会对发送出去的数据包有所修改,致使“数据包分析”的方法失效。一些容易泄漏用户IP的网络软件(QQ、MSN、IE等)都支持使用代理方式连接Internet,特别是QQ使用“ezProxy”等代理软件连接后,IP版的QQ都无法显示该IP地址。虽然代理可以有效地隐藏用户IP,但攻击者亦可以绕过代理,查找到对方的真实IP地址,用户在何种情况下使用何种方法隐藏IP,也要因情况而论。

  

网站常见漏洞检测方法

 

  二、安全测试6项基本原则:

  认证:对认证的用户的请求返回

  访问控制:对未认证的用户的权限控制和数据保护

  完整性:用户必须准确的收到服务器发送的信息

  机密性:信息必须准确的传递给预期的用户

  可靠性:失败的频率是多少?网络从失败中恢复需要多长时间?采取什么措施来应对灾难性的失败?(个人理解这个地方应该更偏向于容错容灾测试的范畴)

  不可抵赖:用户应该能证明接收到的数据来自特定的服务器

  三、常见的安全测试内容

  权限控制

  SQL注入

  URL安全测试

  XSS(跨站脚本攻击)

  CSRF(跨站请求伪造)

  URL跳转漏洞

  其他安全方面的考量

  四、Web应用程序中是什么导致安全性问题呢?一般有以下几个原因:

  1、复杂应用系统代码量大、开发人员多、难免出现疏忽。

  2、系统屡次升级、人员频繁变更,导致代码不一致。

  3、历史遗留系统、试运行系统等多个Web系统共同运行于同一台服务器上。

  4、开发人员未经过安全编码培训或者公司根本就没有统一的安全编码规范。

  5、测试人员经验不足或者没经过专业的安全评估测试就发布上线。

  6、没有对用户的输入进行验证,举几个例子:

  1)永远不要信任用户的输入,要对用户的输入进行校验

  2)数字型的输入必须是合法的数字

  3)字符型的输入中对 编码符号要进行特殊处理

  4)验证所有的输入点,包括Get,Post,Cookie以及其他HTTP头

  五、总结:

  1、永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式或限制长度;对单引号和双"-"进行转换等。

  2、永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

  3、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

  4、不要把机密信息直接存放,加密或者Hash掉密码和敏感的信息。

  5、应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

  6、SQL注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用SQL注入检测工具jsky、MDCSOFT SCAN等。采用MDCSOFT - IPS可以有效的防御SQL注入、XSS攻击等。

  

网站常见漏洞检测方法

 

  关于网站常见漏洞检测方法以及网站漏洞检测方面的其他相关知识就为大家介绍到这里。网站常见漏洞检测方法涉及的方面比较广,如果不是专业人士很难做到全面检测,目前大部分人一般都是通过软件工具进行检测,但是因为很多软件的更新不及时或者已经断更很久了,很难做到完全检测。因此如果对这方面的需求比较高的,可以联系安全狗,我们会提供专业的技术检测帮您提升网站的整体安全。

标签: