来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 反射型XSS部分,就到这里了。 接着我们进入Dom Xss的部分。 Dom Xss相比反射型XSS,脑袋需要多思考一层。 也就是说,我们关注的不仅是【输出】了什么,还要了解这个页面里,【javascri...
反射型XSS部分,就到这里了。 接着我们进入Dom Xss的部分。 Dom Xss相比反射型XSS,脑袋需要多思考一层。 也就是说,我们关注的不仅是【输出】了什么,还要了解这个页面里,【javascript】拿这个【输出】干了什么。 为了循序渐进,本例讲到的是,【输出】直接在源代码可见的情况。 <div id="a">xxx</div> <script>
<div id="a">xxx</div> <script>
譬如: < 可以表示为 \u003c , > 可以表示为 \u003e 不知道怎么转义的,可以使用gainover的工具。 工具地址:http://app.baidu.com/app/enter?appid=280383
<div id="a">xxx</div> <script>
5. 我们来看看一个具体的实例,地址如下: http://datalib.ent.qq.com/cgi-bin/search?libid=1&keyvalue=aaaaaaa&attr=133&stype=2&tname=star_second.shtml
<strong id="titleshow">按职业1检索:aaaaaaa </strong></div> if("职业1"=="职业1") if("职业1"=="职业2") if("职业1"=="职业3")
7. 在看到本教程的1,2,3 部分后,聪明的你们不知道会不会想到些什么呢? 我们可以看到,上面代码中,实际上只有一句是运行了的。我们重点看它。 if("职业1"=="职业1")
9. 因此,我们可以构造缺陷点的代码如下: if("职业1"=="职业1")
对应的,我们的利用代码,可以写为如下,其中空格,我写为了\u0020 http://datalib.ent.qq.com/cgi-bin/search?libid=1&keyvalue=\u003Cimg\u0020src=1\u0020onerror=alert(1)\u003e&attr=133&stype=2&tname=star_second.shtml
11. 其实我们还应该注意到上面图片中,过滤的实际上是\u003c和\u003e,但是并没有过滤\u0020,这说明,腾讯只是针对性的过滤,并没有过滤 反斜线。 12. 其实呢,在JS字符串里, < 不光可以写为 \u003c,还可以写为 \x3c, > 同样可以写为 \x3e。我们试试腾讯过滤了这个没有呢? http://datalib.ent.qq.com/cgi-bin/search?libid=1&keyvalue=\x3Cimg\u0020src=1\u0020onerror=alert(1)\x3e&attr=133&stype=2&tname=star_second.shtml
13. 最后总结下。本例中是 innerHTML的情况。 实际上只要是与改变页面HTML内容相关的操作,都可能导致这种问题。 这也是网上介绍dom xss时,也经常会提到的东西, 比如 还有一些网站,使用了第三方的JS库,譬如jQuery时,会有 $("#y").html("xxxxxxx"); 14. 当然最后,还需要提到一些需要注意的地方。 aa.innerHTML="xxxxxxxxxxxx"; 这种情况下。xxxxx只能使用 <img src=1 onerror=alert(1)> 这种方式来触发JS。 而不能以 <script>alert(1)</script> 来触发,因为这种压根不会执行<script>..</script>之间的内容。 IE下,可以使用 <script defer>alert(1)</script>。 方法1. 输出时,过滤 \ |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com