白帽子讲Web安全 第三章 跨站脚本攻击(XSS)

XSS----Cross Site Script;

XSS攻击,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。

1、XSS根据效果划分三类:

1)反射型XSS(非持久型XSS):简单的把用户输入的数据“反射”给浏览器。黑客往往需要诱导用户点击一个恶意链接,才能攻击成功。

2)存储型XSS(持久型XSS):存储型会把用户输入的数据存储在服务器端。这种具有很强的稳定性。

3)DOM Based XSS:通过修改页面的DOM形成的XSS。

2、XSS攻击

XSS Payload---用以完成各种具体功能的恶意脚本。

1) 最常见:通过读取浏览器的Cookie对象,发起“Cookie”劫持攻击。

2)通过模拟GET\POST请求操作用户的浏览器。

3)XSS钓鱼

eg:模拟登陆框获取用户名,密码。

4)识别用户浏览器

alter(navigator.userAgent);

5)识别用户安装的软件

eg:在IE 中可以通过判断ActiveX控件的classid是否存在,来推测用户是否安装了该软件。

try{

var obj=new ActiveXObject(‘XunLeiBHO.ThunderIEHelper‘);

}catch(e){

//异常就不存在

}

6)获取用户真实的IP地址

eg:在XSS攻击框架“Attack API”中就有获取本地IP地址的API。

3、XSS攻击平台

Attack API

BeEF

XSS-Proxy

4、XSS Worm (XSS蠕虫)

Samy Worm

5、调试JavaScript

Firebug

Fiddler

HttpWatch

6、XSS 构造技巧

1)利用字符编码:

2)绕过长度限制

eg:利用onclick事件加载XSS Payload

location.hash----- 用于标识位置,一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分)。

利用注释

3)使用<base>标签

<base>----定义页面上的所有使用“相对路径”标签的hosting地址。可以放置页面的任意地方,作用于位于它后面的所有标签

eg:

<base href="http://www.baidu.com"/>

<script src="x.js"></script>

4)window.name--- 可设置或返回存放窗口的名称的一个字符串。可跨域、跨页面传递数据。

7、XSS 防御

1)HttpOnly:浏览器禁止页面的javaScript访问带有HttpOnly属性的cookie------------------可以防止cookie劫持

2)输入检查:服务器端要过滤特殊、敏感字符。

3)输出检查:使用编码或转义

eg:HtmlEncode\JavascriptEncode

在Protocal与host中使用严格的URLEncode

4)处理富文本

过滤富文本时,事件应严格禁止

使用白名单禁止一些危险标签,只保留比较安全的标签存在

使用白名单过滤属性、事件

尽可能禁止用户自定义CSS \style

5)防御DOM Based XSS

在“$var”输出到<script>时,应该执行一次javascriptEncode;

在document.write输出到HTML页面时,要分具体情况:如果输出到方法或者脚本里,则需要在做一次javascriptEncode,如果输出到HTML页面或属性,则要做一次HtmlEncode。

javaScript到HTML:

document.write();

document.writeln();

xxx.innerHTML();

xxx.outerHTML();

innerHTML.replace;

document.attachEvent();

window.attachEvent();

document.location.replace();

document.location.assign();

javaScript的输出:

页面中的所有的inputs框;

window.location(href\hash等)

window.name

document.referrer( 返回载入当前文档的来源文档的URL。 )

document.cookie

localstorage

XMLHttpRequest返回的数据

时间: 2024-10-25 22:00:33

白帽子讲Web安全 第三章 跨站脚本攻击(XSS)的相关文章

白帽子讲WEB安全 第七章 注入攻击

一.SQL注入: 1.注入攻击的本质:把用户输入的数据当代码执行. 攻击的关键点:1.用户能够控制输入: 2.原本程序要执行的代码, 2.盲注(Blind Injection):在服务器没有错误回显时完成的注入攻击. 3.时序攻击(Timing Attack):利用BENCHMARK()函数(mysql中用于测试函数性能的函数),可以让同一个函数执行若干次,使得结果返回的时间比平时要长:通过时间长短的变化,可以判断出注入语句是否执行成功.这是一种边信道攻击. 边信道攻击(side channel

白帽子讲WEB安全 第六章 HTML 5安全

1.新标签的XSS H5中定义类很多新标签.新事件可能带来XSS(为研究XSS攻击H5的变化成立项目----HTML 5 Security Cheatsheet) eg: 1)  <video src=" "  onloadedmetadate="alter(XSS)">----远程加载视频 2)  <audio>----远程加载音频 3) iframe 的新属性---sandbox:这一属性使iframe加载的内容变成一个独立的源,其中脚本

白帽子讲Web安全 第四章 跨站点请求伪造(CSRF)

1.CSRF : Cross Site Request Forgery. 该攻击通过在授权用户访问的页面中包含链接或脚本的方式工作.是一种依赖Web浏览器的.被混淆过的代理人攻击. 2.常见特性: 依靠用户标识危害网站 利用网站对用户标识的信任 欺骗用户的浏览器发送HTTP请求给目标站点 另外可以通过含有src性质的标签(eg: iframe\image\script\style)会触发一个GET请求,可以利用这个发起CSRF攻击. 详见:http://www.cnblogs.com/hyddd

白帽子讲Web安全1.pdf

第一章 我的安全世界观 安全是一个持续过程 6种威胁:Spoofing(伪装).Tampering(篡改).Repudiation(抵赖).InformationDisclosure(信息泄漏).Denial of Service(拒绝服务).Elevation of Privilege(提升权限) 一个优秀的安全方案需要: 有效解决问题 用户体验良好 高性能 低耦合 易于升级和扩展 安全策略 Secure by Default原则(最小权限原则):白名单可通过和禁止黑名单,前者限制的范围更大更

白帽子讲Web安全2.pdf

XSS构造技巧 利用字符编码: var redirectUrl="\";alert(/XSS/);"; 本身没有XSS漏洞,但由于返回页面是GBK/GB2312编码的“%c1\”成为了一个Unicode字符,忽略掉转义字符\ %c1";alert(/XSS/);// 绕过长度限制: 很多时候产生XSS的地方会有变量长度限制,将代码藏在location.hash中,然后在其他地方调用即可 http://www.a.com/test.html#alert(1) <

读&gt;&gt;&gt;&gt;白帽子讲Web安全&lt;&lt;&lt;&lt;摘要→我推荐的一本书

<白帽子讲Web安全>吴翰清著 刚开始看这本书就被这本书吸引,感觉挺不错,给大家推荐下,最近读这本书,感觉不错的精华就记录下, 俗话说>>>好脑袋不如一个烂笔头<<< 还有,大家也看出来,最近我也要开始写博客了, 万事开头难嘛,先拿来那些nx点的人物的书籍来记录下, 本人文笔确实不怎么滴,思路略混乱,中学时代我的作文就是我们班的一盏亮灯,指引我们全班文笔不要向我的文笔思路靠近 ←```warn```→ 读万卷书,行万里路,以后不做宅男.加油··· 信息不等于

《白帽子讲WEB安全》学习笔记之第3章 跨站脚本攻击(xss)

第3章 跨站脚本攻击(xss) 3.1 xss简介 恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的. XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆.故将跨站脚本攻击缩写为XSS. XSS本质就是HTML注入 XSS的分类: (1)     反射型XSS: 一个恶意构造了Web的URL (2)    

《白帽子讲Web安全》——第一篇 第一章 我的安全世界观

前些日子定的书单,下放给各淘宝卖家,今天来的第一本就是这本,是一个我完全陌生的领域,然而强烈的好奇心,催使我看完了第一章,其实就是个概述. 1.1 Web安全简史 exploit:黑客们使用的漏洞利用代码. Script Kids:只对攻击本身感兴趣,没有动手能力,对计算机原理和各种编程技术略知一二,因而只能编译别人的代码的黑客,即“脚本小子”. 1. Web安全的兴起 (1)SQL注入 (2)XSS (3)CSRF http://blog.csdn.net/dyllove98/article/

《白帽子讲WEB安全》学习笔记之第1章 我的安全世界观

第1章 我的安全世界观 1.1 web安全简史 1.1.1 中国黑客简史 现在中国乃至全世界的黑客或者说是骇客已经进入了"黑暗时代",因为互联网存在这大量的利益. 1.1.2 黑客技术的发展历程 1.1.3 web安全的兴起 web安全是信息安全领域的一个重要的分支,但是中国目前对web安全的重视程度远远不足. 为什么要攻击Web应用,我认为主要有以下几个原因: q  web应用无处不在. q  相比较与操作系统等的安全防御能力,攻破web更容易一些. q  攻击web可以来无影去无踪