XSS笔记

作者: miao_int | 来源:发表于2018-05-05 23:10 被阅读0次

近来在学习XSS,感觉有一些感悟,却又好像缺少一点什么。写这篇博客,既是一种总结,也希望能够通过这种写博客的方式整理一下自己的思路,当然如果有前辈能够不吝赐教的话就更好了。

0X01 理解浏览器对于编码的解析过程

关于这一点,segmentfault上面有一个回答解释的非常好:

image

当用户点击链接时,服务端首先通过URL解码,将input解析成了"&lt\u4e00&gt"。

然后浏览器在渲染的时候,首先进行HTML解码,得到"<\u4e00>"。

然后"javascript:"出发了javascript解释器进行javascript解码,这个过程中\u4e00被按照unicode编码解释成了"一"。

综合上面的例子,我们可以看到解码的过程是按照先URL解码,再HTML解码,然后JS解码的过程进行的。在HTML解码的过程中,是先生成DOM树,然后再对树上的每一个节点进行HTML的解析,因此构造编码的时候,不能导致破坏DOM树结构的情况,否则HTML解析就会出错。

0X02 XSS的类型

反射型

反射型XSS也叫做”非持久性XSS”,在XSS攻击的过程中,数据的流向是:

前端--->后端--->前端

因为不能存储到后台数据库,因此其也是“一次性的”,一般的利用方法是构造链接,诱骗目标点击。

存储型

存储型的XSS顾名思义就是会把输入的数据存放到服务端,数据可以长时间保存。其数据流向是:

浏览器--->后端--->数据库--->后端--->浏览器

因为其可以存储的特性,存储型XSS是最优的选择。

DOM型

DOM型的XSS其实也算是反射型XSS的一种,只不过它是通过修改页面的DOM节点形成的XSS,称之为DOM based XSS。其数据流向是:

URL--->浏览器

0X03 常见的XSS攻(qi)击(ji)方(yin)法(qiao)

(1)比如XSS-challenge stage10中,用户的输入被屏蔽了domain,因此无法正常的输入alert(document.domain)。这时可以考虑通过alert(document.domdomainain)来绕过,原理是中间的domain被过滤掉之后,两边的dom和ain被拼接到了一起,又是一个domain。

(2)<、>、\、"、'、script被过滤。这几个关键的字符都是XSS攻击中非常常见而且使用频率最高的一些字符,很多网站针对XSS的防御也是通过各种规则过滤这些特殊字符来实现的。需要具体情况具体分析,来设计绕过的字符串。

(3)通过编码的方式。javascript中常用函数String.fromCharCode( )可以接受unicode编码然后转成ASCII码输出,而eval()函数接受javascript代码的字符串,并执行这段代码。因此在XSS利用过程中,常常会通过eval(String.fromCharCode(unicodenum1,unicodenum2...))然后在进行URL编码。

PS:后续还会追加更新

0X04 参考资料

1、 编码与解码 -- 浏览器做了什么

详细的讲述了浏览器解码的过程。

2、浏览器的解码顺序(html解码、url解码以及js解码)

本文中参考的例子就来自这个问题。

3、XSSer 升级之路

作者由浅入深用很多实际例子讲解了各种XSS问题

4、Web安全 — XSS漏洞

作者用简单的小例子讲解了三种XSS的概念

5、Http协议中的编码和解码与浏览器渲染

特别详细的讲了编码解码的过程

相关文章

  • Xss笔记

    xssXSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩...

  • XSS笔记

    近来在学习XSS,感觉有一些感悟,却又好像缺少一点什么。写这篇博客,既是一种总结,也希望能够通过这种写博客的方式整...

  • 前端安全机制问题之一(XSS)

    作为安全方面的小白,笔记当然要从基础开始,简单的来先说说XSS即跨站脚本攻击 跨站脚本攻击的原理XSS又叫CSS ...

  • 跨站攻击脚本-XSS

    XSS: Cross Site Scripting XSS 概念 XSS 分类 反射型xss攻击图示 XSS 攻击...

  • XSS payload.

    alert('XSS') alert("XSS") alert('XSS') alert("XSS") S...

  • XSS学习笔记

    一、XSS 简介 XSS(Cross-Site Script,跨站脚本攻击) 攻击方式如下图所示: XSS 攻击根...

  • XSS闯关笔记

    level 1 查看第一关的源码,发现get方法直接输入的内容,可以直接构造payload payload: al...

  • xss原理笔记

    之前零散的接触过xss,但是对于他的原理不清楚只知道如何简单的使用,现在来补一波理论。在浅尝了一些后端PHP的知识...

  • 【学习笔记】XSS

    解决方案1 解决方案2解决方案3

  • XSS攻击笔记

    什么是XSS? 跨站脚本(Cross-Site Scripting,XSS)是一种经常出现在 Web 应用程序中的...

网友评论

      本文标题:XSS笔记

      本文链接:https://www.haomeiwen.com/subject/ffcyrftx.html