从 “漏洞” 及 “攻击” 上看安全建设

在这个中秋期间,大家都在团圆过中秋,而我们团队的小伙伴在忙碌加班搞比赛,从构思到题目开发完成仅仅用了一天的时间,有的甚至加班到凌晨两点,下图是设计师完成海报发给我的时间:

这是个题外话,为了这个比赛,团队的小伙伴都付出了很多,也很辛苦,出题不易,且做且珍惜,总共五关,现在已经更新了两关的通过秘籍,第四关是有关应急响应的题目,目前还无人突破,现在已经更新了一个小提示,欢迎大家继续测试。

由于时间紧任务重,我们的前端小组组长,开发的前端题目,题目的目标是考察 xss+csrf 的组合攻击方式,具体想法可以看《原创 前端题目怎么就成了一个 sql 注入的题》,在完成题目,复现成功之后,就直接上线,我认为这个考点还是比较难的,但是上线没一会,就被秒杀了,我还在想,小伙伴们的实力好强,后来通过反馈才知道,是存在万能密码漏洞。

随后我查看了源代码,登录函数如下:

functionlogin($username,$password)
{
 //登录
 $config=config();
 $conn=newMMysql($config);
 $password=md5($password);
 $sql="select * from user where `username`='$username' and `password`='$password'";
 $res=$conn->doSql($sql);
 return$res;
}

这是一个典型的造成万能密码漏洞的代码,也就是我们的前端小组长在开发过程中为了赶时间赶进度,没有考虑 sql 注入的问题,所有功能均未考虑 sql 注入的问题,所以原本是考察前端安全的题目,变成了最简单的 SQL 注入题,被秒杀也是正常。

所以漏洞怎么来的?

这是一个典型的案例,第一个原因是时间紧任务重,为了完成功能根本来不及考虑安全问题。第二点是前端小组长可能对于 SQL 注入漏洞研究不深,没有考虑这方面的威胁。

后续我们对代码做了简单的处理,增加了一点防御措施,对输入的用户名进行了过滤,函数如下:

functionsec($string)
{
   $keyword="or|select| |and|union|'"; 
   $arr=explode( '|', $keyword); 
   $result=str_ireplace( $arr, '', strtolower($string) ); 
   return$result;
}

使用上面的函数对用户的输入进行过滤,虽然不能完全解决注入问题,但是已经增加了注入的难度了,已经可以让大家的注意力到其他的地方而不是注入,过了不久,有人说可以通过越权拿到 key,解决了一个问题,又来一个,权限控制不严格,存在越权问题。

这就是一个典型的救火过程,在设计开发之初没有考虑安全问题,开发出来的系统,出现安全问题然后解决问题,新的问题出现,继续解决新的问题,问题层出不穷,救火不断。所以在系统开发之初,就把安全考虑进去,一定程度上可以解决一直处于被动的局面。

漏洞原本是不存在的,如果系统开发出来,所有用户都按照规定情境在使用,那么也不会有任何安全问题,但事与愿违,就是有那么一票人不愿意遵守规则,喜欢挑刺,找麻烦,让正常使用的系统不正常,让原本安全的系统不安全,所以能让系统处于不安全状态的因素都可以被叫做漏洞。

那么,攻击又是怎么回事?

我们的系统本身是一个 ctf 题目,生产出来就是让大家来攻击的,所以这个系统的所有安全问题就一一暴露出来,如果这个系统无人问津,我们也不会知道还存在预留之外的漏洞,所以攻击可以让安全问题浮现,这个前提是攻击者会主动把他发现的安全问题告诉你。国内各大 SRC 平台的作用就是吸引更多的白帽子对自己的系统进行安全测试,找出可能对系统造成威胁的漏洞,让自己的系统更安全。

对于企业安全来说,很多企业自我感觉良好,觉得没出过事,自己很安全,其实这是一个假象,因为没有人去攻击你,所以你没有出事,并不是因为企业安全做的好,只能说攻击你的价值不大,不值得攻击而已,如果攻击你所获得的价值足够大,你所面临的攻击水平也足够强,攻击和防御是相辅相成的。如果可以用低级的攻击手段突破你的防御,那么攻击者也不会使用核武器来搞你,杀鸡焉用牛刀!

当然,我们想要的攻击是来自一群靠谱的人,而不是那些别有用心的人。白帽子的攻击可以让你的系统更安全,因为他会把安全问题提交给你,让你即使修复;黑客的攻击能让你的企业蒙受损失,因为他的攻击是有目的性的,比如盗取数据、安装勒索病毒、利用系统资源挖矿等。所以我们要通过白帽子的攻击提升防御力来抵制黑客的攻击。

总结

通过这次小比赛有了一些小感想,在系统开发之初就把所有可能存在的安全问题考虑进去,那么就可以在一定程度上避免一直处于救火的被动局面,也就是企业推行 S-SDLC 的必要性,而且在上线之前一定要做全面的安全测试,不能因为赶时间着急上线而把带病的系统发布出去,从而导致不可挽回的损失。

对于建设 SRC ,可以让广大白帽子来对企业的外围系统做安全测试,这样会带来很多攻击者和攻击行为,但是攻击可以增强我们的防御力,让看得见的人攻击你总比在背地里攻击你的更安全吧。有些人可能会认为,原来系统没啥事,搞了 SRC 之后被搞了怎么办?所以在建设 SRC 的之前也需要做很多事情,比如别人攻击之后的所有操作是否有记录,是否在可控范围之内,在白帽子提交完漏洞之后能够及时修复,如果自己内部提交的漏洞都无法及时修复,建设 SRC 的效果也达不到。

考虑的可能比较片面,欢迎大家留言拍砖。目前比赛还没有结束,还请大家继续玩玩,应急响应小组长的题目还是挺有意思的,不要浪费小伙伴的苦心。想要加入应急响应小组的朋友突破这个题目就可以加入了,通过技术会友不是你想要的吗?

应急响应的题目增加了一个提示如下:

http://zuohaoyingjixiangyinghennan.xazlsec.com/Remind.html

原文发布于微信公众号 - 信安之路(xazlsec)

原文发表时间:2018-09-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏漏斗社区

专属| USPS站点紧急修复漏洞

Rowhammer 漏洞是指 DRAM 临近内存单元之间电子的互相影响,当重复访问特定内存位置数百万次后,攻击者可以让该位置的值从 0 变成 1,或从 1 变成...

11520
来自专栏企鹅号快讯

Python入门的准备工作

Python是近几年很火的一款软件,斑点鱼在刚开始找工作时就觉得Python很有用,所以在Codecademy和慕课网两个网站,把Python的框架都学了一遍。...

25490
来自专栏子勰随笔

关于终端设备的设备唯一性的那些事之IMEI

1.4K40
来自专栏BestSDK

下“小片”的群众注意了,新型“迅雷种子”病毒已感染超2万台PC

种子是个神奇的东西。 小时候我得知,发芽的种子能掀翻最坚硬的岩石; 长大后我发现,种子能让我赢来众多网友的祝福,哪怕素未谋面。 ? 【图片来自网络】 种子是如此...

38550
来自专栏FreeBuf

ShadowBrokers 又搞事!每月支付 400 万美元,多获得两份新泄露的文件,你会买吗?

今年 4 月份,臭名昭著的 ShadowBrokers 入侵 NSA,窃取到 Equation Group 研发的一系列工具,并将这些 exploit 以付费订...

236100
来自专栏安恒信息

Black Hat 2017 | Day2看点:终端安全产品强势回归,勒索病毒惹的祸?

白帽子I黑帽子I乐趣 Black Hat总会给我们带来不一样的惊喜 ? BLACK HAT 不知不觉中,两天的主题演讲就这么结束了。安恒信息特派到Black...

27940
来自专栏知晓程序

加深友谊全靠它!快用这个小程序,开启你和小姐姐的旅途吧

春节假期降至,很多人都会选择这时和几个好友一起去旅游,在放松心情、缓解压力之余还能加深友谊。

9840
来自专栏非著名程序员

由勒索病毒而引起的一些想法和看法

从5月12日晚,勒索病毒开始慢慢爆发,到今天至此更是快速蔓延,席卷全球。全球近100个国家的不计其数的电脑受到一个叫做“WannaCry”勒索病毒的侵扰。到目前...

25050
来自专栏菜鸟程序员

Android勒索软件黑产研究:恶意软件一键生成器

27230
来自专栏FreeBuf

针对一伙WordPress犯罪团伙的深度技术分析

本文阐述了如何对一个黑产团伙追根溯源。据Wordfence监控数据显示,这个被称为JerseyShore的团伙的主要攻击目标为金融和假冒体育服装类网站。通过本文...

21260

扫码关注云+社区

领取腾讯云代金券