看我如何利用二次编码进行xss
Posted Le想安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看我如何利用二次编码进行xss相关的知识,希望对你有一定的参考价值。
XSS的绕过技巧有很多,本次小编主要通过一个真实的漏洞验证案例讲解如何利用二次URL编码进行xss,以及遇到type="hidden"为的input时如何处理。
在一次授权测试中,扫描器发现了这样一个xss漏洞。
通过观察请求包,我们可以看出bi参数被url编码了,因此存在xss的地方很有可能是bi参数。首先我们对bi参数的值进行url解码,看看被编码的内容具体是什么。
解码后发现依然是被编码的,因此需要再次进行url解码。
经过2次URL解码后,终于看到被编码的内容了。100000000000206"onmouseover=Md3r(9289)"
将post数据包放到burp中执行,然后再搜索关键字“Md3r”,可以发现我们的poc被插入到了一个input中,但input的type="hidden"。
为了验证该xss漏洞确实能被利用,我们需要手动修改扫描器的poc,让访问页面的时候能弹出个框来。但是由于type="hidden",onmouseover等各种常用事件都没法利用了。
利用搜索引擎找了半天,也没发现有非常适用的方法。于是想到能否先闭合这个input标签,再新开一个img标签?
首先我们分析现有的input标签,黄底部分是我们可以控制的内容。
<input type="hidden"name="bi" id="bi" value=" 1"onmouseover=Md3r(9289)" " />
我们先添加一个"/>将input闭合,再接上一个img标签,并顺便对接上后面的" />,修改后如下:
<input type="hidden"name="bi" id="bi" value=" "/><img src=x onerror="alert(1) " />
为了验证这个写法是否正确,我们在本地新建一个htm页面,把这段代码放里面试试看。
OK,成功弹出。
接下来,我们要做的是把"/><imgsrc=x onerror="alert(1)进行二次url编码。
由于普通的在线URL编码工具只是对特殊字符进行了编码,因此无法达到完全编码的效果。
经过大量的尝试后,我们使用burp中的Decoder模块完成该工作。
将编码后的内容作为bi参数的值进行提交
%25%32%32%25%32%66%25%33%65%25%33%63%25%36%39%25%36%64%25%36%37%25%32%30%25%37%33%25%37%32%25%36%33%25%33%64%25%37%38%25%32%30%25%36%66%25%36%65%25%36%35%25%37%32%25%37%32%25%36%66%25%37%32%25%33%64%25%32%32%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34%25%32%38%25%33%31%25%32%39
我们可以看到img标签被成功插入到了返回的html中。
而浏览器中也弹框成功。本次在type="hidden"为的input中利用二次URL编码进行xss的测试圆满完成。
各位大表哥大表姐有其他好的姿势或思路也欢迎留言分享啊~~
以上是关于看我如何利用二次编码进行xss的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在visual studio 2005上,利用arcgis engine 10进行二次开发?如何设置?