CN109995771A - 一种基于遗传算法的存储型xss漏洞检测系统 - Google Patents
一种基于遗传算法的存储型xss漏洞检测系统 Download PDFInfo
- Publication number
- CN109995771A CN109995771A CN201910208409.5A CN201910208409A CN109995771A CN 109995771 A CN109995771 A CN 109995771A CN 201910208409 A CN201910208409 A CN 201910208409A CN 109995771 A CN109995771 A CN 109995771A
- Authority
- CN
- China
- Prior art keywords
- attack
- vector
- module
- decanting point
- genetic algorithm
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种存储型XSS漏洞检测系统,该系统包括网络爬虫与注入点分析、攻击向量生成、漏洞检测三个模块。通过对网站爬取链接,解析并分析每一个网页,查找网页中的form表单。同时,对表单提交正常的探子,用于确定注入点的输出页面与位置。然后利用遗传算法生成适合本网站的攻击向量。最后在漏洞检测模块,根据前两个模块记录的注入点信息与攻击向量,实现模拟攻击,然后在其展示页面判断是否含有该攻击向量,并判断该攻击向量是否执行成功。若攻击向量执行成功,则表示存在漏洞。该发明针对存储型XSS漏洞进行了深入研究,并实现了检测系统,对XSS漏洞的检测具有很好的实用意义。
Description
技术领域
本发明涉及一种基于遗传算法的存储型XSS漏洞检测系统,属于计算机软件领域。
背景技术
随着互联网技术高速发展,各种Web应用层出不穷,同时由于开发人员技术参差不齐,越来越多的Web安全问题也陆续出现。据国家信息安全漏洞库统计,跨站脚本漏洞(Cross Site Script Execution,XSS)位居第三,占20%,详情如图1所示。根据非盈利组织OWASP(the Open Web Application Security Project)公布的十大应用安全风险中,XSS漏洞也一直名列其中,这些都表明XSS漏洞已经成为目前各类Web应用需要面对的常见漏洞之一。
XSS漏洞产生的本质原因是各类Web应用对用户输入的数据没有能够进行有效过滤,造成攻击者提交的恶意代码可以在Web应用中恶意执行,给用户造成一系列的危害,例如盗取用户Cookies、网络钓鱼、劫持会话等。而XSS漏洞传统分为反射型、存储型以及基于DOM型三种类型。在这三类XSS漏洞中,存储型XSS漏洞危害相对于其他两类较为严重,影响时间长,故在本发明中,只针对存储型XSS漏洞检测进行研究。
目前针对存储型XSS漏洞检测的常用方法有白盒测试和黑盒测试两种。白盒测试对应用源码的依赖性很强,需要测试人员对源码全部了解,完成对代码的审计工作,检测方法的实现一般依赖于编程语言,可移植性差。对于黑盒测试来说,测试人员不需要了解应用源码,只需要站在用户的角度进行测试,一般依赖于爬虫算法获取网页信息,在众多的网页中查找可能的漏洞注入点。然而,在使用爬虫算法的时候,有些算法只关注提高爬虫的速度而忽略了某些网站的反爬虫规则产生的影响,从而造成爬虫的失败。同时,攻击向量设计的完备性与有效性也与漏洞检测的效率有关,常用的方法是模糊测试技术和设计变形规则。模糊测试技术通过向目标网站发送大量随机生成的无意义的数据,然后根据响应结果来判断是否存在漏洞。这些随机生成的数据由于缺少明确的意义和指向性,存在较大的盲目性。有些方法是通过一些编码、大小写混编、插入字符等方式对已有的攻击向量进行处理以保证最终注入的脚本能够得到有效执行。这种方法针对不同的被测网站的过滤机制的不同,检测结果的好坏也大不相同。
综上所述,本发明从黑盒测试的角度对存储型XSS漏洞检测进行了研究。提出了一种基于遗传算法的攻击向量生成方法,通过对已有的攻击向量变形,生成适应被测网站的攻击向量,具有较好的全局最优解求解能力。首先,扫描目标网站所有网页尽可能获取注入点,然后针对目标网站生成适合的攻击向量,最后对注入点进行模拟攻击,判断漏洞是否存在。
发明内容
本发明的内容为:
①提出了一种基于遗传算法的攻击向量生成与优化方法,该方法可以动态地生成适应待测网站的攻击向量。
②提出了一种基于广度优先搜索算法的爬虫框架,该框架可以通过解析页面来获取网页中向数据库中存储数据的交互点,扩大了存储型XSS漏洞注入点检测的覆盖率。
③提出了一种高效判定存储型XSS漏洞是否存在的方法。
④对相关方法以及框架进行实现并测试,验证了其实用性及有效性。
本发明从黑盒测试的角度出发,利用爬虫技术以及遗传算法对Web应用进行漏洞检测,以达到提高注入点覆盖率和存储型XSS漏洞的发现率。
为达到以上发明目的,经过反复研究与讨论,本软件系统确定最终方案如下:
1、系统总体设计
本系统主要分为三个模块:网络爬虫与注入点分析模块、攻击向量生成模块、漏洞检测模块。
(1)网络爬虫与注入点分析模块:该模块采用多线程技术提高爬虫速度,主要负责爬取网站链接并查找其中的注入点。本发明采用广度优先爬虫算法搜寻链接,递归地将获取到的链接经过去重处理后,将同域名下的所有URL加入队列便于后期解析。对每一个HTML文档,定位form表单,获取注入点信息。为了便于后期漏洞的检测,提高检测速度,对于网页中的每一个注入点,首先提交“探子”确定注入点的输入点位置,避免漏洞检测时网页全篇扫描,提高了效率。
(2)攻击向量生成模块:该模块采用遗传算法对收集到的基本攻击向量进行变形,得到适应目标网站的攻击向量,基本攻击向量库是指从OWASP中XSS Filter EvasionCheat Sheet收集的攻击向量。首先将攻击向量特征形式化,然后基于one-hot编码进行改进用于遗传算法的基因编码,完成遗传算法执行前的数据准备工作。
(3)漏洞检测模块:该模块主要负责模拟攻击行为与并进行漏洞分析。主要思想是随机从遗传算法产生的攻击向量中选择攻击向量,再使用selenium测试框架对注入点自动填充攻击向量,通过提交这些攻击向量对相关页面检测是否存在漏洞。首先利用爬虫与注入点分析模块得到注入点信息,直接对相关页面进行分析,定位到注入点后判定攻击向量是否存在。若存在则需要接着利用selenium.webdriver来确定攻击向量是否执行,若攻击向量执行则可以确定存在存储型XSS漏洞。
2、运行环境
本软件系统整体由python2.7编写,可以在Windows 64位系统上正常运行。
3、软件系统可根据实际情况改变的内容
由于本系统具有较强的通用型,在设计之初就考虑到了对其它操作系统的支持。
本项目核心库包括selenium、BeautifulSoup、re、threading、mysql-connector-python以及各种浏览器驱动库等,这些库都是独立.py文件,可以在所有主流的操作系统上运行,因此可以很好的实现跨平台移植。
由于selenium框架与浏览器紧密相关,可能会有版本不兼容的情况,故实际情况中,可以根据selenium的版本来调整浏览器的版本。
4、附图说明
图1国家信息安全漏洞库漏洞分类
图2系统架构图(按模块)
图3应对网站反爬虫规则
图4攻击向量生成图(遗传算法)
表1基本攻击向量示例
序号 | 部分攻击向量示例 |
1 | <script>alert(“xss”)</script> |
2 | <img src=javascript:prompt(“xss”)/> |
3 | "><img src=#onerror='alert(“xss”)'/><" |
4 | ><script>alert(“xss”)</script>< |
5 | ><img src=javascript:prompt(“xss”)/>< |
6 | "><img src=javascript:confirm(“xss”)/><" |
表1
具体实施方式
本系统的原理是基于遗传算法生成与优化攻击向量,利用爬虫技术快速获取源码,通过解析网页进行分析获取与后台交互的注入点,然后利用selenium实现表单提交,最后动态判断网页是否存在存储型XSS漏洞。本系统主要分为网络爬虫与注入点分析模块、攻击向量生成模块、漏洞检测模块三个模块,具体的系统架构如图2所示。
5.1网络爬虫与注入点分析模块
该模块主要实现搜索网页链接和通过页面解析技术查找注入点功能。搜索网页链接使用了广度优先爬虫算法,仅搜索同域名下的网页,该算法描述如算法1所示,并采用设置用户代理头部的方式来应对网站的反爬虫规则,以此避免爬虫的失败,用户代理头部详细情况如图3所示。
算法1:广度优先爬虫算法
Input:初始网页url,爬取深度depth
Output:与网址url同网站的所有页面URL
在爬取网页的过程中,涉及到网页解析。针对每一个待爬取网页,需要对其进行解析,分析网页的源码才能提取到网页链接和Web表单。结合上述提到的广度优先爬虫算法,整个网页爬虫模块的具体流程如下:
(1)根据给定的URL初始化待爬取队列和待检测队列。
(2)结合广度优先搜索算法,从待爬取队列首部取出一个网页url。
(3)利用python语言提供的urllib2模块,提取网页中的链接和Form表单信息。
(4)将步骤(3)中提取到的链接URL去重并添加到待爬取队列尾部。
(5)若网页URL中含有Form表单,则将网页URL加入待检测队列,并利用selenium提交探子,否则跳至步骤(7)
(6)分析响应结果,找到注入点的展示页面,完善注入点信息。
(7)结束。
在对每一个页面解析之后,定位Form标签在HTML文档中的位置,然后直接找到其子类标签,如<input>,<textarea>等这类向后台提供数据的标签,并以字典的形式存储下来,以便后期攻击注入。
5.2攻击向量生成模块
在本发明中,通过对遗传算法的基本流程进行改进,对已有的攻击向量进行变形,以产生适应能力高的攻击向量。基本攻击向量是从OWASP中XSS Filter Evasion CheatSheet收集的攻击向量,部分示例如表1所示。首先将改进的one-hot编码方式作为遗传算法的编码方法,整个基因串为20位的“01”串,然后选择随机竞争选择算法作为选择算子,算法描述如算法2所示。在第8位以后随机选择交叉点,然后进行单点交叉。最后,为了提高攻击向量的多样性,对攻击向量进行变异。利用遗传算法生成攻击向量的详细流程如图4所示。
算法2随机竞争选择算法
5.3漏洞检测模块
该模块是基于黑盒测试的思想,在前面两个模块的基础上来判定存储型XSS漏洞的存在。主要分为模拟攻击以及漏洞检测阶段,从待检测队列中选择一个URL,以及相关的注入点信息,对表单填充遗传算法生成的攻击向量并提交,在其相关页面判定攻击向量是否执行以达到判定漏洞是否存在的目的。具体操作如算法3所述。
综上,在判定是否存在漏洞时,需要判定弹窗是否出现,本发明中通过借用selenium框架中的alert_is_present()方法来确定是否出现弹窗,并进一步确定弹窗内容是否为提交的攻击向量中的内容。
Claims (1)
1.一种基于遗传算法的存储型XSS漏洞检测系统分为三个模块:网络爬虫与注入点分析模块、攻击向量生成模块、漏洞检测模块;
网络爬虫与注入点分析模块:该模块采用多线程技术提高爬虫速度,负责爬取网站链接并查找其中的注入点;采用广度优先爬虫算法搜寻链接,递归地将获取到的链接经过去重处理后,将同域名下的所有URL加入队列便于后期解析;对每一个HTML文档,定位form表单,获取注入点信息;为了便于后期漏洞的检测,提高检测速度,对于网页中的每一个注入点,首先提交“探子”确定注入点的输入点位置,避免漏洞检测时网页全篇扫描,提高了效率;
(2)攻击向量生成模块:该模块采用遗传算法对收集到的基本攻击向量进行变形,得到适应目标网站的攻击向量,基本攻击向量库是指从OWASP中XSS Filter Evasion CheatSheet收集的攻击向量;首先将攻击向量特征形式化,然后基于one-hot编码进行改进用于遗传算法的基因编码,完成遗传算法执行前的数据准备工作;
(3)漏洞检测模块:该模块负责模拟攻击行为与并进行漏洞分析;随机从遗传算法产生的攻击向量中选择攻击向量,再使用selenium测试框架对注入点自动填充攻击向量,通过提交这些攻击向量对相关页面检测是否存在漏洞;首先利用爬虫与注入点分析模块得到注入点信息,直接对相关页面进行分析,定位到注入点后判定攻击向量是否存在;若存在则需要接着利用selenium.webdriver来确定攻击向量是否执行,若攻击向量执行则可以确定存在存储型XSS漏洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910208409.5A CN109995771A (zh) | 2019-03-19 | 2019-03-19 | 一种基于遗传算法的存储型xss漏洞检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910208409.5A CN109995771A (zh) | 2019-03-19 | 2019-03-19 | 一种基于遗传算法的存储型xss漏洞检测系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109995771A true CN109995771A (zh) | 2019-07-09 |
Family
ID=67129096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910208409.5A Pending CN109995771A (zh) | 2019-03-19 | 2019-03-19 | 一种基于遗传算法的存储型xss漏洞检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995771A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818007A (zh) * | 2020-05-13 | 2020-10-23 | 中国科学院软件研究所 | 一种基于量子遗传算法的漏洞修复收益优先级评估方法及电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894237A (zh) * | 2010-08-03 | 2010-11-24 | 南开大学 | 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法 |
CN104657659A (zh) * | 2013-11-20 | 2015-05-27 | 腾讯科技(深圳)有限公司 | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 |
-
2019
- 2019-03-19 CN CN201910208409.5A patent/CN109995771A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894237A (zh) * | 2010-08-03 | 2010-11-24 | 南开大学 | 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法 |
CN104657659A (zh) * | 2013-11-20 | 2015-05-27 | 腾讯科技(深圳)有限公司 | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 |
Non-Patent Citations (3)
Title |
---|
FABIEN DUCHENE,ET AL.: "XSS Vulnerability Detection Using Model Inference Assisted Evolutionary Fuzzing", 《2012 IEEE FIFTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION》 * |
刘源: "一种基于模拟浏览器行为的XSS漏洞检测系统的研究与设计", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
程诚等: "基于模糊测试和遗传算法的XSS漏洞挖掘", 《计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818007A (zh) * | 2020-05-13 | 2020-10-23 | 中国科学院软件研究所 | 一种基于量子遗传算法的漏洞修复收益优先级评估方法及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881608B (zh) | 一种基于模拟浏览器行为的xss漏洞检测方法 | |
Lee et al. | A novel method for SQL injection attack detection based on removing SQL query attribute values | |
Vieira et al. | Defending against web application vulnerabilities | |
CN104881607B (zh) | 一种基于模拟浏览器行为的xss漏洞检测系统 | |
Rajab et al. | Trends in circumventing web-malware detection | |
CN109462583B (zh) | 一种基于静态和动态相结合的反射型漏洞检测方法 | |
US20140173736A1 (en) | Method and system for detecting webpage Trojan embedded | |
US20150248559A1 (en) | Security scan based on dynamic taint | |
CN106022135A (zh) | 一种可动态判断xss漏洞的自动化检测系统 | |
CN111797407B (zh) | 一种基于深度学习模型优化的xss漏洞检测方法 | |
Shahriar et al. | Mutec: Mutation-based testing of cross site scripting | |
CN106022132A (zh) | 一种基于动态内容分析的网页木马实时检测方法 | |
Antunes et al. | Designing vulnerability testing tools for web services: approach, components, and tools | |
Hou et al. | A dynamic detection technique for XSS vulnerabilities | |
Huang et al. | Craxweb: Automatic web application testing and attack generation | |
CN112738127B (zh) | 基于Web的网站与主机漏洞检测系统及其方法 | |
Li et al. | The application of fuzzing in web software security vulnerabilities test | |
Khalid et al. | Web vulnerability finder (WVF): automated black-box web vulnerability scanner | |
CN109818954B (zh) | Web注入型攻击检测方法、装置、电子设备及存储介质 | |
Qu | Research on password detection technology of iot equipment based on wide area network | |
CN109995771A (zh) | 一种基于遗传算法的存储型xss漏洞检测系统 | |
Pan et al. | EDEFuzz: A Web API Fuzzer for Excessive Data Exposures | |
Liu et al. | A XSS vulnerability detection approach based on simulating browser behavior | |
CN115270139B (zh) | 一种IoT设备网络服务自动化漏洞分析方法及系统 | |
Zhang et al. | Research on SQL injection vulnerabilities and its detection methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190709 |
|
WD01 | Invention patent application deemed withdrawn after publication |