admin 管理员组文章数量: 1086019
2024年4月13日发(作者:json免费解析)
第
27
卷第
1
期
Vol.27No.1
北京电子科技学院学报
JournalofBeijingElectronicScienceandTechnologyInstitute
2019
年
3
月
Mar.2019
*
XSS
基于爬虫的漏洞检测工具设计与实现
韩妍妍
1,2
何彦茹
1
刘培鹤
1
任慧
1
张锦圣
2
1.
北京电子科技学院
,
北京市
2.
西安电子科技大学
,
西安市
100070;
710071
摘要
:
当前
Web
技术发展迅速
,
与其相关的安全问题也层出不穷
。
其中
XSS
攻击方式因具有
隐蔽性而带来极大的隐私安全隐患
。
而目前国内对于
XSS
漏洞检测的研究较少
,
仍存在如
XSS
漏洞自动化检测准确率低等问题
。
因此
,
本文提出了一种基于爬虫的检测方案
。
通过模拟用户
行为挖掘
web
隐藏页面
,
分析页面结构
,
更加充分地提取页面注入点
。
针对存储型
XSS
漏洞在检
测过程中
,
输出数据不一定在响应页面的情况
,
提出了一种探子向量测试方法
,
对页面的注入点
基于对现有的
XSS
攻击方式与变异方法的总结
,
设计并实现了一个与输出点进行对应
。
同时
,
XSS
漏洞检测工具
,finder。
最终实验证明
,
即
XSS-
该检测工具的准确率可达
82%,
与同类工具相
比更高
。
关键词
:
爬虫
;XSS
漏洞
;
探子向量
;
隐藏页面
中图分类号
:TP393.08
文献标识码
:A
文章编号
:1672
-
464X(2019)1
-
07
-
10
的页面源代码进行分析
,
但该方法仍存在一些问
题
,
一是网站的页面源代码不易获取
,
二是误报
率过高
;
第二类是动态测试
[4]
引言
随着
Web
技术的高速发展和互联网的普
Web
安全领域受到的威胁越来越多
。
跨站及
,
siteScripting)
是一种危害脚本攻击
XSS(Cross-
存在范围较广的漏洞
。XSS
实质是性较大
,
HTML
代码与
JavaScript
代码的注入
。
但
XSS
的
攻击对象是与客户对等的
Browser
端
,
因此常不
被开发者所重视
十大漏洞前三
[2]
[1]
,
其原理是模拟用
根据网站反馈结果判断页户对网站的提交请求
,
面是否存在漏洞
。
而近年来发生的
Web
攻击大
因此若能多都是攻击者直接从
Web
页面发起
,
做到把测试工具当作真正的用户
,
则可以实现有
效的漏洞检测
。
目前现有的一些动态测试工具
,
大多是采用
提取页面注入爬虫技术去获取网站的页面链接
,
点
[5]
。
根据
OWASP
发布的最新
Web
应用安全漏洞统计
,XSS
已经连续数年位列
。
目前已经有许多
XSS
漏洞检
[3]
,
然后与攻击向量构造测试请求
,
发送至目
测工具
,
大致可以分为以下两类
:
第一类是静态测试
*
标服务器
,
再分析服务器的响应
,
以此来判断是
否存在漏洞
。
而全面准确得提取页面注入点
,
构
,
主要针对
Web
网站
基金项目
:
中央高校基本科研业务费
No.328201801
**作者简介
:
韩妍妍
(1982—),
女
,
助理研究员
,
博士
,
研究方向为网络与信息安全
、
可视密码
、
密码学
;
何彦茹
(1995—),
女
,
硕
士
,
研究方向为网络安全
、
物联网安全
;
刘培鹤
(1972—),
男
,
实验师
,
学士
,
研究方向为网络与信息安全
;
任慧
(1994—),
女
,
硕士
,
研究方向为
SDN
安全
;
张锦圣
(1994—),
男
,
硕士
,
研究方向为网络安全
、
数据挖掘
;
·8·
北京电子科技学院学报
2019
年
造有效的攻击向量和高效准确的分析服务器响
应
,
则是研究的重点和难点
。
文章
[6]
对
XSS
漏
洞原理的分类做了详细介绍
,
并设计实现了工具
XSS-Scan
用来检测漏洞
,
但其并没有深入挖掘
Web
隐藏页面
,
只是对爬虫获取的表层
Web
页
面进行了分析
。
文章
[7]
中使用
Headless
浏览
器模拟浏览器爬虫
,
使用
Ghost.py
解析
JavaScript
和
Ajax
页面
,
虽然可以深入获取隐藏
注入点
,
但在检测时并没有考虑到存储型漏洞页
面输出点不一定在本页面的情况
。
文章
[8]、
9]
等对
XSS
攻击向量的变换规则与攻击方式
进行了深入研究
,
生成了更加有效的攻击向量
。
本文分析了大量已有的研究成果
,
发现构造特殊
探子向量的二次检测方案可以更加全面的挖掘
页面漏洞
。
因其针对存储型
XSS
漏洞注入点输
出位置不一定在响应页面的情况
,
对可能存在存
储型漏洞的页面进行二次测试
,
并且在探子测试
的时候可以根据检测到的探子在页面中的位置
,
从不同数据表中选取攻击向量进行测试
,
从而极
大地减少测试请求次数
,
提高检测效率
。
因此
,
本文基于一种构造特殊探子向量的二
次检测方案
,
设计并实现了一个
XSS
漏洞检测
工具
XSS-finder。
该工具添加了
cookie
输入框
,
以便登录网站
,
获取登录信息
,
从而完成更加充
分地检测
。
实验证明该工具有较好的检测
XSS
漏洞的性能
,
同时提高了检测的准确率
。
1
基础知识
1.1
爬虫概述及其核心技术
1.1.1
爬虫概述
网络爬虫本质上是一种应用程序
,
它遵循既
定的规则
,
实质是扮演了一个浏览器的角色
,
向
目标服务器发送请求
,
解析返回的响应
,
实现自
动高效地获取所需信息
。
主要可分为通用网络
爬虫
、
聚焦网络爬虫
、
增量式网络爬虫
、
深层次网
络爬虫
,
或以上几类的组合体
。
爬虫的原理是从
一个网页开始
,
解析网页
,
然后通过深度优先策
略或者广度优先策略等去寻找这个网页中其它
的
URL
地址
,
继续进行爬虫
,
直到抓取到整个网
站的所有链接
,
或者达到预先设定的条件
为止
[10]
。
1.1.2
爬虫核心技术
爬虫使用的是基于
python
语言的
urllib2
库
,
获取网页内容的核心代码如下
:
tmp
=
urllib2.Request(url,headers
=
myheaders)
text
=
urllib2.urlopen(tmp).read()
其中可以在
myheaders
里添加
user-agent、re-
ferer、cookie
等信息
,
并将爬虫程序模拟为正常
用户的操作
。
一方面可以实现登录功能
,
另一个
方面可以避免反爬
。
在获取页面的待链接时
,
直
接使用正则表达式
,
对后缀为
jpg、png、gif、css、
ico、js、doc、txt、pdf、swf
等资源文件的
url
进行过
滤
,
无需检测
。
传统网页去重的方式基本有
4
种
,
第一种
,
URL
直接放到
hashset
中
。
第二种
,URL
经过
MD5
或者
SHA
-
1
等单向哈希算法生成摘要
,
放到
hashset
中
。
第三种
,bit-map
方法
,
建立一
个
bitset
将一个
URL
具体映射到某一位
,
这样
消耗内存最少
,
但
hash
冲突概率高
。
第四种
,
布隆过滤
,bloomfilter
是在
bit-map
的基础上建
立的
,
多个
hash
函数处理
,
但有一定的误
判率
。
然而
,
由于
URL
去重并不要求百分百的准
确率
,
且布隆过滤占用的内存很小
,
效率较高
,
所
以本文采用布隆过滤去重
。
布隆过滤器的原理
是事先设定一串连续且均为
0
的位数组
,
当输入
一个
URL
后
,
经过几个
hash
函数的同时处理
。
图
1
为布隆过滤器的原理图
,
其使用了
4
个
hash
函数
,
每个
hash
函数计算出一个数值
,
每个数值
表示数组中的位置索引
。
每次计算之后
,
若发现
位数组中对应的位置是
0,
就改写为
1;
如果是
1,
就保持不变
。
因此
,
若
URL
经过所有的
hash
函数计算之后
,
对应的位数组数字均是
1,
则表
明此
URL
已经爬取过
。
[
第
27
卷基于爬虫的
XSS
漏洞检测工具设计与实现
·9·
图
1
布隆过滤器的原理图
1.2XSS
漏洞概述
XSS(Cross-SiteScripting)
攻击发生在应用
层
,
一般将恶意脚本注入到浏览器的解析过程
中
,
并利用
XSS
漏洞旁路调用访问控制
,
而且基
本可以用任意客户端语言实现
[6]
。XSS
漏洞的
根本原因是
HTML
语言支持脚本语言
(
如
JavaS-
cript
[11]
)
嵌入页面中的机制
[12]
。
一个
Web
应用
如果存在
XSS
漏洞
,
那么攻击者最关注的是用
户登录信息
、
个人信息
、
使用权限等
。
具体来讲
,
非法攻击者可以窃取用户账户
,
盗取用户资料
,
操纵企业数据
,
包括上传
、
下载
、
篡改
、
甚至删除
敏感的企业数据
,
非法发送电子邮件
,
非法转账
,
劫持用户的
Web
行为
,
制造
XSS
蠕虫
、
木马等
。
一般而言
,
一个典型
XSS
漏洞的攻击过程
如下
:
①攻击者寻找注入点
,
包括
URL
地址栏
、
登
录框
、
评论栏等可以输入信息的地方
。
②攻击者写入精心构造的恶意代码至注入
点
,
当然也可以直接写入一个
JavaScript
外部引
用的文件里
。
③用户点击已经注入了恶意脚本后的不安
全页面
。
④用户触发恶意脚本
,
从而引发
XSS
漏洞
。
可以看到
,XSS
攻击发生的如此随意
,
一旦
一个页面被恶意攻击者注入恶意脚本
,
那么理论
上任何访问这个页面的用户都会遭到攻击
,
所以
XSS
的危害更大
,
更易于攻击
,
传播更迅速
。
XSS
漏洞按攻击形式可以分为反射型
XSS
和存储型
XSS;
按攻击介质可以分为
JSXSS
和
FlashXSS;
按攻击接口可以分为
DOMbaseXSS
和非
DOMXSS。
目前
,
比较常见的漏洞主要还
是反射型
、
存储型和
DOM
型
3
种
。
1.3Selenium
技术
Selenium
技术是本文检测模块使用的关键
技术
。Selenium
支持包括
Java,Python,C
在内的
多种语言
,
是一套完整的
Web
应用程序测试系
统
,
包含测试的录制
、
编写
、
运行和并行处理
,
核
心是基于
JsUnit
驱动
,
完全是用
JavaScript
编写
,
可以运行于任何支持
JavaScript
的浏览器
。
Selenium
支持通过页面的
id
属性
、name
属
性
、Xpath
路径
、
标签名
,
甚至标签的类属性去定
位元素
,
功能强大
。
如使用
firefox
内核
,
获取页
面所有
form
表单代码如下
:
fromseleniumimportwebdriver
driver
=
webdriver.Firefox()
driver.get(“http://www.baidu.com”)
forms
=
driver.find_elements_by_tag_name(‘form’)
Selenium
操作页面元素的能力也很强大
,
如
点击元素
click()、
模拟键盘输入
send_keys
(key)、
提交表单
submit()
等
。
例如
,
要填写并
提交一个
name
值为
“my_login”
的登录表单
,
则
代码如下
:
login
=
driver.find_element_by_name(“my_login”)
name
=
driver.find_element_by_name(“username”)
name.send_keys(u“admin”)
passwd
=
driver.find_element_by_name(“password”)
passwd.send_keys(“123456”)
passwd.send_keys(Keys.RETURN)
2
关键模块设计与实现
2.1
爬虫模块
爬虫模块采用多线程并行爬虫
,
目的在于快
速获取网站待检测链接
,
再交给检测模块逐个进
行检测
,
为爬虫设置深度阈值目的是避免爬虫程
序的无休止运行
,
同域名检测是为了避免对目标
网站之外的站点进行无用检测
,
设置布隆过滤是
·10·
北京电子科技学院学报
2019
年
为了判断链接是否爬取过
,
避免重复爬虫
。
爬虫
模块的流程图如图
2
所示
:
图
2
爬虫流程图
2.2
检测模块
本工具的设计重点主要在检测模块
,
如图
3
所示
。
从爬虫模块传递给检测模块第一个
url
时检测模块开始运行
。
检测模块使用
selenium
技术去深层次挖掘页面的注入点
,
通过
selenium
技术模拟用户操作浏览器
,
获取操作的结果
。
图
3
检测模块流程图
本模块在挖掘页面注入点时
,
对页面所有可
能导致页面状态发生变化的标签事件进行触发
操作
,
如果发现页面状态改变
,
则对改变的页面
重新分析和查看是否有新的注入点产生
,
并对注
入点进行记录
。
页面注入点一般包括
input
标
签
、textarea
标签
、form
表单等
,
尤其要注意
iframe
里面也存在注入点
,
因此需要对
iframe
进行分
析
;
而触发页面状态变化的一些交互点有
button、a、span、i
等标签
,
以及一些带有
onclick
事件比如鼠标点击滑动等
[13]
。
获取页面注入点后
,
对于反射型漏洞
,
先提
交正常的探子向量测试
,
探子向量是一定不会被
浏览器过滤的正常向量
,
探子字符串一般的形
式
:
一般是
26
个字母加上
10
个数字组合后
,
取
8
位左右的随机字符串
,
保证在响应的
html
中不
会与已有的字符串冲突
[14]
,
如果页面响应不存
在探子向量字符串说明页面无需检测
,
因为正常
的字符串不会出现
,
后续构造的攻击向量也不会
被执行
。
一般来讲
,
反射型漏洞可直接查看页面
响应检测
,
但对于存储型的漏洞
,
向量输出位置
不一定在响应页面
,
给检测增加了许多难度
。
提取注入点的流程图如图
4
所示
:
图
4
提取注入点流程图
第
27
卷基于爬虫的
XSS
漏洞检测工具设计与实现
·11·
理论上
,
此时
inputlist
里已经储存了本页面
的所有注入点
,
在具体检测的时候
,
把目标
url
与注入点列表放入一个字典
dic_a
里
,
把
url
按
检测顺序从
0
开始排序
,
然后整体存入一个字
典
。
字典是
python
语言特有的一种数据格式
,
是基于哈希算法存储的一些键值对数据
,
类似于
json,
查找效率特别高
,
形如
:
{{url_0:[in_0,in_1,in_2]},{url_0:[in_1,in_2]},
{url_2:[in_0,in_1,in_2,in_3]}}
然后根据注入点在字典中的位置构造合法
测试向量
,
比如
url_0
的注入点
in_2,
构造探子
向量为
“xss0xss2xss”,
不含特殊字符
,url_2
的注
入点
in_0
构造探子向量
“xss2xss0xss”,
为了避免
内存中的字典太大
,
每当字典存储
url
数目达到
100
时
,
便将其写入本地
json
文件并记录
,
对需
检测的所有页面的注入点均提交探子请求
。
这
样
,
当所有的测试请求提交之后
,
对字典里存储
的所有
url
逐一进行二次遍历
,
查看服务器响应
是否有构造的探子向量并记录其输出位置的
Xpath
路径
。
从而可根据探子向量在字典中找
出其对应的
url
和注入点位置
,
将页面注入点和
输出点形成对应关系
,
存储为另一个字典
dic_b
形如
:
{url_0_in_1:[url_123.url_57],url_3_in_2:[url_35,
url_59]}
表示
url_0
页面的注入点
in_1
的输出位置
为页面
url_123h
和
url_57,
在进行检测的时候
,
在
url_0
页面的
in_1
注入点注入攻击向量
,
然后
去检测页面
url_123
和
url_57,
分析响应结果
,
判
断是否有漏洞
,
依次对
dic_b
中的所有注入点进
行测试即可
。
图
5
为存储型
XSS
从初始页面注
入探子向量到探子向量输出之后生成字典的
样例
。
对于攻击向量的选取
[15][16][17]
等文中
做了很多的工作
,
基本是基于业界著名的
XSS
CheatSheat
攻击向量集的扩充变形
。
对于
XSS
攻击向量
,
注入方式可以分为
4
种
:script
标签注
图
5
字典生成示例图
入
、html
事件注入
、url
伪协议注入
、css
样式注
入
。
在页面的输出位置又可分为
3
类
:html
标签
之间
、html
标签之内
、JavaScript
代码之中
。
对于
输出位置在标签之间的情况
,
可以构造闭合标签
的攻击向量
,
对于输出位置在标签之内的情况
,
可以构造闭合属性的向量
。
而对于输出位置在
JavaScript
之间的
,
则可能既需要闭合标签也需
要闭合属性
。
其实
,XSS
攻击的核心在于绕过
web
应用服
务器的过滤函数
,
所以攻击向量的设计全部以此
为出发点
,
包括标签的变形
,
标签的闭合
,
代码混
淆
,
甚至采用各种编码函数对攻击向量进行处
理
,
以绕过服务器过滤
。
而目前市场上不同的浏
览器对
XSS
的防范措施不同
,
各
Web
应用对
XSS
的过滤函数也千差万别
。
所以
,
构造丰富的
攻击向量
,
在
XSS
攻击自动化测试中尤为重要
,
但是随着攻击向量的个数增加
,
测试时间也会随
之延长
。
因此
,
攻击向量的选取是一个
XSS
漏
洞扫描工具的重中之重
。
本文在总结了前人的研究成果后
,
最终选取
了
200
条攻击向量进行测试
,
存储在
mysql
数据
库中
,
图
6
为部分攻击向量
:
本系统攻击向量的生成方式是通过构建初
始的各个类型的攻击向量
,
然后经过各种变形策
略处理
,
并按照其在页面的输出位置进行分类
,
写入到特定的数据表中
,
以便在后续的测试过程
·12·
北京电子科技学院学报
2019
年
图
6
数据库中的攻击向量图
中有针对性地选取测试向量
,
从而减少向服务器
提交的请求次数
,
来提高检测效率
。
首先给出攻
击向量自动生成模型的整个结构图如图
7。
图
7
攻击向量自动生成模型
对于一个典型的攻击向量
,
定义其结构如表
1
所示
。
表
1
攻击向量格式定义
”>
<imgsrc
=
“xxx”
onclick
=
Javascript:
alert()
/>
<“
上文
标签
下文
闭合
模块可用属协议函数
闭合
模块
(
包括无性模块模块模块
用属性
)
模块
由于攻击向量最终要嵌入到
html
文件中
被浏览器解析
,
所以要做到攻击向量与原本的
html
文件契合
。
其中
,
上下文闭合模块就是起
到这个作用
,
根据在
html
文件中的不同位置选
取不同的内容
。
标签模块可以选取不同类型
的标签进行不同类型的攻击
,
比如直接选取
script
标签
。
属性模块可以在属性注入时
,
选取
前文提到的
img、div、style、a
等标签属性名或者
事件注入时的事件属性名
。
协议模块包括
JavaScript、data
或者
vbscript
等协议
,
在属性注
入时写在属性内容里
,
后边附加执行函数
。
函
数模块则包括
alert、confirm、prompt、document.
write
等
JavaScript
函数或者
msgbox
这种
VBScript
函数
。
在生成基本攻击向量时
,
为每
个模块构造一个列表存储相关的内容属性
,
然
后采用随机组合的方式生成基本攻击向量
。
所有这些设定均是为了在检测模块进行检测
的时候更加方便高效
。
通过用合法向量测试得出注入点与输出点
的对应关系
,
然后在注入点依次提交数据库中的
攻击向量
。
具体是通过判断是否有包含注入字
符串的弹窗
,
或者页面是否存在我们注入的字符
串
,
从而确定是否有注入漏洞
,
具体获取页面弹
窗内容的代码如下
:
windows
=
driver.switch_to.alert
text
=
windows.text
此外
,
通过自己搭建一个含有漏洞的博客网
站进行测试
。
首先在页面评论框中输入攻击向
量
,
并通过
post
方式提交到后台数据库
,
操作过
程如图
8
所示
。
图
8
输入测试向量图
然后
,
当页面刷新时
,
后台数据库中的攻击
向量未经过过滤
,
直接嵌入到
html
页面进行解
析
,
此时产生弹窗
,
触发存储型
XSS
漏洞
,
如图
9
所示
:
3
性能分析
首先给出测试的具体环境配置如表
2
所示
。
第
27
卷基于爬虫的
XSS
漏洞检测工具设计与实现
·13·
图
9
漏洞弹窗图
表
2
环境配置
客户端操作系统
Windows10
处理器
Intel(R)Core(TM)i7
-
7500UCPU@
2.70GHz2.90GHz
安装内存
8.00GB
操作系统类型
64
位操作系统
开发语言
Python2.7
开发环境
JetBrainsPyCharm
CommunityEdition2017.2.4x64
数据库
MySQL5.7
为验证本文所设计的工具性能
,
使其对网站
http://testphp.vulnweb.com
进行测试
。
该网站
是
Acunetix
公司发布的一款开源的并含有漏洞
的应用
,
基于
php
语言开发
,
使用了
Ajax
技术
,
含有隐藏页面
。
首先
,
将本文的检测工具命名为
XSS-finder,
然后制作一款对比工具命名为
XSS-test(
去除本
文代码二次遍历部分
,
即不针对存储型
XSS
进
行二次检测
)。
最后将两款工具
XSS-finder
和
XSS-test
与
AppScan
和
XSSer
进行对比测试
,
均
设置启用的线程数为
10。
其中
AppScan
是
IBM
发布的一款免费的测试工具
,XSSer
则是一款由
python
语言开发的工具
。
(1)XSSer
测试
在使用
XSSer
测试时候
,
需在
linux
环境下
运行
,
本文使用另外一台电脑安装
Ubuntu
系统
,
下载并配置好
XSSer
的环境
,
使用测试命令
如下
:
pythonXSSer.py-c4-uhttp://testphp.vulnweb.com/
-
-auto
-
-Cem“Hex,Str,Hex”
-
-timeout“20”
-
-threads
“10”-w
其中
,-w
参数表示将报告写入文件
XSSlist.
dat
中
,
使用
vim
编辑器打开报告
,
测试结果如图
10
所示
。
图
10XSSer
的测试结果
XSSer
漏洞报告存储的是每次触发漏洞的
请求
,
总的注入次数和注入的成功率
,
利用
python
脚本对其进行处理
,
提取出注入
URL、
注
入类型与注入的测试字符
,
进行去重处理
,
最终
发现爬取链接数量为
45,
含有漏洞的
URL
一共
9
个
,
漏洞个数为
15。
(2)XSS-finder
测试
使用本文设计的检测工具
XSS-finder
进行
测试
。
为了方便系统的操作
,
本文使用
PyQt5
制
作了一个简易的软件界面
,
可以输入测试
URL
链接和
cookie
值
,
系统默认的启用线程个数为
10,
爬虫深度为
4,
去重方式为
set()
去重
,
在程
序运行结束后将测试报告文件里的内容输出到
软件界面
,
测试结果如图
11
所示
。
图
11XSS-finder
的测试结果
(3)
测试结果对比
四种工具检测结果如表
3
所示
。
·14·
北京电子科技学院学报
2019
年
表
3
检测结果对比
工具名称
AppXSSXSS
Scan
XSSer
-finder-test
爬取链接数目
49515151
检测出漏洞个数
18152119
反射型漏洞个数
17151818
存储型漏洞个数
1031
用时
6m17s12m31s10m12s9m01s
分析测试结果发现
,
本文的测试工具
XSS-
finder
可以挖掘更多的页面
,
检测更多的漏洞
。
证明本文提出的针对存储型漏洞的构造特殊探
子向量的二次检测方案是有效的
。
而且相比于
工具
XSS-test,
多检测出两个存储型漏洞
。
虽然
本文的系统测试时间较长
,
但是由于
python
语
言的特性和
Selenium
工具的特性导致的
,
可以
发现同样是用
python
语言实现的工具
XSSer
的
检测时间也较长
。
因为
XSS-finder
使用的是
FireFox
的驱动
,
所以对
XSS-finder
的测试结果进行手工验证
,
可
以看出在
FireFox
浏览器环境下均正确
。
但是在
chrome
环境下部分示例会被浏览器拦截导致请
求出错
。
其中图
9
中的第
3
个漏洞在
FireFox
和
Chrome
中的人工演示如图
10
和
11
所示
。
若在页面的
search
输入框输入攻击向量
,
一
旦注入成功
,
提交之后页面会弹出
123321
的测
试字符
。
如图
12
所示
,firefox
浏览器成功注入
。
图
12FireFox
测试结果演示
而
chrome
浏览器因为有较好的拦截过滤机
制
,
则注入失败
,
如图
13
所示
。
图
13Chrome
测试结果演示
4
结语
针对动态
Web
页面注入点提取难的问题
,
本文基于爬虫以及
Selenium
和
Webdriver
注入
点提取技术
,
有效的对
Web
页面注入点进行深
入挖掘
,
从而提出了构造特殊探子向量方案
,
有
效地找寻注入点的输出页面
,
成功提高了
XSS
漏洞的检测率
。
然而
,
由于
headless
浏览器加载
较慢
,python
程序运行效率并不高
,
所以检测效
率也不高
,
且没有检测
Dom
型
XSS
漏洞的能力
,
未来将会针对这两个方面进行深入研究
。
参考文献
1]SarmahU.BhattacharyyaDK.KalitaJK.A
surveyofdetectionmethodsforXSSattacks
[J].JournalofNetworkandComputerAppli-
cations,2018,118:113
-
143.
2]OSWAP.Typesofcross
-
sitescripting[EB/
OL].(2018
-
06
-
05)https://www.owasp.org/
index.php/Cross-site_Scripting_(XSS).
3]
刘仁千
,
张玉中
,
张超永
.
基于源代码的软件
安全性测试研究
[J].
计算机安全
,2013(8):
32
-
35.
4]HalfondWGJ,OrsoA,ManoliosP.WASP:
protectingWebapplicationsusingpositive
taintingandsyntax-awareevaluation[J].IEEE
TransonSoftwareEngineering,2008,34(1):
65
-
81.
[
[
[
[
第
27
卷基于爬虫的
XSS
漏洞检测工具设计与实现
·15·
[5]
左丹丹
,
王丹
,
付利华
.
一种
XSS
漏洞检测
J].
计算机应用与软件方法的设计与实现
[
2016,33(7):278
-
281,298.
[6][11]
沈寿忠
,
张玉清
.
基于爬虫的
XSS
漏洞
.
计算机工程
,
检测工具设计与实现
[J]
2009,35(21):151
-
154.
[7]
王丹
,
刘源
,
赵文兵
,
等
.
基于用户行为模拟
J].
大连理工大学学报
,
的
XSS
漏洞检测
[
2017,57(03):302
-
307.
[8]BozicJ,WotawaF.XSSpatternforattackmod-
elingintesting[C]//20138thInternational
WorkshoponAutomationofSoftwareTest
(AST),SanFrancisco,CA.IEEE,2013:71
-
74.
[9]
吴子敬
,
张宪忠
,
管磊
,
等
.
基于反过滤规则
集和自动爬虫的
XSS
漏洞深度挖掘技术
[J].
北京理工大学学报
,2012,32(4):395
-
401.
[10]
廉捷
,
周欣
,
曹伟
,
等
.
新浪微博数据挖掘方
J].
清华大学学报
(
自然科版
),2011,51
案
[
(10):1300
-
1305.
[11]GuptaS,GuptaBB.XSS-SAFE:AServer-
SideApproachtoDetectandMitigateCross-
SiteScripting(XSS)AttacksinJavaScript
Code[J].ArabianJournalforScienceandEn-
gineering,2016,41(3):897
-
920.
[12]GuptaS,GuptaBB.PHP-sensor:aprototype
methodtodiscoverworkflowviolationandXSS
vulnerabilitiesinPHPWebapplications[C]
CF’15:Proceedingsofthe12thACMInterna-
tionalConferenceonComputingFrontiers.
2015:1
-
8.
[13]
贾文超
,
汪永益
,
施凡
,
等
.
基于动态污点传
J].
计算机应播模型的
DOMXSS
漏洞检测
[
2014,31(7):2119
-
2122,2126.
用研究
,
[14]
刘立家
.
基于状态转换图的
XSS
漏洞自动
.
北京
:
北京工业大检测问题研究
[D]
2017.
学
,
[15]
黄文锋
,
李晓伟
,
霍占强
.
基于
EBNF
和二
J].
计算次爬取策略的
XSS
漏洞检测技术
[
2019,36(8):2458
-
2463.
机应用研究
,
[16]MahmoudSK,AlfonseM,RoushdyMI,
SalemAM.AcomparativeanalysisofCross
SiteScripting(XSS)detectinganddefensive
techniques[C]//2017EighthInternational
ConferenceonIntelligentComputingandInfor-
mationSystems(ICICIS),Cairo.2017:36
-
42.
[17]SivanesanAP,MathurA,JavaidAY.A
GoogleChromiumBrowserExtensionforDetec-
tingXSSAttackinHTML5BasedWebsites
[C]//2018IEEEInternationalConferenceon
Electro/InformationTechnology(EIT),Roch-
ester:MI.2018:0302
-
0304..
DesignandImplementationofXSSVulnerabilityDetectionToolBasedonCrawler
2
HANYanyan
1,
HEYanru
1
LIUPeihe
1
RenHui
1
ZHANGJinsheng
2
100070,P.R.China1.BeijingElectronicScienceandTechnologyInstitute,Beijing
2.XidianUniversity,Xi’an710071,Shaanxi,P.R.China
Abstract:Currently,Webtechnologyisinarapiddevelopmentanditsrelatedsecurityproblemse-
mergeendlessly.Amongthem,XSSattackbringshugeprivacysecurityrisksduetotheimperceptibility.
Atpresent,fewresearchesexistonXSSvulnerabilitydetectionindomestic,andsomeproblemsstillre-
mainsuchaslowaccuracyinautomaticdetectionofXSSvulnerability.Therefore,thispaperproposesa
·16·
北京电子科技学院学报
2019
年
detectionschemebasedoncrawler,wherethepageinjectionpointcouldbeextractedmorefullybysim-
ulatingtheuserbehaviortominewebhiddenpagesandtoanalyzethepagestructure.Toaddressthe
problemthattheoutputdataofthestoredXSSvulnerabilitymightnotbeintheresponsepageduringthe
detectionprocess,aprobevectortestingmethodisproposedtocorrelatetheinjectionpointandoutput
pointofthepage.Meanwhile,anXSSvulnerabilitydetectiontoolnamedXSS-finderisdesignedandim-
plementedaftersummarizingtheavailableattackmannersandmutationmethodsofXSS.Finallyexperi-
higherthanitspeers.mentalresultsshowthattheaccuracyofthedesigneddetectiontoolreaches82%,
Keywords:Crawler;XSSvulnerability;Probevector;Hidepage
(
责任编辑
:
夏超
)
版权声明:本文标题:基于爬虫的XSS漏洞检测工具设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713014749a617252.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论