实验08 Web漏洞扫描Word文档格式.docx
《实验08 Web漏洞扫描Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验08 Web漏洞扫描Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
应当说,无论对内还是对外,漏洞扫描都有益处。
漏洞扫描可以找出安全缺陷,通过对系统实施测试找出其弱点。
这一点许多人都重视,但许多单位仅仅将漏洞扫描看作是一个总体安全审计的局部而已,其表现就是一年内仅进行一两次漏洞扫描。
这其中的风险极大,因为网络是一个动态变化的实体,特别是一些程序经常需要更新,一些新的软件可能经常需要安装到服务器上,这可能会给造成新的安全威胁。
新的漏洞和程序缺陷几乎每天都在被发现。
所以对于任何一个单位而言,应当经常进行漏洞扫描,应当将其作为一项常规的安全分析计划的重要部分。
漏洞扫描技术的原理是:
1.通过端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在。
2.通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等。
若模拟攻击成功,则表明目标主机系统存在安全漏洞。
7.1Web漏洞扫描
7.1.1背景描述
WEB服务器也称为WWW(WORLDWIDEWEB)服务器,主要功能是提供网上信息浏览服务。
WWW是Internet的多媒体信息查询工具,是Internet上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。
正是因为有了WWW工具,才使得近年来Internet迅速发展,且用户数量飞速增长。
随着web
应用的日益增多,如电子商务,交流论坛,公司网站等等都使用web
作为应用的平台,如何保证web应用的安全性也成为当前日益重要、必须解决的问题。
由于网络技术的飞速发展,网络规模迅猛增长,据Netcraft公布的2010年2月份的全球Web服务器使用情况调查报告显示:
目前全球web服务器的数量超过了2亿个,并且数量还在持续增长:
2010年2月期间Apache主机名称数量增长了1600万个,排在增长趋势的第一位,增长第二位的是微软的Web服务器,主机名称增长数量为1100万个。
迅猛增加的web服务器,导致新的系统漏洞不断增加。
另据瑞典互联网监测机构—Pingdom—2010年7月份发布的全球20大互联网国家排行数据显示:
全球互联网用户数量已经达到了18亿,其中中国互联网用户数量为达到了4.2亿。
许多互联网用户出于好奇或别有用心,针对web服务器漏洞,不停的窥视网上资源。
由此导致的web安全事件数不胜数,web服务器安全的严峻形势迫使人们不得不严阵以待。
7.1.2工作原理
Web漏洞扫描方法主要有两类:
信息获取和模拟攻击。
信息获取就是通过与目标主机TCP/IP的Http服务端口发送连接请求,记录目标主机的应答。
通过目标主机应答信息中状态码和返回数据与Http协议相关状态码和预定义返回信息做匹配,如果匹配条件则视为漏洞存在。
模拟攻击就是通过使用模拟黑客攻击的方法,对目标主机Web系统进行攻击性的安全漏洞扫描,比如认证与授权攻击、支持文件攻击、包含文件攻击、SQL注入攻击和利用编码技术攻击等对目标系统可能存在的已知漏洞进行逐项进行检查,从而发现系统的漏洞。
远程字典攻击也是漏洞扫描中模拟攻击的一种,其原理与其他攻击相差较大,若攻击成功,可以直接得到登陆目标主机系统的用户名和口令。
目前WEB服务器存在的主要漏洞有:
1.物理路径泄露:
物理路径泄露一般是由于WEB服务器处理用户请求出错导致的,如通过提交一个超长的请求,或者是某个精心构造的特殊请求,或是请求一个WEB
服务器上不存在的文件。
这些请求都有一个共同特点,那就是被请求的文件肯定属于CGI脚本,而不是静态HTML
页面。
还有一种情况,就是WEB服务器的某些显示环境变量的程序错误的输出了WEB服务器的物理路径,这应该算是设计上的问题。
2.CGI源代码泄露:
CGI源代码泄露的原因比较多,例如大小写,编码解码,附加特殊字符或精心构造的特殊请求等都可能导致CGI源代码泄露。
3.目录遍历:
目录遍历对于WEB服务器来说并不多见,通过对任意目录附加“../”,或者是在有特殊意义的目录附加“../”,或者是附加“../”的一些变形,如“..\”或“..//”甚至其编码,都可能导致目录遍历。
前一种情况并不多见,但是后面的几种情况就常见得多,如IIS
二次解码漏洞和UNICODE
解码漏洞都可以看作是变形后的编码。
4.执行任意命令:
执行任意命令即执行任意操作系统命令,主要包括两种情况。
一是通过遍历目录,如前面提到的二次解码和UNICODE
解码漏洞,来执行系统命令。
另外一种就是WEB服务器把用户提交的请求作为SSI
指令解析,因此导致执行任意命令。
5.缓冲区溢出:
缓冲区溢出漏洞是WEB服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长URL,超长HTTPHeader域,或者是其它超长的数据。
这种漏洞可能导致执行任意命令或者是拒绝服务,这一般取决于构造的数据。
6.拒绝服务:
拒绝服务产生的原因多种多样,主要包括超长URL,特殊目录,超长HTTPHeader域,畸形HTTPHeader域或者是DOS
设备文件等。
由于WEB
服务器在处理这些特殊请求时不知所措或者是处理方式不当,因此出错终止或挂起。
7.条件竞争:
这里的条件竞争主要针对一些管理服务器而言,这类服务器一般是以system或root身份运行的。
当它们需要使用一些临时文件,而在对这些文件进行写操作之前,却没有对文件的属性进行检查,一般可能导致重要系统文件被重写,甚至获得系统控制权。
8.跨站脚本执行漏洞:
由于网页可以包含由服务器生成的、并且由客户机浏览器解释的文本和HTML
标记。
如果不可信的内容被引入到动态页面中,则无论是网站还是客户机都没有足够的信息识别这种情况并采取保护措施。
攻击者如果知道某一网站上的应用程序接收跨站点脚本的提交,他就可以在网上上提交可以完成攻击的脚本,如JavaScript、VBScript、ActiveX、HTML
或
Flash
等内容,普通用户一旦点击了网页上这些攻击者提交的脚本,那么就会在用户客户机上执行,完成从截获帐户、更改用户设置、窃取和篡改cookie
到虚假广告在内的种种攻击行为。
9.SQL注入:
对于和后台数据库产生交互的网页,如果没有对用户输入数据的合法性进行全面的判断,就会使应用程序存在安全隐患。
用户可以在可以提交正常数据的URL
或者表单输入框中提交一段精心构造的数据库查询代码,使后台应用执行攻击着的SQL
代码,攻击者根据程序返回的结果,获得某些他想得知的敏感数据,如管理员密码,保密商业资料等。
Web漏洞扫描程序可以在帮助人们造就安全的Web站点上助一臂之力,也就是说在黑客入侵之前,先检测一下系统中的漏洞,巩固web服务器的安全。
如下是典型的十个Web漏洞扫描程序。
1.Nikto。
这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI,以及超过900个服务器版本,还有250多个服务器上的版本特定问题)执行彻底的测试。
其扫描项目和插件经常更新并且可以自动更新(如果需要的话)。
Nikto可以在尽可能短的周期内测试Web服务器,这在其日志文件中相当明显。
不过,并非每一次检查都可以找出一个安全问题,虽然多数情况下是这样的。
有一些项目是仅提供信息(“infoonly”)类型的检查,这种检查可以查找一些并不存在安全漏洞的项目,不过Web管理员或安全工程师们并不知道。
这些项目通常都可以恰当地标记出来,为人们省去不少麻烦。
2.Parosproxy。
这是一个对Web应用程序的漏洞执行评估的代理程序,即一个基于Java的web代理程序,可以评估Web应用程序的漏洞。
它支持动态地编辑/查看HTTP/HTTPS,从而改动cookies和表单字段等项目。
它包括一个Web通信记录程序,Web圈套程序(spider),hash计算器,还有一个可以测试常见的Web应用程序攻击(如SQL注入式攻击和跨站脚本攻击)的扫描器。
3.WebScarab。
它可以分析运用HTTP和HTTPS协议执行通信的应用程序,WebScarab可以用最基本地形式记录它观察的会话,并允许操作人员以各种方式观查会话。
如果要观察一个基于HTTP(S)应用程序的运行状态,那么WebScarabi就可以满足这种需要。
不管是帮助开发人员调试其它方面的难题,还是允许安全专业人员识别漏洞,它都是一款不错的工具。
4.WebInspect。
这是一款强大的Web应用程序扫描程序。
SPIDynamics的这款应用程序安全评估工具有助于确认Web应用中已知的和未知的漏洞。
它还可以检查一个Web服务器能不能正确配置,并会尝试一些常见的Web攻击,如参数注入、跨站脚本、目录遍历攻击(directorytraversal)等等。
5.Whisker/libwhisker。
Libwhisker是一个Perla模块,适合于HTTP测试。
它可以针对许多已知的安全漏洞,测试HTTP服务器,特别是检测危险CGI的存在。
Whisker是一个运用libwhisker的扫描程序。
6.Burpsuite。
这是一个可以用于攻击Web应用程序的集成平台。
Burp套件允许一个攻击者将人工的和自动的技能结合起来,以列举、分析、攻击Web应用程序,或运用这些程序的漏洞。
各种各样的burp工具协同工作,共享信息,并允许将一种工具发觉的漏洞形成另外一种工具的基础。
7.Wikto。
可以说这是一个Web服务器评估工具,它可以检查Web服务器中的漏洞,并提供与Nikto一样的很多功能,但增加了许多有趣的功能部分,如后端miner和紧密的Google集成。
它为MS.NET环境编写,但用户须要注册才能下载其二进制文件和源代码。
8.AcunetixWebVulnerabilityScanner。
这是一款商业级的Web漏洞扫描程序,它可以检查Web应用程序中的漏洞,如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。
它拥有一个操作方便的图形用户界面,并且能够建立专业级的Web站点安全审核报告。
9.WatchfireAppScan。
这也是一款商业类的Web漏洞扫描程序。
AppScan在应用程序的整个开发周期都提供安全测试,从而测试简化了部件测试和开发早期的安全保证。
它可以扫描许多常见的漏洞,如跨站脚本攻击、HTTP响应拆分漏洞、参数篡改、隐式字段处理、后门/调试选项、缓冲区溢出等等。
10.N-Stealth。
N-Stealth是一款商业级的Web服务器安全扫描程序。
它比一些免费的Web扫描程序,如Whisker/libwhisker、Nikto等的升级频率更高,据称其含有“30000个漏洞和漏洞程序”以及“每天增加大量的漏洞检查”。
此外,实际上所有通用的VA工具,如Nessus,ISSInternetScanner,Retina,SAINT,Sara等都包含Web扫描部件。
N-Stealth主要为Windows平台提供扫描,但并不提供源代码。
防御策略。
由于Web的作用和特殊情况,web的安全管理一直是业界面临的难题。
针对其安全管理,业界也提出了许多参考意见,如下是一些安全防御建议:
1.及时更新补丁程序;
2.合理配置web服务器安全策略;
3.合理配置用户的权限;
4.加强脚本安全的管理;
7.1.3实验列表
实验序号
实验名称
实验一
利用Jsky扫描web漏洞
【实验一】利用Jsky扫描web漏洞
【实验分析】
实验目的:
●掌握漏洞扫描的基本概念
●掌握漏洞扫描的工作原理
●掌握Web应用程序扫描的程序
场景描述:
图7-1-1web漏洞扫描实验拓扑图
本实验可以在两台虚拟机环境下完成,如图7-1-1所示,从扫描端对web服务器进行扫描。
两机的IP地址和角色如表7-1-1所示。
IP地址
角色与任务
A
192.168.138.139
Web服务器
B
192.168.138.32
扫描端
表7-1-1IP地址和角色
实验工具:
JSKY扫描工具
【实验步骤】
1.运行JSKY.exe攻击软件,点击File—〉NewScan,新建一个“newscan”(图7-1-2)
图7-1-2新建一个扫描
2.输入指定的WEB服务器地址(192.168.138.139),并点下一步(图7-1-3)
图7-1-3输入扫描web服务器地址
3.在SpiderOptions中选择路径,其他为默认,并点击下一步(图7-1-4)
图7-1-4选择路径
4.在ScanProfiles中选择all,并点击下一步(图7-1-5)
图7-1-5选择all
5.在Othersconfiguration中使用默认配置,点击下一步(图7-1-6)
图7-1-6使用默认配置
6.开始对WEB服务器进行漏洞扫。
运行一段时间后,可以扫描到WEB中所存在的漏洞。
7.再点击“File”—〉“NewScan”新建一个“newscan”,在Scan中URL输入:
http:
//192.168.138.139/sql_inject(图7-1-7)
图7-1-7新建一个“newscan”
9.在SpiderOptions中选择路径,其他为默认,并点击下一步(图7-1-8)
10.在ScanProfiles中选择all,并点击下一步(图7-1-9)
11.在Othersconfiguration中使用默认配置,下一步(图7-1-10)
图7-1-8选择路径
图7-1-9选择all
图7-1-10使用默认配置
12.点击“开始”运行软件。
从扫描的结果中选择“sql_inject”右击—〉“Expandall”,详细查看扫描结果;
13.点击停止,可以从扫描到的信息中查到的WEB中的相关漏洞等,可以根据这些漏洞对WEB进行攻击。