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

责任编辑

夏超


本文标签: 向量 页面 攻击 注入 检测