文章

最新Windows漏洞——CVE-2020-0796,堪比永恒之蓝

永恒之蓝 2.0 来了,基于 SMBv3 的漏洞,Windows 8和Windows Server 2012 - Windows 10 最新版全部中招,属于系统级漏洞 利用这一漏洞会使系统遭受‘蠕虫型’攻击,这意味着很容易从一个受害者感染另一个受害者,一开机就感染。提权后可以做任意操作,例如加密你的文件勒索你。比如说像 EternalBlue 1.0 (永恒之蓝 1.0) 一样,加密文件,对你进行勒索虚拟货币! 在微软发布修补CVE-2020-0796漏洞的安全更新之前,Cisco Talos分享了通过禁用SMBv3压缩和拦截计算机的445端口来防御利用该漏洞发起的攻击。 CVE-2020-0796 这个漏洞编号CVE-2020-0796,与微软Server Message Block 3.1.1 (SMBv3)协议有关,在处理压缩消息时,如果其中的数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。 这个漏洞被评为“ Critical”高危级别,攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。 病毒危害 这个漏洞的影响程度据说堪比前几年的永恒之蓝,当年肆虐全球的“WannaCry”勒索病毒也是利用了SMB协议的漏洞攻击系统获得最高权限。 这个漏洞会影响目前主流的Win10版本,具体如下: [crayon-6620d340809e0570709763/] 不过Win7系统不受影响,这点跟以往的WannaCry病毒反过来了,后者只影响Win7系统,没影响Win10系统。 解决方法 好消息是,微软在3月12日的系统更新中,修复了改bug,win10用户只需升级到最新版本打上安全补丁即可 对于非win10最新版本的用户,建议手动在PowerShell执行以下代码来临时封堵该漏洞,使你的设备免受攻击管理员方式打开PowerShell,复制以下代码回车执行即可。 管理员方式打开PowerShell,复制以下代码回车执行即可。 [crayon-6620d340809ec705540924/] 如出现下图情况,则说明你的PowerShell软件非管理员模式运行。

文章

腾讯云一波重大失误导致损失惨重

事件开始 昨天下午,各大Q群以及线报网站都发了一个腾讯云的问卷调查,说是填了免费领100无门槛代金券。实则是4月21日技术沙龙现场活动入口外泄导致。 总共有7个问卷,而不管内容填写的是什么,都会直接领取到一张腾讯云的100元无门槛代金券。 事件高潮 各路大佬都疯狂换小号撸券,用来买域名买主机。更有甚者,直接写脚本撸。不到1小时,腾讯云域名订购系统直接崩溃。 随后,腾讯云发现异常,紧急维护,禁止域名注册,尽量避免最小损失。并回收部分未使用代金券。 尾声 晚上22:30-23:59腾讯云断开了域名注册的接口,并紧急维护。 所有未使用代金券强制过期 次日早上11:30,发布道歉公告,并阐明原因。 整个事件到此就完全结束了,各路撸友都十分机智的选择了注册域名和域名续费(无法回收),导致腾讯云直接亏损很多钱。博主也顺势蹭了一波小便宜,续费了3年域名。   讲到这里,这次可能只是大公司的一个小小失误而已,可能大家都司空见惯(阿里员工脚本抢月饼 腾讯云2000代金券等等这些事故),可是还是要提醒大家的是,工作上面的的事,一定要谨慎。别到时候被炒鱿鱼,都没地儿哭。

文章

“双十二”前京东被曝用户数据泄露,官方称源自 2013 年安全漏洞问题

有媒体报道称,有疑似来自京东的一个 12G 的数据包在黑市流通,其中包括用户名、密码、邮件箱、QQ号、电话号码和身份证等各种信息,数据多达数千万条。 京东方面凌晨发布声明,并没有否认这些数据来自京东。 京东在回应正文里表示,该数据源于 2013 年 Struts 2 的安全漏洞问题。 但京东也同时强调当时国几乎所有互联网公司及大量银行、政府机构都受到了这个安全漏洞的影响,导致大量数据泄露,暗示安全问题不只京东一家有。 京东表示,在 Struts 2 的安全问题发生后,公司就迅速完成了系统修复,同时针对可能存在信息安全风险的用户进行了安全升级提示,当时受此影响的绝大部分用户也对账号进行了安全升级,但仍有极少部分用户并未及时升级账号安全,依然存在一定风险。 此前,京东也有过用户隐私问题泄露的问题,但不是源于数据安全,而是公司物流人员通过物流流程掌握了用户姓名、电话、地址、何时下单、所购货物等信息。 信息泄露有多危险?除了京东上的个人信息,包括订单、地址、交易等内容被获取,黑客也能通过这些泄露的信息尝试去登陆其他网站,获取更多的数据。 数据泄露远不止是隐私问题这么简单,利益驱动下,最危险的莫过于,一旦不法分子通过这些数据破解了一些金融账户,用户的损失将会更加严重。 2015 年比较典型的网络信息安全问题,主要出现在网购、快递信息、移动应用数据和各类互联网金融应用上。 360 互联网安全中心于 2016 年 1 月曾出过国内第一份网站安全报告——《2015 年度中国网站安全报告》。报告指出,2015 年,国内网民人均有 8 条个人隐私被盗,数万网站存在安全漏洞。 据中国互联网协会发布的《中国网民权益保护调查报告》显示,2015 年来,网民因个人信息泄露、垃圾信息、诈骗信息等现象,导致总体损失约 805 亿元。 以下为京东《关于有媒体报道京东数据安全问题的声明》: 昨日,有媒体报道《京东数据疑似外泄》,经京东信息安全部门依据报道内容初步判断,该数据源于 2013 年 Struts 2 的安全漏洞问题,当时国内几乎所有互联网公司及大量银行、政府机构都受到了影响,导致大量数据泄露。京东在 Struts 2 的安全问题发生后,就迅速完成了系统修复,同时针对可能存在信息安全风险的用户进行了安全升级提示,当时受此影响的绝大部分用户都对自己的账号进行了安全升级。但确实仍有极少部分用户并未及时升级账号安全,依然存在一定风险。 京东在此也强烈建议用户高度重视信息安全和隐私保护,在涉及到财产的电商、支付类系统中使用独特的用户名和登录密码,开启手机验证和支付密码,并将登录密码和支付密码设为高强度的复杂密码,提高账户安全等级。 同时,针对出现在地下黑色产业链中采用黑客攻击用户账户、盗取用户账号资产和贩卖用户信息等不法行为,京东已与警方建立了长效的合作机制,并将联合警方进行坚决的打击。

文章

SQl注入原理剖析

日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。 网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,由于设计的漏洞导致了不可收拾的恶果,验证了一句话“出来混的,迟早是要还的”,所以我想通过专题博文介绍一些常用的攻击技术和防范策略。 SQL Injection也许很多人都知道或者使用过,如果没有了解或完全没有听过也没有关系,因为接下来我们将介绍SQL Injection。 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 首先让我们了解什么时候可能发生SQL Injection。 假设我们在浏览器中输入URL www.sample.com,由于它只是对页面的简单请求无需对数据库动进行动态请求,所以它不存在SQL Injection,当我们输入www.sample.com?testid=23时,我们在URL中传递变量testid,并且提供值为23,由于它是对数据库进行动态查询的请求(其中?testid=23表示数据库查询变量),所以我们可以该URL中嵌入恶意SQL语句。 现在我们知道SQL Injection适用场合,接下来我们将通过具体的例子来说明SQL Injection的应用,这里我们以pubs数据库作为例子。 我们通过Web页面查询job表中的招聘信息,job表的设计如下: 图1 jobs表      接着让我们实现Web程序,它根据工作Id(job_id)来查询相应的招聘信息,示意代码如下:   [crayon-6620d34081428133085765/]   现在我们已经完成了Web程序,接下来让我们查询相应招聘信息吧。 图2 job表查询结果       如图所示,我们要查询数据库中工作Id值为1的工作信息,而且在页面显示了该工作的Id,Description,Min Lvl和Max Lvl等信息。 现在要求我们实现根据工作Id查询相应工作信息的功能,想必大家很快可以给出解决方案,SQL示意代码如下:   [crayon-6620d34081435512846527/]   假设现在要求我们获取Department表中的所有数据,而且必须保留WHERE语句,那我们只要确保WHERE恒真就OK了,SQL示意代码如下:   [crayon-6620d34081437986486037/]   上面我们使得WHERE恒真,所以该查询中WHERE已经不起作用了,其查询结果等同于以下SQL语句。   [crayon-6620d3408143c312949853/]   SQL查询代码实现如下:   [crayon-6620d3408143d045078179/]   现在我们要通过页面请求的方式,让数据库执行我们的SQL语句,我们要在URL中嵌入恶意表达式1=1(或2=2等等),如下URL所示: http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1'or'1'='1   等效SQL语句如下:   [crayon-6620d3408143e175613836/] 图3 job表查询结果       现在我们把job表中的所有数据都查询出来了,仅仅通过一个简单的恒真表达式就可以进行了一次简单的攻击。 虽然我们把job表的数据都查询出来了,但数据并没有太大的价值,由于我们把该表临时命名为job表,所以接着我们要找出该表真正表名。 首先我们假设表名就是job,然后输入以下URL: http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1'or 1=(select count(*) from job)--   等效SQL语句如下:   [crayon-6620d3408143f752354036/]   图4 job表查询结果       当我们输入了以上URL后,结果服务器返回我们错误信息,这证明了我们的假设是错误的,那我们该感觉到挫败吗?不,其实这里返回了很多信息,首先它证明了该表名不是job,而且它还告诉我们后台数据库是SQL Server,不是MySQL或Oracle,这也设计一个漏洞把错误信息直接返回给了用户。 接下假定表名是jobs,然后输入以下URL: http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1'or1=(select count(*) from jobs) --   等效SQL语句如下:   [crayon-6620d34081440779696820/] 图5 job表查询结果      现在证明了该表名是jobs,这可以迈向成功的一大步,由于我们知道了表名就可以对该表进行增删改操作了,而且我们还可以猜测出更多的表对它们作出修改,一旦修改成功那么这将是一场灾难。 现在大家已经对SQL Injection的攻击有了初步的了解了,接下让我们学习如何防止SQL Injection。 总的来说有以下几点: 1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。 2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。 4.不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息。 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信息存放在独立的表中。   通过正则表达校验用户输入 首先我们可以通过正则表达式校验用户输入数据中是包含:对单引号和双"-"进行转换等字符。 然后继续校验输入数据中是否包含SQL语句的保留字,如:WHERE,EXEC,DROP等。 现在让我们编写正则表达式来