㈠ 最好的WEB漏洞扫描工具
十大Web漏洞扫描程序,见:http://www.15897.com/blog/post/top-10-vul-scanner.html介绍
㈡ WEB测试应该注意哪些地方,怎样才能做好WEB测试,新手上路,希望大家能多给些宝贵的意见
基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。
随着Internet和Intranet/Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。范围广泛的、复杂的分布式应用正在Web环境中出现。Web的流行和无所不在,是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。
Yogesh Deshpande和Steve Hansen在1998年就提出了Web工程的概念。Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它"使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统"。目前,对于web工程的研究主要是在国外开展的,国内还刚刚起步。
在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。
在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。
一般软件的发布周期以月或以年计算,而Web应用的发布周期以天计算甚至以小时计算。Web测试人员必须处理更短的发布周期,测试人员和测试管理人员面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。
一、功能测试
1、链接测试
链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
2、表单测试
当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
3、Cookies测试
Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
4、设计语言测试
Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、javascript、 ActiveX、VBScript或Perl等也要进行验证。
5、数据库测试
在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
二、性能测试
1、连接速度测试
用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
2、负载测试
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
3、压力测试
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。压力测试的区域包括表单、登陆和其他信息传输页面等。
三、可用性测试
1、导航测试
导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?
在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
2、图形测试
在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
(1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
(2)验证所有页面字体的风格是否一致。
(3)背景颜色应该与字体颜色和前景颜色相搭配。
(4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
3、内容测试
内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文章列表"。
4、整体界面测试
整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
四、客户端兼容性测试
1、平台测试
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
2、浏览器测试
浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、javascript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,javascript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
五、安全性测试
Web应用系统的安全性测试区域主要有:
(1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
(2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
(3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
(4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
(5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
六、总结
本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。(T117)
㈢ Web漏洞扫描:场景可视化重现技术
随着公众对Web安全的聚焦,越来越多的行业领域如运营商、政府电子政务互动平台、企事业门户网站及教育医疗机构等都已经开始频繁使用扫描器去评估其风险性,以便提前发现潜在的安全隐患,及时安全加固以保障网站业务的正常持续运转。反观扫描器使用群体的变化,已由专业安全人士更多地转向网站安全运维人员,这就给扫描器自身的可用性和易用性提出高要求。而扫描器的核心能力,如何帮助用户快速发现漏洞、识别漏洞并定位漏洞,以及什么样的验证场景可以确定漏洞真实存在就成为亟待解1. 现状
由于Web安全技术功底的薄弱,在网站安全运维人员眼里,现有的扫描器依然显得过于专业。一份扫描报告中,大量显示漏洞存在的URL、弱点参数以及扫描器自身所构造的各种请求等晦涩难懂的内容,常常让安全运维人员不知所云,甚至不得不专请专业人员进行二次解读。而且这种易读性差的扫描报告不能让运维人员第一时间识别出漏洞风险分布并制定相应漏洞的修补计划,从而无法真正贯彻防微杜渐的安全思路,保障网站业务安全可靠地运行。
由于受限于目标网站环境的复杂性、漏洞种类的多样性,扫描器或多或少存在误报。为保证漏洞发现的权威性,增强报告内容的可信度,扫描器本身必须能清晰地给出:漏洞是如何被发现的,哪些页面及参数有问题,风险详情如何,有无重现该漏洞发现的场景分析文件,向导式的二次验证等。而如何对发现的漏洞进行权威验证这一点,一直是业界关注的焦点话题。
2.可视化漏洞分析
基于现状,绿盟科技提出了一种可视化的 Web漏洞 分析方法。该方法依据漏洞种类的不同,从扫描器判断漏洞存在的角度:首先从逻辑层面给出相关标准,作为判断此漏洞是否存在的条件依据;其次从漏洞触发层面列出该漏洞发现时的具体交互方式,如通过哪些检测手段,构造哪些URL参数;再从数据支撑层面列出漏洞检测过程中所交互的所有数据信息,如扫描器发送的网络请求与站点响应报文以及对应的具体页面源码文件等;最后,整个漏洞分析过程统一打包成离线场景文件。此方法可让评估者轻松还原漏洞发现场景,重现漏洞发现的每一步直至全过程,真正实现漏洞分析过程的简单可视、通俗易懂,进而为下一步可能进行的漏洞误报确认提供可视化验证场景,达到准确识别的权威效果。
1、 判断标准
Web漏洞的形成有很多因素,不同漏洞的表现形式和产生原因差异很大,扫描器在确认漏洞的同时,需要给出针对该漏洞的判断标准和参考依据。
2、 执行详情
知道漏洞的产生原因和表现形式外,还需要构造可以产生这个漏洞的充分必要条件,明确哪些具体的操作和方法能够触发这个漏洞,使其通过可理解的直观现象展示出来,并最终与判断标准相符合。
3、 过程报文
漏洞的探索和发现不是一蹴而就的,是一个有强烈依赖关系的发包探测、规则匹配的逻辑过程。过程报文还原了整个探测过程中的收发包情况,探测方对被探测Web站点都发送了哪些请求,对方服务器是如何应答的,过程报文都一一记录,为分析漏洞和网站实时响应提供有利数据。
以下给出了几种常见的漏洞类型,利用本文所介绍的可视化分析方法分别进行具体阐述。
2.1 XSS漏洞
基于特征值匹配来进行检测的XSS漏洞类型,其常见的检测逻辑如图 3 所示,是一个反复探测和验证的过程。
扫描器通过爬虫爬取Web站点的有效链接后,传递给相关插件进行探测扫描。插件在获取链接后,需要判断此链接是否有存在该漏洞的条件,抽取所有可能存在漏洞的位置点,构造请求URL和参数值去探测和发包,根据该漏洞的表现形式来判断返回的页面是否存在漏洞。
对应的特征值匹配检测逻辑条件满足后,漏洞发现条件也同步形成。此时,扫描器会把如下内容一一罗列出来:尝试探测的URL链接,具体的请求方式,在哪个参数字段上构造的特征值,相关的判断标准,最终构造的请求变量和URL语句函数,执行结果与预期结果的差异,页面请求和响应报文结果等漏洞确认的详情。
这样,就为此类XSS漏洞的发现提供了一个完整的检测可视化过程,让评估者清晰知晓XSS漏洞存在的相关判断依据、具体位置及如何验证和结果对比等。
2.2 SQL盲注
对于像SQL盲注这样的检测是不能通过特征值匹配来检测的,需要构造多次相似请求,根据返回页面的不同来判断,如图 6。
插件在获取到被检测URL后,抽取可能存在漏洞的注入点,会尝试发送三次请求获取充分条件。第一次采样,原始请求,将原始页面内容作为采样标准A;第二次采样,伪真页面B;第三次采样,false页面C。SQL盲注的检测,需要计算B/A和 C/A 之间的相似度,在某个确定的范围内就可以判定是否存在注入。
此基于相似度对比的检测过程对于评估者来说完全是黑盒的,根本无法获知真假页面之间的区别和差异,直观感受更无从谈起。而若采用本文介绍的可视化漏洞分析方法,如图7-1所示,扫描器通过提供可视化的漏洞检测过程,在判断标准中给出了插件的检测过程和漏洞表现形式,判断详情中给出了发送的伪真、错误请求URL,以及原始URL的请求和对应响应报文。
根据如上两组数据的页面相似度对比结果可以清楚看出两者之间的差异,当这个差异落在特定范围内时,就判断SQL盲注存在。从探测到展示,给评估者提供了重现该漏洞的完整场景。
2.3 弱口令猜测
在检测表单登录是否存在弱口令时,扫描器会根据预配置的弱口令列表或者自定义弱口令字典,通过枚举用户名和口令尝试登录,进行扫描确认。如图8所示,在获取到登录页面后,扫描器会根据配置的弱口令进行登录探测。
在检测出弱口令漏洞后,会给出具体的用户名、密码。评估者可以直接用给出的弱口令尝试登录漏洞URL。如图9的判断详情中,给出了具体的登录页面,检测出来的弱口令为admin,admin,看到请求响应,发现页面跳转到了主页面,登录成功,表示存在漏洞,从而重现这一探测过程。
3 结束语
通过上述简单介绍的可视化漏洞分析方法,评估者在看到扫描报告时,通过漏洞的判断标准、执行详情、过程报文,再也无须因不了解漏洞成因而困惑为什么Web环境会存在这样的漏洞,或者质疑是否存在误报,相关漏洞到底是如何被发现和确认的。此外,通过从扫描器给出的离线版漏洞场景文件,可以重现漏洞发现及确认全过程,从而进一步获取漏洞详情,为下一步的漏洞验证、漏洞修复提供更有效的参考数据。
㈣ 如何选择一款web漏洞扫描器
去看看腾讯的云web漏洞扫描器网页链接具体优势我就不复制粘贴了,技术啥的都差不多。
说说我选择的原因还有亮点吧
1、实时 2、有问题找客服时一般都是秒处理,这点很好。3、后台界面简洁适合不怎么爱研究的我。操作起来很友好~ 4、价格力度大
㈤ 漏洞扫描工具有哪些
杀毒软件,电脑管家之类都可检查系统漏洞和下载安装补丁。系统自己也有自动更新设置。
㈥ 网站漏洞扫描工具推荐,其中两款开源免费软件你知道吗
在如今互联网的时代,互联网的安危真真切切的影响到了我们的生活,在网络上,一直隐藏着许许多多的黑客,破坏网站的安防,挖漏洞来来找下一个金主,而网站则是不断的使用着网站漏洞扫描工具检查网站之中可能存在的隐患,防止有心人得逞,或者是造成网站的瘫痪,下面我们来介绍一下比较出名的网站漏洞扫描工具,在个人生活之中也可以使用的到。
一、Wireshark
这是一款开源的Web服务器扫描工具,对网页进行检测,其中有着3300种潜在威胁检测文件,包含625种服务器的版本号,230中的服务器问题的检测,不过这个软件的作者更新速度不稳定,对于新的网站的威胁可能检测不到。不过本身的功能还是很强大的,针对危险的检测和反侦测行为,躲避危险,并且隐藏自身的参数,将自己与危险隔离开来,并且检测访问的网站的问题。