CN102819710B - 基于渗透测试的跨站点脚本漏洞检测方法 - Google Patents

基于渗透测试的跨站点脚本漏洞检测方法 Download PDF

Info

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
Application number
CN201210298765.9A
Other languages
English (en)
Other versions
CN102819710A (zh
Inventor
蔡皖东
王强
姚烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201210298765.9A priority Critical patent/CN102819710B/zh
Publication of CN102819710A publication Critical patent/CN102819710A/zh
Application granted granted Critical
Publication of CN102819710B publication Critical patent/CN102819710B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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进行请求。
CN201210298765.9A 2012-08-22 2012-08-22 基于渗透测试的跨站点脚本漏洞检测方法 Expired - Fee Related CN102819710B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask 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
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 国际商业机器公司 安全提交请求的装置和方法、安全处理请求的装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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信息系统恶意代码的检测方法和系统
CN105592017B (zh) 跨站脚本攻击的防御方法及系统
CN104967628B (zh) 一种保护web应用安全的诱骗方法
CN101820419A (zh) 一种挂马网页中网页木马挂接点自动定位方法
Gebre et al. A robust defense against content-sniffing xss attacks
WO2018066000A1 (en) System and method to detect and block bot traffic
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) 一种面向云计算环境的跨站脚本漏洞挖掘方法及系统
Lekies et al. A tale of the weaknesses of current client-side XSS filtering
Das et al. Detection of cross-site scripting attack under multiple scenarios
Jain et al. Detection of javascript vulnerability at Client Agen
Hadpawat et al. Analysis of prevention of XSS attacks at client side
Hao et al. JavaScript malicious codes analysis based on naive bayes classification
CN107124386B (zh) 黑色产业内容的检测分析方法及装置
Rao et al. Cross site scripting attacks and preventive measures
Tang et al. Identifying cross-site scripting attacks based on URL Analysis
CN107918735A (zh) 一种基于孤岛文件的网页木马检测方法
Gupta et al. A context-sensitive approach for precise detection of cross-site scripting vulnerabilities

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