CN102819710B - 基于渗透测试的跨站点脚本漏洞检测方法 - Google Patents
基于渗透测试的跨站点脚本漏洞检测方法 Download PDFInfo
- Publication number
- CN102819710B CN102819710B CN201210298765.9A CN201210298765A CN102819710B CN 102819710 B CN102819710 B CN 102819710B CN 201210298765 A CN201210298765 A CN 201210298765A CN 102819710 B CN102819710 B CN 102819710B
- Authority
- CN
- China
- Prior art keywords
- page
- statement
- cross
- xss
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于渗透测试的跨站点脚本漏洞检测方法,用于解决现有的跨站点脚本漏洞检测方法检测效率低的技术问题。技术方案是首先进行页面获取,再进行表单信息提取,后对提取的表单进行渗透测试,最后进行会话保持和重定向跟踪。由于采用会话保持与重定向跟踪方法来减少对Web页面分析不全面的情况,对Web站点的全部页面进行分析检测,提高了自动化检测能力。依据渗透测试策略,逐步缩小XSS的检测范围,避免了对安全页面进行深度检测。在注入测试语句时,根据返回的页面信息,主动构造出能使HTML语句闭合的测试语句,减少了与服务器的交互次数,提高了大型复杂Web网站XSS漏洞的检测效率。
Description
技术领域
本发明涉及一种跨站点脚本漏洞检测方法,特别是涉及一种基于渗透测试的跨站点脚本漏洞检测方法。
背景技术
跨站点脚本(Cross-Site Scripting,XSS)漏洞已成为互联网上最为严重的安全漏洞。根据有关国际信息安全组织统计,在最具威胁的Web应用安全漏洞中,XSS漏洞的排名始终处于前列,如2004年的第四位,2007年的第一位,2010年的第二位,由此可见XSS漏洞的严重性。
XSS漏洞是指攻击者向Web页面***恶意HTML代码,当正常用户浏览该页时,嵌入在Web页面里的恶意HTML代码被执行,从而达到攻击正常用户的目的。XSS漏洞产生的原因就是在HTML中被注入了脚本代码,使其在脚本解析和运行阶段向攻击者提供可被利用的信息,实现对正常用户的攻击。当用户点击了包含XSS漏洞的恶意链接时,服务器会返回包含恶意代码的页面,恶意代码会在客户端浏览器上执行,对用户进行XSS攻击。XSS攻击会导致用户信息被盗取并对用户进行会话劫持;更严重的危害包括XSS钓鱼、XSS蠕虫、XSS挂马等。对于XSS漏洞,传统的防范方法主要是在服务器端对浏览器提交的内容进行检查或者编码处理,经过处理后,返回到客户端浏览器的攻击代码就不能被执行。但是这种方法是粗粒度的,XSS攻击可以通过一些方法来绕过这些检查,从而使服务器端的安全检查失效。
文献“基于爬虫的XSS漏洞检测工具设计与实现.计算机工程,2009,35(21):151-154.”公开了一种利用爬虫寻找可疑切入点,并对可疑切入点做检测的方法。该方法采用遍历测试语句的方法,对每条注入点需要注入大量的测试语句。由于对注入后返回的页面信息只分析其是否会触发XSS漏洞,而没有进一步对不能触发XSS漏洞的页面进行分析,在很多情况下往往只需根据返回页面重新构造测试语句,使其将HTML语句闭合就可以触发XSS漏洞,对测试语句的利用率低,进而造成检测效率较低。
发明内容
为了克服现有的跨站点脚本漏洞检测方法检测效率低的不足,本发明提供一种基于渗透测试的跨站点脚本漏洞检测方法。该方法采用会话保持与重定向跟踪方法来减少对Web页面分析不全面的情况,对Web站点的全部页面进行分析检测,可以提高自动化检测能力。依据渗透测试策略,逐步缩小XSS的检测范围,可以避免对安全页面进行深度检测。在注入测试语句时,根据返回的页面信息,主动构造出能使HTML语句闭合的测试语句,可以减少与服务器的交互次数,提高大型复杂Web网站XSS漏洞的检测效率。
本发明解决其技术问题所采用的技术方案是:一种基于渗透测试的跨站点脚本漏洞检测方法,其特点是包括以下步骤:
(a)根据URL获取所对应的Web页面,取得相应页面的全部URL链接;
(b)提取步骤(a)所获取页面中的表单信息,所提取的表单信息包括表单的提交方式,表单所要提交的目的URL,表单中input标签里,当type类型值分别为空值、“text”、“hidden”、“password”和“submit”时,input标签所对应的name值和value值;
(c)对表单进行渗透测试:
(1)向表单渗透测试语句,分析返回页面,如果返回页面中包含所渗透的测试语句,转向步骤(2),否则转向步骤(a);
(2)在步骤(1)的渗透测试语句中分别加上特殊字符“<”、“>”、“/”、“'”和“"”,提交后分析返回页面,如果返回页面中包含渗透测试语句,记录特殊字符,转向步骤(3),否则转向步骤(a);
(3)根据步骤(2)中服务器端没有过滤的特殊字符选取XSS攻击字符串,提交后分析返回页面,如果返回的页面中包含可执行的XSS脚本,则表明该页面包含XSS漏洞;记录结果并转向步骤(a);如果返回的页面不包含可执行的XSS脚本且测试语句没有将HTML语句闭合,则对攻击代码的字符或字符串的测试语句进行动态修改,构造出能使HTML语句闭合的测试语句后再次执行步骤(3)。
(d)会话保持和重定向跟踪,在步骤(c)中与服务器端的交互过程使用会话保持和重定向跟踪。
本发明的有益效果是:由于采用会话保持与重定向跟踪方法来减少对Web页面分析不全面的情况,对Web站点的全部页面进行分析检测,提高了自动化检测能力。依据渗透测试策略,逐步缩小XSS的检测范围,避免了对安全页面进行深度检测。在注入测试语句时,根据返回的页面信息,主动构造出能使HTML语句闭合的测试语句,减少了与服务器的交互次数,提高了大型复杂Web网站XSS漏洞的检测效率。
下面结合附图和实施例对本发明作详细说明。
附图说明
图1是本发明方法中的页面获取流程图。
图2是本发明方法中的表单信息提取流程图。
图3是本发明方法中的渗透测试流程图。
具体实施方式
以下实施例参照图1~3。
本发明基于渗透测试的跨站点脚本漏洞检测方法针对实际Web应用***,检测XSS漏洞。具体步骤如下:
1.页面获取。
按队列优先级从URL队列中取出一条URL链接,根据该URL链接获取所对应的Web页面,取得该页面的全部URL链接,将得到的URL链接按照优先级次序分别放入不同的队列中。在取出URL链接时,根据HashTable对其进行查重,如果发现重复的URL则丢弃,以避免重复获取相同页面。如果所获取URL深度大于最大深度,则将URL丢弃。如果URL队列为空,则检测结束。
2.表单信息提取。
对步骤1所获取的页面提取表单信息,所提取的表单信息包括表单的提交方式,表单所要提交的目的URL,表单中input标签里type值为空值、“text”、“hidden”、“password”、“submit”所对应的name值和value值。对表单信息的查重方法与页面获取中的方法相同。
3.对表单信息进行渗透测试。
对表单的标签中type值为空值或为“text”所对应的value值进行渗透。
(1)根据表单信息中的提交方式,向服务器渗透不包含“<”“/”“=”“>”“'”“"”“script”“javascript”“alert”等可用于构造攻击代码的字符或字符串的测试语句,分析返回页面,如果返回页面中包含所渗透的测试语句,转向步骤(2),否则该页面不包含可注入点,转向步骤1;
(2)在步骤(1)的渗透测试语句中分别加上特殊字符“<”“>”“/”“'”“"”,根据表单中的提交方式提交后,分析返回页面,如果返回页面中包含渗透测试语句,记录特殊字符,转向步骤(3),否则转向步骤1;
(3)根据步骤(2)中服务器端没有过滤的特殊字符选取XSS攻击字符串,使用表单信息中的提交方式提交后,用正则表达式的方法分析返回页面,如果返回的页面中包含可执行的XSS脚本,则表明该页面包含XSS漏洞。记录结果并转向步骤1。如果返回的页面不包含可执行的XSS脚本且攻击测试语句没有将HTML语句闭合,则根据渗透区域上下文,对原测试语句进行动态修改,构造出能使HTML语句闭合的测试语句。再次执行步骤(3)。
4.会话保持和重定向跟踪。
在步骤3中与服务器端的交互过程中使用会话保持和重定向跟踪。会话保持的方法是将服务器返回的cookie信息保存在本地文件中,当再次向服务器发出请求时将相应的cookie信息添加到HTTP请求头中。重定向跟踪的方法是当Web服务器发出“HTTP/1.1 301”或“HTTP/1.1 302”的响应时,获取HTTP响应头中“Location:目标URL”所指向的URL信息,并使用之前的参数再次对该URL进行请求。
Claims (1)
1.一种基于渗透测试的跨站点脚本漏洞检测方法,其特征在于包括以下步骤:
(a)根据URL获取所对应的Web页面,取得相应页面的全部URL链接;
(b)提取步骤(a)所获取页面中的表单信息,所提取的表单信息包括表单的提交方式,表单所要提交的目的URL,表单中input标签里,当type类型值分别为空值、“text”、“hidden”、“password”和“submit”时,input标签所对应的name值和value值;
(c)对表单进行渗透测试:
(1)根据表单信息中的提交方式,向服务器渗透不包含“<”、“/”、“=”、“>”、“'”、“"”、“script”、“javascript”以及“alert”可用于构造攻击代码的字符或字符串的测试语句,分析返回页面,如果返回页面中包含所渗透的测试语句,转向步骤(2),否则转向步骤(a);
(2)在步骤(1)的渗透测试语句中分别加上特殊字符“<”、“>”、“/”、“'”和“"”,提交后分析返回页面,如果返回页面中包含渗透测试语句,记录特殊字符,转向步骤(3),否则转向步骤(a);
(3)根据步骤(2)中服务器端没有过滤的特殊字符选取XSS攻击字符串,提交后分析返回页面,如果返回的页面中包含可执行的XSS脚本,则表明该页面包含XSS漏洞,记录结果并转向步骤(a);如果返回的页面不包含可执行的XSS脚本且测试语句没有将HTML语句闭合,则对攻击代码的字符或字符串的测试语句进行动态修改,构造出能使HTML语句闭合的测试语句后再次执行步骤(3);
(d)会话保持和重定向跟踪,在步骤(c)中与服务器端的交互过程使用会话保持和重定向跟踪;会话保持的方法是将服务器返回的cookie信息保存在本地文件中,当再次向服务器发出请求时将相应的cookie信息添加到HTTP请求头中;重定向跟踪的方法是当Web服务器发出“HTTP/1.1 301”或“HTTP/1.1 302”的响应时,获取HTTP响应头中“Location:目标URL”所指向的URL信息,并使用之前的cookie信息再次对该URL进行请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210298765.9A CN102819710B (zh) | 2012-08-22 | 2012-08-22 | 基于渗透测试的跨站点脚本漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210298765.9A CN102819710B (zh) | 2012-08-22 | 2012-08-22 | 基于渗透测试的跨站点脚本漏洞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819710A CN102819710A (zh) | 2012-12-12 |
CN102819710B true CN102819710B (zh) | 2014-11-12 |
Family
ID=47303820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210298765.9A Expired - Fee Related CN102819710B (zh) | 2012-08-22 | 2012-08-22 | 基于渗透测试的跨站点脚本漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819710B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
US9823924B2 (en) | 2013-01-23 | 2017-11-21 | International Business Machines Corporation | Vector element rotate and insert under mask instruction |
CN103176900B (zh) * | 2013-02-06 | 2016-01-06 | 网宿科技股份有限公司 | 移动终端应用程序优化效果的自动检测方法和*** |
GB2519159A (en) * | 2013-10-14 | 2015-04-15 | Ibm | Security testing of web applications with specialised payloads |
CN103530565A (zh) * | 2013-10-21 | 2014-01-22 | 北京锐安科技有限公司 | 基于web的网站程序漏洞扫描方法及扫描装置 |
CN104657659B (zh) * | 2013-11-20 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 一种存储跨站攻击脚本漏洞检测方法、装置及*** |
CN104834588B (zh) * | 2014-02-11 | 2019-06-25 | 腾讯科技(深圳)有限公司 | 检测常驻式跨站脚本漏洞的方法和装置 |
CN105282096A (zh) * | 2014-06-18 | 2016-01-27 | 腾讯科技(深圳)有限公司 | Xss 漏洞检测方法和装置 |
CN104539605B (zh) * | 2014-12-23 | 2017-12-22 | 北京奇安信科技有限公司 | 网站xss漏洞检测方法和设备 |
CN104537305B (zh) * | 2014-12-31 | 2017-12-15 | 北京奇安信科技有限公司 | 网站漏洞检测方法和*** |
CN104811488B (zh) * | 2015-04-13 | 2018-09-25 | 深信服网络科技(深圳)有限公司 | 基于负载均衡设备的会话保持方法及***和负载均衡设备 |
CN107844701A (zh) * | 2016-09-21 | 2018-03-27 | 南京大学 | 一种基于程序分析和变异输入的跨站脚本攻击检测方法 |
CN107749835B (zh) * | 2017-09-11 | 2020-11-20 | 哈尔滨工程大学 | 一种基于预测的点击劫持攻击的渗透测试方法 |
CN110399723B (zh) * | 2018-06-22 | 2023-05-12 | 腾讯科技(深圳)有限公司 | 漏洞检测方法和装置、存储介质及电子装置 |
CN109491912A (zh) * | 2018-11-09 | 2019-03-19 | 北京知道创宇信息技术有限公司 | 一种代码审计方法、装置及存储介质 |
CN110113311A (zh) * | 2019-03-05 | 2019-08-09 | 北京丁牛科技有限公司 | 跨站脚本攻击xss漏洞检测方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242279A (zh) * | 2008-03-07 | 2008-08-13 | 北京邮电大学 | 用于web***的自动化渗透性测试***和方法 |
CN101849238A (zh) * | 2007-11-05 | 2010-09-29 | 微软公司 | 跨站脚本过滤器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8024804B2 (en) * | 2006-03-08 | 2011-09-20 | Imperva, Inc. | Correlation engine for detecting network attacks and detection method |
CN101594343B (zh) * | 2008-05-29 | 2013-01-23 | 国际商业机器公司 | 安全提交请求的装置和方法、安全处理请求的装置和方法 |
-
2012
- 2012-08-22 CN CN201210298765.9A patent/CN102819710B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101849238A (zh) * | 2007-11-05 | 2010-09-29 | 微软公司 | 跨站脚本过滤器 |
CN101242279A (zh) * | 2008-03-07 | 2008-08-13 | 北京邮电大学 | 用于web***的自动化渗透性测试***和方法 |
Non-Patent Citations (3)
Title |
---|
Shahriar,H.S2XS2:A Server Side Approach to Automatically Detect XSS Attacks.《IEEE CONFERENCE PUBLICATIONS》.2011,Page:7-14. * |
王晓聪等.渗透测试技术浅析.《计算机科学》.2012,第39卷(第6A期),第86-88页. * |
邢斌等.一种自动化的渗透测试***的设计与实现.《计算机应用研究》.2010,第27卷(第4期),第1384-1387页. * |
Also Published As
Publication number | Publication date |
---|---|
CN102819710A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819710B (zh) | 基于渗透测试的跨站点脚本漏洞检测方法 | |
US9935967B2 (en) | Method and device for detecting malicious URL | |
JP6624771B2 (ja) | クライアントベースローカルマルウェア検出方法 | |
CN101895516B (zh) | 一种跨站脚本攻击源的定位方法及装置 | |
US9021593B2 (en) | XSS detection method and device | |
CN103279710B (zh) | Internet信息***恶意代码的检测方法和*** | |
US20140173736A1 (en) | Method and system for detecting webpage Trojan embedded | |
CN105592017B (zh) | 跨站脚本攻击的防御方法及*** | |
CN104967628B (zh) | 一种保护web应用安全的诱骗方法 | |
CN101820419A (zh) | 一种挂马网页中网页木马挂接点自动定位方法 | |
WO2017056121A1 (en) | Method for the identification and prevention of client-side web attacks | |
CN106951784B (zh) | 一种面向XSS漏洞检测的Web应用逆向分析方法 | |
Ambedkar et al. | A comprehensive inspection of cross site scripting attack | |
Liang et al. | Malicious web pages detection based on abnormal visibility recognition | |
Kishore et al. | Browser JS Guard: Detects and defends against Malicious JavaScript injection based drive by download attacks | |
CN110708308B (zh) | 一种面向云计算环境的跨站脚本漏洞挖掘方法及*** | |
Das et al. | Detection of cross-site scripting attack under multiple scenarios | |
Lekies et al. | A tale of the weaknesses of current client-side XSS filtering | |
Jain et al. | Detection of javascript vulnerability at Client Agen | |
CN104732144A (zh) | 一种基于伪协议的远程代码注入漏洞检测方法 | |
Hadpawat et al. | Analysis of prevention of XSS attacks at client side | |
Hao et al. | JavaScript malicious codes analysis based on naive bayes classification | |
CN111131223A (zh) | 一种点击劫持的测试方法及装置 | |
Rao et al. | Cross site scripting attacks and preventive measures | |
CN107918735A (zh) | 一种基于孤岛文件的网页木马检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141112 Termination date: 20150822 |
|
EXPY | Termination of patent right or utility model |