看我如何利用二次编码进行xss

Posted Le想安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看我如何利用二次编码进行xss相关的知识,希望对你有一定的参考价值。

XSS的绕过技巧有很多,本次小编主要通过一个真实的漏洞验证案例讲解如何利用二次URL编码进行xss,以及遇到type="hidden"为的input时如何处理。

在一次授权测试中,扫描器发现了这样一个xss漏洞。

通过观察请求包,我们可以看出bi参数被url编码了,因此存在xss的地方很有可能是bi参数。首先我们对bi参数的值进行url解码,看看被编码的内容具体是什么。

看我如何利用二次编码进行xss

解码后发现依然是被编码的,因此需要再次进行url解码。

看我如何利用二次编码进行xss

经过2URL解码后,终于看到被编码的内容了。100000000000206"onmouseover=Md3r(9289)"

post数据包放到burp中执行,然后再搜索关键字“Md3r”,可以发现我们的poc被插入到了一个input中,但inputtype="hidden"

看我如何利用二次编码进行xss

为了验证该xss漏洞确实能被利用,我们需要手动修改扫描器的poc,让访问页面的时候能弹出个框来。但是由于type="hidden"onmouseover等各种常用事件都没法利用了。

看我如何利用二次编码进行xss

利用搜索引擎找了半天,也没发现有非常适用的方法。于是想到能否先闭合这个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页面,把这段代码放里面试试看。

看我如何利用二次编码进行xss

OK,成功弹出。

接下来,我们要做的是把"/><imgsrc=x onerror="alert(1)进行二次url编码。

由于普通的在线URL编码工具只是对特殊字符进行了编码,因此无法达到完全编码的效果。

看我如何利用二次编码进行xss

经过大量的尝试后,我们使用burp中的Decoder模块完成该工作。

看我如何利用二次编码进行xss

将编码后的内容作为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中。

看我如何利用二次编码进行xss

看我如何利用二次编码进行xss

而浏览器中也弹框成功。本次在type="hidden"为的input中利用二次URL编码进行xss的测试圆满完成。

各位大表哥大表姐有其他好的姿势或思路也欢迎留言分享啊~~

 

以上是关于看我如何利用二次编码进行xss的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在visual studio 2005上,利用arcgis engine 10进行二次开发?如何设置?

看我如何发现雅虎邮箱APP的存储型XSS漏洞

二次编码注入

C#怎样利用meteoinfo.dll文件进行二次开发读取云图资料

如何天真有效地编码二次形式

如何基于报表工具FineReport进行二次开发