在近期的渗透测试项目中,在短信平台相关功能都出现了一些问题,现对渗透过程中发现,及wooyun上出现的相关短信平台的几类问题做个整理。
一、短信发送无频率限制
通过wooyun上搜索可见,该类漏洞是最为常见的。
漏洞相关链接:
万网发验证信息,无限时。无限次数形成短信轰炸 http://www.wooyun.org/bugs/wooyun-2010-07592
盛大网络短信ddos攻击漏洞 http://www.wooyun.org/bugs/wooyun-2010-02773
漏洞成因: 对发送信息功能调用未做任何限制
漏洞危害:
1、可针对某用户短时间内发送大量垃圾短信,造成短信轰炸攻击;
2、对于企业,每发一条短信,都是需要向运营商交付一些费用,尽管比个人用户费用低,但是一旦被恶意利用大量发送后,造成较大的直接经济损失。
漏洞修补:
1、限定同一手机号在一时间段内发送次数,如每分钟发送1次,具体落实需结合用户体验综合考虑;
2、使用强壮的验证码机制。
补充:曾在测试中发现某客户的验证码有效期为2分钟,即2分钟内无需修改验证码直接成功回放请求包,同样可造成短信炸弹工具。因此,务必保证验证码的强壮型,并采用一次一用机制。
二、短信发送内容来自客户端
这类漏洞一般不直观,直接由用户输入来定义短信内容的问题确实没遇到过,这里的漏洞是把短信内容放在的POST表单中,从页面上无法发现,需要抓包分析才能看到。
相关漏洞:
(知道这漏洞是哪家的同学也请嘘,咱不讨论它是谁的,另漏洞已经修补了)
某系统可以在WEB页面上选择手机品牌和型号,填入手机号码可发送下载地址至手机,具体操作界面如下图:
抓包查看该POST表单的内容
正常情况下,用户收到的短信即为客户端提交的内容:“var1下载:var2”,var1和var2分别为手机品牌和手机型号。
例如“NOKIA
N97下载:wap.abc.com.cn/abc.sisx”。
由于短信内容为客户端定义的,即修改var1=NULL,var2=“恭喜您中奖,请登陆XXX领取”。此时目标手机收到短信为:“下载:恭喜您中奖,请登陆XXX领取”。最终造成钓鱼攻击。
漏洞原因:
直接原因是客户端可控制短信内容。但更深层次去追究,实际上是开发人员追求性能和效率,把重要的操作分发给客户端去做,而忽视其中安全问题导致的,这也是开发人员考虑问题重心偏移和安全从业者不同的体现。类似,为追求性能而导致有意思的漏洞:sohu邮箱任意用户密码重置 http://www.wooyun.org/bugs/wooyun-2010-04728
漏洞危害:
该类漏洞一般被用户钓鱼欺诈,直接受害者为最终用户,也使得企业方遭受名誉损失。
漏洞修补:
短信发送文字内容应由服务器来定义,客户端应触碰不到。可以制定为键-值对,客户端只能选择键,然后在服务端匹配到键相应的值,再把值内容发送给用户手机。
三、手机验证过程中pin码可爆破
这类问题常出现在“密码找回”、“绑定手机”等功能处。正常工作流程一般为在页面提交手机号,然后短信平台会发送一个pin码给手机,再将pin码提交回给服务器,完成身份认证或绑定。
相关漏洞:
微信任意用户密码修改漏洞 http://www.wooyun.org/bugs/wooyun-2010-011720
该漏洞在爆破pin码阶段相当精彩,先赞一个。
only_guest大牛说了:
因此,这类漏洞成因:
1、pin码太弱,短位的纯数字组合,极易爆破;
2、高频由同一源发类似请求包,这么像CC攻击了,服务器总该做点反应吧。
漏洞危害:
需根据实际功能来定,大则如漏洞标题,任意用户密码修改。且即便看似难以利用,在大牛手上将会用神奇的构思,来证明漏洞的危害。近期,pysolve大牛就在做这样的事情。
漏洞修复:
使用长度和复杂性足够强壮的Pin码,防止被爆破。
四、短信平台自身的问题
先不论短信平台的应用层面的漏洞,我在测试过程中遇到的问题是:弱口令!直接登陆到短信平台。
漏洞成因:
维护人员的安全意识问题。
该短信平台只能通过IP访问,未绑定URL。我知晓其存在是由于客户提供了资产列表。站在客户的视角,外部用户难以发现短信平台入口,因此并不重视其安全性。但后续我发现通过Google hack也是能找到这个短信平台的。且有数字浏览器如此强大的存在,怎么可能产生互联网孤岛呢?
另外短信平台一般是由第三方提供,企业做为使用者难以保证其安全性,因此也可能存在常规WEB应用漏洞。
漏洞危害:
短信平台的操作权限一旦被恶意攻击者获取,上述提及的几类漏洞危害都有可能导致。
漏洞修复:
站在企业的角度,对于这样一个第三方系统,进行代码审计、渗透测试,成本投入都略显过大,因此对于短信平台,建议使用最直接、最暴力也是我认为最合适的方案——制定合适的ACL,限定仅内网特定用户访问,如确实有外网用户需要使用系统,也需采用VPN接入。
总结:
以上四类问题是我遇到和见到的,但是,由于我能力和视野有限,考虑得肯定是不够全面的,也请有经验的大牛给予指点。