2024年6月3日发(作者:)

2014年第23卷第4期 http://www.C—S—a.org.cn 计算机系统应用 

网站漏洞扫描软件① 

冀振燕,李春元,莫建杨 

(北京交通人学软件学院,北京100044) 

摘要:论文首先分析了网站安全面临的严峻形势,指出设计网站漏洞扫描工具的必要性.论文对系统所采用的 

网络爬虫技术、网站结构树的构建方法、以及SQL注入、XXS攻击、整数溢出、URL重定向、格式化字符串等 

常见漏洞类型的检测方法进行了分析与研究,为系统的成功实现提供了保证.论文还描述了系统的架构和子模 

块的设计.最后的测试结果表明该系统能够快速全面的检测常见类型漏洞,目前软件已交付使用. 

关键词:网站漏洞扫描;Web应用安全;攻击检测 

Web Vulnerability Scanning Software 

JI Zhen—Yan,LI Chun-Yuan,MO Jian-Yang 

(School of Software Engineering,Beijing Jiaotong University,Beijing 100044,China) 

Abstract:The paper introduces the current severe situation of the Web security,and brings up the necessity to design 

Web vulnerabiliy tscanning software.Then it analyzes Web crawler,construction of website structure tree,and detection 

methods of SQL injection,XSS,integer overflow and URL redirection,which provides a guarantee for developing the 

system successfully.The paper also describes the software architecture and the design of modules.The final testing 

results prove that the sofware its able to detect the common types of ulvnerabilities rapidly and comprehensively.The 

software has been published. 

Key words:web vulnerabiliy tscanning;web security;attack detection 

据全球著名IT研究与顾问咨询公司Gartner的最 

新调查表明,目前3/4以上的攻击行为都针对Web应 

别构造具有特定漏洞攻击特征的HTTP请求(分别对每 

个节点都进行常见漏洞类型检测),向服务器发送构造 

的HTTP请求,根据此种漏洞的响应特征确定服务器 用层面而非网络层面,而2/3的Web站点都十分脆弱, 

容易受到各种各样的攻击【1 J【 .传统网络安全设备防 

火墙、IDP/IPS等只能从网络层面上对Web应用系统 

进行保护,但不能解决由于Web应用系统本身存在漏 

洞而引起的安全问题.本文针对Web应用自身存在的 

漏洞问题提出一个完整的系统设计方案. 

是否存在此种漏洞;最后,当检测完毕后再根据漏洞 

对网站的危害程度将漏洞分类统计输出,最终在客户 

端生成一份详细的漏洞检测报告. 

2系统关键技术 

网站漏洞扫描系统的成败由建立高效的网站结构 

树、网络爬虫的搜索策略、攻击检测技术决定的.下 

面逐一介绍系统中关键技术的设计. 

2.1网站结构树的构建 

1系统工作原理 

网站漏洞扫描系统工作原理[ :首先,客户端判 

断需要检测URL的有效性,确定是否要进行下一步检 

测;接着爬虫该网站,对目标网站建立网站结构节点 

树,在爬虫网站的同时,对网站结构树的各个节点分 

①基金项目:北京交通大学中央高校基本科研业务费项目fKRJB12002536) 

收稿时间:2013—09—04;收到修改稿时间:2013.09.23 

网络爬虫抓取网页时须遵循一定的分析过滤策 

略,如果不将提取的URL分析过滤,直接添加到爬虫 

Soflw ̄eTechnique・Algorithm软件技术・算法159 

计算机系统应用 http:llwww.c—s-a.O唱.ca 2014年第23卷第4期 

队列或者数据库,这样就会出现“爬虫陷阱”.构建网 系统的过程中对用户提交数据的合法性没有进行适当 

的验证,导致SQL注入漏洞的产生,SQL注入根据注 

入点的不同可以分为数字型SQL注入和字符型SQL 

注入. 

站结构树,实现站内重复节点的过滤,首先,建立以 

主机为根节点的树形结构,将提取的有效URL根据路 

径进行拆分,根据URL路径不同分别建立分支节点; 

然后将提取有效URL与网站结构树的各节点对比,如 

果网站结构树中已经含有此节点,则不将其添加到网 

站结构树,如果没有此节点,则将添加到网站结构树. 

通过网站结构树可以过滤网站中重复节点,提高了网 

1)数字型SQL注入漏洞检测方法 

数字型SQL注入检测原理:利用经过特殊构造的 

字符串验证Web应用是否充分过滤了用户提交的表单 

或者参数,如果过滤不够充分,则可以判定存在SQL 

络爬虫的效率. 

2.2网络爬虫技术 

聚焦爬虫需要根据一定的网页分析算法过滤与主 

题无关的链接,保留有用的链接,并将其添加到等待 

抓取的URL队列,再根据一定的搜索策略从队列中选 

择下一步要抓取的网页URL,并重复上述过程,直到 

满足某一条件才停止.聚焦爬虫需要遵循一定的搜索 

策略,目前主流的网页抓取策略主要有三种,即:广 

度优先搜索策略、深度优先搜索策略、最佳优先搜索 

策略【41 .

广度优先策略有利于多个爬虫并行抓取网页,在 

爬取站内链接时,如果遇到站外链接就停止爬虫,抓 

取网页的封闭性很强.深度优先策略的优点是能遍历 

个Web站点或深层嵌套的文档集合,缺点是当Web 

结构很深时,就可能无限的爬虫此条链接.最佳优先 

搜索策略的特点是可以大幅度减少抓取与主题无关的 

网页数量,提高搜索效率,但是其算法实现较为复杂. 

本扫描软件针对特定目标网站上所有的网页及其目录 

进行爬虫,爬虫网站规模较小,不对与主题无关的网 

页进行爬虫抓取,结合上述实际情况,选用深度优先 

搜索策略实现网站爬虫. 

2.3攻击检测方法 

攻击者能够利用Web应用程序存在的漏洞入侵 

Web应用系统,对系统数据进行非法篡改:利用漏洞 

破坏Web应用系统或者网站的正常运行,导致用户无 

法正常使用Web服务:利用漏洞窃取受保护的信息以 

达到非法目的.Web应用常见漏洞中会能给用户或者 

企业造成严重损失的有:SQL注入、XXS攻击、整数 

溢出、URL重定向和格式化字符串等. 

(1)SQL注入 

SQL注入就是通过把伪造的非法SQL命令插入到 

Web表单提交或者页面请求中,最终达到欺骗服务器 

执行恶意SQL命令的行为.Web系统开发人员在开发 

1 60软件技术・算法Software Technique・Algorithm 

注入漏洞.即分别构造以下三个URL提交到服务器, 

根据响应特征判断是否存在数字型SQL注入漏洞. 

http:llwww.XXX.com/xxx/show.asp?id=100 

http://www.XXX.corn/xxx/show.asp?id=100—1 

http://www.xxx.com/xxx/show.asp?id=100—0 

判断方法:如果B的响应正常且和A的响应不相 

同,表明存在数字型SQL注入漏洞;如果C的响应和 

A的响应相同,但是B的响应错误,则说明存在数字 

型SOL注入漏洞. 

2)字符型SQL注入漏洞检测方法 

字符型SQL注入漏洞检测方法同数字型SQL注 

入检测原理基本相同,即分别提交以下三个特殊构造 

的URL,并比较其响应. 

http:llwww.XXX.com/xxx/show.asp?type=abe 

http://www.XXX.corn/xxx/show.asp?type=abc‘%2B’ 

http://www.xxx.com/xxx/show.asp?type=abe‘%2B’def 

如果B的响应和A的响应相同且c和B响应不 

同,表明存在字符型SQL注入漏洞.如果c响应错误 

或者提示不存在此请求页面,表明存在字符型SQL注 

入漏洞. 

(2)XSS攻击检测 

xss即跨站脚本攻击,是一种常见的Web应用漏 

洞,它允许恶意攻击者在Web页面中插入恶意的 

HTML代码,当用户浏览该网页之时,嵌入的恶意代 

码会被执行,从而达到非法目的[51.随着动态网页技 

术的发展 客户端或者服务器需要用某些脚本执行用 

户提交表单验证或者提供动态元素,这给XSS攻击提 

供了可能,黑客可以利用XSS攻击盗取各类用户账号 

和密码,篡改或者窃取企业数据或者控制受害者机器 

向其它网站发起攻击等. 

XSS漏洞检测方法:在正常URL中添加可以检测 

XSS漏洞的特殊脚本字符串。然后将请求发送到服务 

器,如果响应中存在此脚本字符串,则表明此站点存 

2014年第23卷第4期 http://www.c—S—a.org.cn 计算机系统应用 

在XSS漏洞.通常检测的方法如下: 

测试URL: 

http:llwww.XXX.corn/xxx.jsp?fitle--news 

测试脚本:<script>alert(‘XSS’)</script> 

请求URL: 

http:llwww.XXX.com/xxx.jsp?fitle=news<script>alert(‘XS 

S’)</script> 

为了考虑测试的准确性和高效性,采取一些脚本 

个整数是用来计算缓冲区的大小或者计算数组索引排 

列距离,那么程序可以直接读写或者修改内存,使得 

程序崩溃或者保密数据被窃取. 

整数溢出是由于未对提交参数进行充分的边界检 

测,或者对整数进行错误的操作引起的,检测程序是 

否严格检测或者过滤提交参数就可以判断程序是否存 

在整数溢出漏洞.整数溢出漏洞检测方法:将一个正 

常的整数参数.12345构造的请求发送到服务器,然后 

混淆技术,例如改变大小写字母,对不可见字符的添 

加等,将其测试脚本稍加改进[11].其测试脚本如下: 

<script>alert(¥{random})</script> 

”%s一>\”>’>’\tI<WEBSCAN 

¥{random}v¥{random}>” 

>”><ScRiPt%20%0a%0d>alert(¥{random}1%3B< 

{ScRiPt> 

>’><ScRiPt%20 0a%0d>alert(¥frandom})%3B< 

|ScRiPt> 

其中随机数由系统随机生成后存储在数据分析与 

管理系统,以便后续的结果分析和漏洞确定. 

(3)URL重定向 

URL重定向即网址重定向,是指把对一个域名、 

目录或者文件的访问者请求转发至另一个域名、目录 

或者其它服务器空间,当用户发送相应的访问请求时 

将自动跳转到指定的位置[ .URL重定向可以有效的 

实现新旧域名或者目录的无缝对接,因此无论是对普 

通用户还是对搜索引擎都是非常有利的,但是攻击者 

利用这个漏洞可以诱使用户访问某个非法页面,记录 

用户密码并发送到指定地址,或者让用户下载病毒等. 

检测URL重定向的基本原理:在URL中添加如 

下特殊字符串,然后检测其响应. 

http://topsec-webcan.invalid/;? 

//topsec—webscan.invalid/;? 

topsec・webscan://invalid/;? 

检测响应HTTP标头中标签Location,Refresh的值 

(Location表示重定向,Re舶sh表示刷新),如果字符串中 

包 含http:#topsec-webscan.invali/d 或 者 

//topsec.webscan.invalid/llf,I]说明其存在URL重定向漏洞. 

(4)整数溢出漏洞 

计算机中一个整数所能表示的最大值是固定的, 

当程序试图保存或者引用比最大值还大的数值时,就 

会发生整数溢出【 .整数溢出漏洞不易察觉,如果这 

将其响应分别与以2^31.1、一2"31作为参数的响应进行 

比较,如果响应不相同,说明此网页存在整数溢出漏 

洞.同理,将12345作为参数分别与2^31.1、2/'31、 

2^32—1、2^32的响应进行比较,能够判断程序是否存 

在整数溢出漏洞. 

(5)格式化字符串漏洞 

般情况下,调用格式化函数必须保证格式字符 

串与其他参数完全匹配,但是C语言本身并没有一种 

检查机制去检查参数类型和参数个数的匹配性,此为 

格式化字符漏洞攻击提供了可能.格式化字符串攻击 

利用了堆栈生长方向和数据存储方向相反的特点,用 

后来存储的数据覆盖先前入栈的数据,改变程序的执 

行流程,函数在返回时就跳转到攻击者指定的地址, 

继而执行攻击者指定的操作. 

格式化系列输出函数的缺点:参数个数不固定 

造成的越界访问、提交字符串时添加任意函数的返 

回地址的地址、通过附加格式来控制向函数返回地 

址写值.格式化系列输出函数的缺点说明:不检查 

参数的类型或者个数匹配性是产生格式化字符串漏 

洞的根本原因 】.本文检测格式化字符串漏洞的方 

法如下: 

1)分别向服务器发送正常格化字符串 

“topsec%dn%dn%n”和特殊构造的字符串 

‘‘topsec0/oul10/0u110/oul10/uu0/0ulJ0/0Ⅲ10/ou上i0/oul10/0ul10/)0dn’’ 请 

求,然后检测其响应是否相同,如果其响应不同则说 

明其存在格式化字符串漏洞:如果响应相同则说明其 

不存在格式化字符串漏洞. 

2)分别向服务器发送由格化字符串 

topsec0/0u110/0 10/oulJ0/ou0/0ul10/0mJ0/0Lu-0 nd 和 

topsec0,uliu0,ul-u0,ullu0,ulJu0/ul1u0,Ul1u0,ul1u0/)0nd构造的请求, 

然后检测其响应是否相同,如果响应不同则说明其存 

在格式化字符串漏洞;如果响应相同则说明其不存在 

格式化字符串漏洞. 

Software Technique・Algorithm软件技术・算法161 

计算机系统应用 http://www.c—S—a.org.cn 2014年第23卷第4期 

3系统设计与实现 

Web应用漏洞扫描工具系统架构设计如图1所示, 

其主要由六个模块组成:界面模块、HTTP及URL分 

析处理模块、网络爬虫兼攻击模块、数据管理与分析 

模块、检测报告生成模块,其中HTTP及URL分析处 

理模块、网络爬虫兼攻击模块以及数据管理与分析模 

块三个模块之间相互调用,共同完成漏洞的检测功能. 

关键步骤是网页解析提取含有链接URL的标签 将 

链接分析过滤和标准格式化后作为网络节点添加到 

网站结构树,网页解析需要分析网页中可能含有链 

接的所有标签,解析标签的完整性直接影响网站爬 

虫的完整性. 

(4)攻击测试模块.网站的节点类型包括目录节 

点和文件节点,目录节点的攻击测试检测目录下的隐 

n 

j』 

数据管理与分析模块 

检 4数据 

f 输出报告 

检测报告生成模块f===== 检测报 

图1 Web应用漏洞扫描工具系统架构 

(1)界面模块.利用HTML技术实现应用程序界 

面,通过CGI接口实现应用程序和界面的信息交流, 

界面模块可以通过参数配置控制扫描工具的扫描性 

能,命令行解析使得程序能够识别界面模块的调用命 

令,用户通过当前扫描信息能够快速判断网站扫描进 

度以及已经扫描出的漏洞个数. 

f2)HTTP会话及URL分析处理模块.程序解析界 

面模块的命令行获取初始URL,判断URL的有效性, 

只有有效的URL才能得到服务器的响应,并将非标准 

格式的URL拆分转化为标准格式的请求数据.在利用 

攻击测试模块构造请求数据后,建立HTTP会话,将 

待连接请求队列中的数据发送到服务器,监听会话的 

状态,对会话连接进行相应的读写处理,待响应返回 

之后,分析响应的有效性. 

(3)网络爬虫模块.通过深度优先搜索策略爬虫 

整个网站的目录结构,获取所有文件的URL、文件类 

型等信息,并根据这些信息确定是否要对网站节点 

攻击测试,通过与网站结构树对比过滤站内重复链 

接或者站外链接,实现完整的网络爬虫.网站爬虫的 

1 62软件技术・算法Software Technique・Algorithm 

藏文件,用常用文件名替换目录下的文件名,当确定 

目录下存在某个文件时,调用文件攻击检测接口对此 

文件实施文件攻击检测,可以检测到无法通过爬虫发 

现的隐藏文件,保证网站漏洞扫描的覆盖率;文件攻 

击检测是攻击检测的核心任务,程序开发人员在开发 

程序时,可能会对同一个目录下的具有相似功能的文 

件采用相同的文件名,但文件后缀各不相同,因此在 

对文件进行攻击检测时,用关键词列表的后缀关键词 

替换文件后缀检测隐藏文件,如果发现隐藏文件再对 

其进行攻击检测.攻击检测利用常见漏洞的特征,将 

构造特殊字符串请求发送到服务器,根据服务器返回 

的响应特征判断是否具有漏洞. 

(5)数据管理与分析模块.构建网站节点结构树, 

利用树型结构容易实现数据节点的添加、删除、查找 

等特点,将爬虫或者构造的所有节点添加到树型结构, 

以便对网站节点的重复性检测和检测报告的输出.此 

外,程序必须利用关键词检测隐藏文件,关键词保存 

在文件中,程序加载关键词后,要从返回的响应中提 

取关键词,将新关键词添加到关键词列表,通过不断 

提取新的关键词,提高程序扫描的精确度. 

(6 报告生成模块.检测结果以树型结构保存在 

内存中,为了方便查看检测结果,将检测报告和统计 

信息以脚本的形式输出保存,将检测数据以二进制形 

式保存,利用html技术和脚本技术实现报告的动态读 

取,用户直接用浏览器就可以查看扫描结果. 

4测试结果 

漏洞检测软件检测架设在IIS服务器的网站,以 

便验证系统总体架构设计的有效性.检测漏洞类型 

和数目如表1所示,用37分钟完成网站 

httD://192.168.94.187的检测,检测到网站存在整数 

溢出漏洞6个、SQL注入漏洞2个、XSS攻击漏洞 

1个、字符集丢失漏洞2个,总共检测到该网站漏洞 

数1 1个.网站漏洞软件不但能够检测到SQL注入、 

2014年第23卷第4期 http://www.c-S—a.org.on 计算机系统应用 

+表1 网站漏洞检测结果统计 

参考文献 

1范渊.Web应用风险扫描的研究与应用.技术应用,2010, 

21(1 1):23—24. 

2陆凯.Web应用程序安全漏洞挖掘的研究[硕士学位论文]. 

成都:电子科技大学,2010. 

3丁妮.Web应用安全研究[硕士学位论文】.南京:南京信息工 

程大学,2007. 

4 Liu WT.Design and implement of common network security 

XXS攻击、整数溢出、URL重定向和格式化字符串 

scanning system.2009 International Symposium on 

Intelligent Ubiquitous Computing and Ducation.2009. 

148-151. 

漏洞,而且运行速度高且性能稳定,其性能和功能 

都满足需求. 

5吴耀斌,王科.基于跨站脚本的网络漏洞攻击与防范计算机 

5结语 

论文分析设计了系统所用的关键技术,描述了系 

系统应用,2008,(1):11-13. 

6张实睿,许蕾,徐宝文等.一种防止缓冲区溢出的整数溢出检 

测方法.东南大学学报,2009,25(2):219—223. 

7 Zhang SM,Xu L,Xu BW.Method of integer overflow 

detection to avoid buffer overflow.Joumal of Southeast 

统的设计与实现,最后还对所实现漏洞检测软件进行 

集成测试,测试结果表明漏洞检测软件可以快速高效 

地检测出Web应用中存在的常见类型漏洞,基本满足 

用户需要,目前已投入使用.为了应对新型漏洞和攻 

击方式的不断出现,提高软件的扩展性,未来需要考 

University(English Edition).2009,(9):1 9-20. 

8李鹏,王汝传,王绍棣等.格式化字符串攻击检测与防范研究. 

南京邮电大学学报,2007,27(5):84—89. 

虑采用插件技术来实现对漏洞的检测. 

(上接第148页) 

3黄超,齐英剑.SIFT算法研究与应用.中国传媒大学学报自 

然科学版,2012(1):68—72. 

4 Weickert J,Romeny BMTH,Viergever MA.Eficifent and 

reliable schemes for non—linear diffusion filtering.IEEE 

9 Brown M,Lowe D.Invariant features from interest point 

groups.British Machine Vision Conf.Cardiif,UK.2002. 

10 Bay H,Ess A,Tuytelaars Gool LV.SURF:Speeded up 

robust features.Computer Vision and Image Understanding, 

2008,1 10:346—359. 

1 1 Alcantarilla PF,Bergasa LM,Davison AJ.Gauge-SURF 

Trans.on Image Processing,1998,7(3):398-410. 

5 Perona P.Malik J.Scale-space and detection using anisotropic 

difusifon.IEEE Trans.Paaem Ana1.Machine Intel1.1 990, 

12:1651-1686. 

6 Weickert J.Eficifent image segmentation using partial 

diferential equations and morphology.Pattern Recognition, 

Descriptors.Image and Vision Computing,2013,31(1): 

103-1 16. 

12 Agrawal M,Konolige K,Bias MR.Censure:Center 

surround extremas for realtime feature detection and 

matching.Computer Vision—ECCV 2008.2008,5305: 

102-115. 

2001,34(9):1813—1824. 

7阮宗才,许冠明.基于AOS的线性种子扩散图像分割方法 

研究.微电子学与计算机,2006,23(12). 

8 Lindeberg Feature detection with automatic scale selection. 

13马莉.MATALB语言实用教程.北京:清华大学出版社, 

20】O:】41—176 

Intenatrional Journal of Computer Vision,1 998,30(2): 

77-116 

Software Technique・Algorithm软件技术・算法163