160 likes | 420 Views
一种 XSS 攻击向量挖掘策略 的实现. 演讲人:邵鹏 导师:林予松老师. 背景介绍. XSS 攻击现状 影响范围最广、程度最深的网站安全 问题 之一 XSS 攻击危害依然存在 XSS 攻击向量形式与注入方式的多样化. 研究的问题. 多数 网站都会采用对用户输入进行过滤的方法来防范 XSS 攻击 。 是否 能过滤掉所有的 XSS 攻击向量的 风险 ? 过滤的完整性 过滤的局限性. 相关研究现状. 反 规则集的 XSS 攻击向量 挖掘 ,在定义规则集是存在很大的局限性,不能保证所挖掘出向量的完整性。
E N D
一种XSS攻击向量挖掘策略的实现 演讲人:邵鹏 导师:林予松老师
背景介绍 • XSS攻击现状 • 影响范围最广、程度最深的网站安全问题之一 • XSS攻击危害依然存在 • XSS攻击向量形式与注入方式的多样化
研究的问题 • 多数网站都会采用对用户输入进行过滤的方法来防范XSS攻击。 • 是否能过滤掉所有的XSS攻击向量的风险? • 过滤的完整性 • 过滤的局限性
相关研究现状 • 反规则集的XSS攻击向量挖掘,在定义规则集是存在很大的局限性,不能保证所挖掘出向量的完整性。 • 动态生成XSS攻击向量的挖掘方法, 可用性以及向量的反过滤程度上有所不足。
解决方案 • XSS向量挖掘策略 + Fuzzing • 基于层次的反过滤方法的XSS攻击向量挖掘策略 • 已存在的XSS攻击向量源码(可用性) • 从部分到整体的层次挖掘(完整性) • 分类更细化的反过滤规则设定(绕过网站过滤) • fuzzing测试工具 • burpsuite
XSS的拆分(一) • XSS定义:跨站脚本是一种站点应用程序的安全漏洞攻击,是代码注入的一种。它允许用户将恶意代码注入到网页上,这类攻击通常包含了HTML以及用户端脚本语言。 • XSS攻击向量拆分定义:XSS攻击向量至少要包含API字符,绝大多数包含标签或者属性。 设定A*为所有属性集合,A为A*的子集;L*为所有标签集合,L为L*的子集;C*为所有API字符集合,C为C*的真子集,则有
XSS的拆分(二) • 验证XSS拆分 • 大多数网站过滤都是采用匹配刚才拆分出的三个集合中的元素,做为XSS的攻击向量的特征。(正则表达式,字符模糊匹配)
XSS反过滤的方式 • XSS代码具有多种反过滤的方式 • m1:随机空白 • <IMG SRC="javascript:alert('XSS');"> • m2:敏感词添加注释 • <div style="width: expre/* */ssion(alert('xss'));"> • m3:敏感词替换为空或者删除 • <scr<script>ipt> alert(XSS) < /scr<script>ipt > • m4:字符编码 • 十进制、十六进制、Base64、ASCⅡ • m5 :编码格式的转换 • Unicode,UTF-8,UTF-7,base64 • m6:攻击向量二次生成 • <IMG SRC=javascript:alert(String.fromCharCode (88,83,83))> eval函数 • 反过滤方式细分为两类 • 可以对属性、标签、字符进行单个处理的方法集合为 • 对整体进行处理的方法集合为
相关应用 • 步骤1:XSS攻击向量根据挖掘规则生成攻击向量集合,其结果保存到fuzzing测试使用的脚本中,一般为txt文本。 • 步骤2:Fuzzer测试工具读取测试脚本中保存的XSS攻击向量,发送给web服务器。 • 步骤3:分析XSS攻击向量的响应,得到测试结果。
实验以及结果分析 • XSS检测有效性的实验 • 实现环境 • 实现步骤 • 利用开源网站模板(包含过滤功能),在虚拟机1上建立起一个含有XSS漏洞的测试网站; • 建立两个XSS漏洞库,第一个是未经挖掘XSS攻击代码库,第二个是进过挖掘之后XSS攻击代码库; • 虚拟机2上利用未经挖掘的XSS代码库,对虚拟机1所搭建的网站进行XSS模拟攻击检测;同时在虚拟机3利用混淆过的XSS代码库进行相同的操作; • 收集虚拟机2和虚拟机3的检测报告,对其结果比较。
实验以及结果分析 • 实验结果 • 结果分析 攻击向量进过敏感词注释处理或者采用整体utf-7编码的形式之后,网站过滤模块就无法正常的识别,从而导致了XSS攻击的成功的实施。 比如:<div style="width: expre/* */ssion(alert('xss'));">
下一步的工作以及展望 • 实验工作 • 挖掘出更多的攻击向量,统计并分析在主流浏览器上的可执行率 • 同其他XSS检测工具的横向对比实验 • 实现自动化的检测流程(展望) • 目前只能实现半自动化的检测流程 • 实现自动化提高检测的效率
主要参考文献 [1]D. Wichers. The top 10 most critical web application security risks[R].OWASP, 2010. [2]XSS Me :: Add-ons for Firefox[EB/OL].2012. https://addons.mozilla.org/en-US /firefox /addon/xss-me/ [3]ChinotecTechnologies Company. Paros——for Web Application Security Assessment[EB/OL]. 2008.http://www.owasp.org/. [4]陈建清,张玉清. Web跨站脚本漏洞检测工具的设计与实现[J].计算机工程.2010-03.vol.36 No.6 :152-154 [5] XSSF Cross-site Scripting Framewort[EB/OL].2012 http://code.google.com/p/xssf/ [6] 吴子敬,张宪忠,管磊等.基于反过滤规则集合和自动爬虫的XSS漏洞深度挖掘技术[J].北京理工大学学报.2010-04.vol.32No.4 :395-400 [7] 陈景峰.基于Fuzzing技术的WEB应用程序漏洞挖掘技术研究[D].北方工业大学,20120511 [8] 跨站点脚本-维基百科[EB/OL].2012. http://zh.wikipedia.org/wiki/XSS. [9] RSnake’s Vulnerability Lab[EB/OL].2012. http://ha.ckers.org/weird/ [10] Fuzzing—百度百科[EB/OL].2012. http://baike.baidu.com/view/2851606.htm