CN103428219A - 一种基于网页模板匹配的web漏洞扫描方法 - Google Patents
一种基于网页模板匹配的web漏洞扫描方法 Download PDFInfo
- Publication number
- CN103428219A CN103428219A CN2013103747708A CN201310374770A CN103428219A CN 103428219 A CN103428219 A CN 103428219A CN 2013103747708 A CN2013103747708 A CN 2013103747708A CN 201310374770 A CN201310374770 A CN 201310374770A CN 103428219 A CN103428219 A CN 103428219A
- Authority
- CN
- China
- Prior art keywords
- webpage
- queue
- template
- catalogue
- analyzed
- 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.)
- Granted
Links
Abstract
本发明公开了一种基于网页模板匹配的web漏洞扫描方法,该方法通过计算检测到页面与模板页面的结构相似度,判断该页面是否需要抓取并进行漏洞扫描;本发明对设备要求简单,漏洞检测准确率高,同时在应用中表现出良好的稳定性。
Description
技术领域
本发明涉及信息安全和网页架构领域,尤其涉及一种基于网页模板匹配的web漏洞扫描方法。
背景技术
Web应用程序面向广大Web用户,一旦出现严重漏洞,其危害将非常大。Web应用程序存在许多种漏洞,导致易受到攻击,其中,SQL 注入攻击(SQL injection)是目前主流的Web攻击方法之一。SQL 注入攻击者利用Web 应用程序没有对用户输入数据的合法性进行判断,通过Web页面的输入区域(如URL、表单等),用精心构造的 SQL 语句插入特殊字符和指令,从而对后端数据库进行攻击,以获得管理员权限。
SQL 注入漏洞检测的基本原理是采用模拟攻击方式,构造特殊的SQL 语句对目标 Web 站点的URL 地址进行注入测试,然后根据返回的网页内容确定是否存在注入漏洞。例如,若在URL 地址后附加SQL 语句“and 1=1”测试语句执行后返回正常网页,而附加“”或“and 1=2”测试语句执行后返回包含数据库错误信息的网页或者其他与正常时相异的网页,则判定该 Web 页面存在 SQL 注入漏洞。所谓“注入点”就是可以实行注入的地方,通常是一个访问数据库的连接。SQL注入漏洞扫描的过程可描述为:1、利用网络爬虫抓取网站网页;2、分析网页页面结构,寻找可能的注入点;3、向注入点发送模拟攻击数据;4、通过分析返回数据判断被检测的网页是否存在SQL注入漏洞。在对Web漏洞扫描过程中需要抓取网站所有网页,再进行分析、测试,这种方式虽然可以获得较高的扫描准确率,但对大型网站,将导致过高的扫描时间。
因此,在保证漏洞扫描的准确率的情况下,实现适当缩减扫描规模,以提高SQL注入漏洞扫描效率成为了当前亟需解决的问题。
发明内容
为了提高SQL注入漏洞扫描效率,本发明提供了一种基于网页模板匹配的web漏洞扫描方法。
本发明的目的是通过以下技术方案来实现的:一种基于网页模板匹配的web漏洞扫描方法,包括以下步骤:
(1)维护一个扫描网站的目录树,目录树的每个节点均为一个目录;
(2)利用网络爬虫抓取网页,根据网页的URL地址将网页放到相应的目录节点;
(3)当从一个目录节点中随机抽取的网页数量达到指定值时,对该目录中的网页进行模板匹配分别记录该目录下网页的相似值和不相似值;
(4)模板匹配过程中维护两个队列,其中待分析队列保存目录中尚未处理的网页,模板队列保存匹配成功的网页。初始时,目录中一个网页保存到模板队列,其他网页都保存到待分析队列;
(5)待分析队列出队一个待分析网页,若待分析队列为空则转步骤(9);
(6)遍历模板队列,分别计算待分析网页与模板队列中网页的相似度;
(7)若相似度超过阈值则继续遍历模板队列,否则转步骤(5);
(8)若步骤(7)中模板队列遍历结束,且相似度均大于阈值则网页进入模板队列;
(9)计算目录中网页匹配成功的概率,即模板队列中网页数与目录下网页数的百分比。匹配成功的概率大于一定阈值,则不再继续爬行该目录下其他网页,否则需要继续爬行该目录下其他网页。
(10)对目录树中所爬取的所有网页进行SQL注入测试;
(11)扫描结束。
本发明的有益效果是,本发明利用网页模板匹配技术实现了一种高效的web漏洞扫描方法,而不再依赖对整个网站所有网页抓取和扫描。该方法通过计算检测到页面与模板页面的结构相似度,判断该页面是否需要抓取并进行漏洞扫描;本发明对设备要求简单,漏洞检测准确率高,同时在应用中表现出良好的稳定性。
附图说明
图1是基于网页模板匹配的漏洞扫描的流程图。
具体实施方式
本发明提供一种基于网络模板匹配的、高效的漏洞扫描解决方案。该方案在网页爬取过程中维护一个扫描网站的目录树,目录树的每一个节点均为一个目录,目录中可以包含子目录及该目录中的网页。漏洞扫描当爬取到一个网页时,根据网页的URL地址将网页存放到相应的目录节点中,当一个目录节点中的网页数量达到指定值时,对该目录中的网页进行模板匹配,计算出网页的相似度,如果相似度达到一定阈值,则可判断该目录中的网页由同一模板生成,该目录中的其他网页无需再爬取。最后,方案将对目录树中所提取的网页进行注入检测。
下面结合附图详细描述本发明。
如图1所示,基于网页模板匹配的漏洞扫描对象精简方法包括如下步骤:
(1)维护一个扫描网站的目录树,目录树的每个节点均为一个目录;
(2)利用网络爬虫抓取网页,根据网页的URL地址将网页放到相应的目录节点;
网络爬虫模块下载并解析了当前页面,分别保存了当前页面和页面中的url队列。由于爬取的网页最终用于SQL注入测试,因此在url抓取过程中需要过滤不存在注入点的静态url,从而避免重复抓取又可以减少队列空间的开销。网盘模块最终返回当前页面下可能存在SQL注入漏洞的url队列。
(3)当从一个目录节点中随机抽取的网页数量达到指定值时,对该目录中的网页进行模板匹配分别记录该目录下网页的相似值和不相似值;
本发明依据超几何分布进行网页抽样,超几何分布是统计学上一种离散概率分布。它描述了由有限个物件中抽出n个物件,成功抽出指定种类的物件的次数(不归还)。
在网页相似性计算的不放回抽检中,若N条url中有M条url为不相似网页链接,抽检n条时所得不相似数X=k,则P(X=k)=C(M,k)·C(N-M,n-k)/C(N,n), C(a,b)为古典概型的组合形式,a为下限,b为上限。此时我们称随机变量X服从超几何分布(hypergeometric distribution)。本发明采用随机抓取限定数量η∈[Y, Z]的网页数,Y和Z为预先设定的值,计算得到这一数量内需要达到的相似度概率阈值λ。
(4)模板匹配过程中维护两个队列,其中待分析队列保存目录中尚未处理的网页,模板队列保存匹配成功的网页。初始时,目录中一个网页保存到模板队列,其他网页都保存到待分析队列;
为了解析目录中的网页,本发明设计了网页链接解析模块。解析的具体过程为:i) 获取一个网站上的链接;ii)设置变量用于过滤 <a> 标签和 <frame> 标签;iii)得到所有经过过滤的标签。解析的结果以网页的形式进行保存。
(5)待分析队列出队一个待分析网页,若待分析队列为空则转步骤(9);
(6)遍历模板队列,分别计算待分析网页与模板队列中网页的相似度;
本发明先将网页结构解析成标签的序列,通过对两个需要进行匹配的标签序列进行最长公子序列的计算得到标签序列间的相似度。
(7)若相似度超过阈值则继续遍历模板队列,否则转步骤(5);
(8)若步骤(7)中模板队列遍历结束,且相似度均大于阈值则网页进入模板队列;
(9)计算目录中网页匹配成功的概率,即模板队列中网页数与目录下网页数的百分比。匹配成功的概率大于一定阈值,则不再继续爬行该目录下其他网页,否则需要继续爬行该目录下其他网页。
若抓取的网页中相似网页的概率大于λ则不再继续爬行该目录下其他网页,否则需要继续爬行该目录下其他网页。
(10)对目录树中所爬取的所有网页进行SQL注入测试;
SQL盲注测试利用详细的出错结果获得数据是一种广泛的攻击技术。 应用SQL盲注需要首先进行SQL盲注点的查找与确认工作,可以利用以下三点进行SQL盲注点的查找与确认工作:1)产生通用错误;2)确认盲注点;3)拆分注入。
本发明的SQL注入测试主要采用SQL盲注测试,通过向服务器发送特意构造的SQL语句尝试获取数据库,并分析服务器反馈结果以确定是否存在SQL注入漏洞,若存在漏洞则返回漏洞类型。
(11)扫描结束。
Claims (1)
1.一种基于网页模板匹配的web漏洞扫描方法,其特征在于,包括如下步骤:
(1)维护一个扫描网站的目录树,目录树的每个节点均为一个目录;
(2)利用网络爬虫抓取网页,根据网页的URL地址将网页放到相应的目录节点;
(3)当从一个目录节点中随机抽取的网页数量达到指定值时,对该目录中的网页进行模板匹配分别记录该目录下网页的相似值和不相似值;
(4)模板匹配过程中维护两个队列,其中待分析队列保存目录中尚未处理的网页,模板队列保存匹配成功的网页;初始时,目录中一个网页保存到模板队列,其他网页都保存到待分析队列;
(5)待分析队列出队一个待分析网页,若待分析队列为空则转步骤9;
(6)遍历模板队列,分别计算待分析网页与模板队列中网页的相似度;
(7)若相似度超过阈值则继续遍历模板队列,否则转步骤5;
(8)若步骤7中模板队列遍历结束,且相似度均大于阈值则网页进入模板队列;
(9)计算目录中网页匹配成功的概率,即模板队列中网页数与目录下网页数的百分比;匹配成功的概率大于一定阈值,则不再继续爬行该目录下其他网页,否则需要继续爬行该目录下其他网页;
(10)对目录树中所爬取的所有网页进行SQL注入测试;
(11)扫描结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310374770.8A CN103428219B (zh) | 2013-08-25 | 2013-08-25 | 一种基于网页模板匹配的web漏洞扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310374770.8A CN103428219B (zh) | 2013-08-25 | 2013-08-25 | 一种基于网页模板匹配的web漏洞扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103428219A true CN103428219A (zh) | 2013-12-04 |
CN103428219B CN103428219B (zh) | 2016-05-18 |
Family
ID=49652395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310374770.8A Active CN103428219B (zh) | 2013-08-25 | 2013-08-25 | 一种基于网页模板匹配的web漏洞扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103428219B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699845A (zh) * | 2013-12-25 | 2014-04-02 | 北京神州绿盟信息安全科技股份有限公司 | 显示扫描进度的方法及装置 |
CN104363236A (zh) * | 2014-11-21 | 2015-02-18 | 西安邮电大学 | 一种自动化漏洞验证的方法 |
CN105279435A (zh) * | 2014-06-11 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 网页漏洞检测方法和装置 |
CN106411855A (zh) * | 2016-09-06 | 2017-02-15 | 北京邮电大学 | 一种脆弱性目录查找方法及装置 |
CN107958156A (zh) * | 2017-11-22 | 2018-04-24 | 国云科技股份有限公司 | 一种基于模板获取漏洞信息的方法 |
CN110147506A (zh) * | 2019-03-28 | 2019-08-20 | 西安交大捷普网络科技有限公司 | Url的去重方法与装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234415A1 (en) * | 2006-04-03 | 2007-10-04 | Thiago Zaninotti | Component-oriented system and method for web application security analysis |
CN101471818A (zh) * | 2007-12-24 | 2009-07-01 | 北京启明星辰信息技术股份有限公司 | 一种恶意注入脚本网页检测方法和系统 |
CN103077348A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | 一种Web站点漏洞扫描方法和装置 |
-
2013
- 2013-08-25 CN CN201310374770.8A patent/CN103428219B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234415A1 (en) * | 2006-04-03 | 2007-10-04 | Thiago Zaninotti | Component-oriented system and method for web application security analysis |
CN101471818A (zh) * | 2007-12-24 | 2009-07-01 | 北京启明星辰信息技术股份有限公司 | 一种恶意注入脚本网页检测方法和系统 |
CN103077348A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | 一种Web站点漏洞扫描方法和装置 |
Non-Patent Citations (2)
Title |
---|
WANG X,ET AL: "《hidden web crawling for sql injection detection》", 《BROADBAND NETWORK AND MULTIMEDIA TECHNOLOGY(IC-BNMT)》 * |
张晨 等: "《基于网页DOM树比对的SQL注入漏洞检测》", 《计算机工程》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699845A (zh) * | 2013-12-25 | 2014-04-02 | 北京神州绿盟信息安全科技股份有限公司 | 显示扫描进度的方法及装置 |
CN103699845B (zh) * | 2013-12-25 | 2017-05-17 | 北京神州绿盟信息安全科技股份有限公司 | 显示扫描进度的方法及装置 |
CN105279435A (zh) * | 2014-06-11 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 网页漏洞检测方法和装置 |
CN105279435B (zh) * | 2014-06-11 | 2018-11-09 | 腾讯科技(深圳)有限公司 | 网页漏洞检测方法和装置 |
CN104363236A (zh) * | 2014-11-21 | 2015-02-18 | 西安邮电大学 | 一种自动化漏洞验证的方法 |
CN106411855A (zh) * | 2016-09-06 | 2017-02-15 | 北京邮电大学 | 一种脆弱性目录查找方法及装置 |
CN106411855B (zh) * | 2016-09-06 | 2019-03-05 | 北京邮电大学 | 一种脆弱性目录查找方法及装置 |
CN107958156A (zh) * | 2017-11-22 | 2018-04-24 | 国云科技股份有限公司 | 一种基于模板获取漏洞信息的方法 |
CN110147506A (zh) * | 2019-03-28 | 2019-08-20 | 西安交大捷普网络科技有限公司 | Url的去重方法与装置 |
CN110147506B (zh) * | 2019-03-28 | 2022-09-23 | 西安交大捷普网络科技有限公司 | Url的去重方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103428219B (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103428219B (zh) | 一种基于网页模板匹配的web漏洞扫描方法 | |
CN103559235B (zh) | 一种在线社交网络恶意网页检测识别方法 | |
US8225402B1 (en) | Anomaly-based detection of SQL injection attacks | |
CN102622435B (zh) | 一种检测黑链的方法和装置 | |
CN101883024B (zh) | 一种跨站点伪造请求的动态检测方法 | |
CN102404281B (zh) | 一种网站扫描设备和方法 | |
CN103279710B (zh) | Internet信息系统恶意代码的检测方法和系统 | |
CN103780614B (zh) | 一种基于模拟攻击扩展的sql注入漏洞挖掘方法 | |
CN105760379B (zh) | 一种基于域内页面关联关系检测webshell页面的方法及装置 | |
CN106326742A (zh) | 确定修改的网页的系统和方法 | |
CN103843003A (zh) | 句法指纹识别 | |
CN103428196A (zh) | 一种基于url白名单的web应用入侵检测方法和装置 | |
US20120304287A1 (en) | Automatic detection of search results poisoning attacks | |
CN103065095A (zh) | 一种基于指纹识别技术的web漏洞扫描方法和漏洞扫描器 | |
CN107437026B (zh) | 一种基于广告网络拓扑的恶意网页广告检测方法 | |
CN102663000A (zh) | 恶意网址数据库的建立方法、恶意网址的识别方法和装置 | |
CN101895516A (zh) | 一种跨站脚本攻击源的定位方法及装置 | |
CN105046150A (zh) | 防止sql注入的方法及系统 | |
Kar et al. | SQLiDDS: SQL injection detection using query transformation and document similarity | |
CN103647678A (zh) | 一种网站漏洞在线验证方法及装置 | |
CN103473501A (zh) | 一种基于云安全的恶意软件追踪方法 | |
CN105024987A (zh) | 一种web业务日志的监测方法和装置 | |
CN103220277B (zh) | 监控跨站脚本攻击的方法、装置及系统 | |
CN104504100A (zh) | 一种确定pc网页与移动网页自适应关系的系统及方法 | |
CN103440454A (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 |