业务逻辑漏洞探索之敏感信息泄露

小张通过某网购买了一张从北京到广州的飞机票,没多久竟收到一条诈骗短信,短信内容中有他的航班信息、机场名称、航班号等,所有信息全部属实。小张认为,自己的手机号及确切的航班信息只有某网和该航空公司知道,因而推断一定是其中一个机构泄露了自己的个人信息。可事实真如他所想的这样吗?

 

个人信息泄露的主要途径包括经营者未经本人同意收集个人信息,经营者或不法分子故意泄露、出售或者非法向他人提供个人信息,网络服务系统存有漏洞,不法分子通过木马病毒、钓鱼网站等手段盗取、骗取个人信息等。所以小张推断是某网或者航空公司泄露的信息并不一定准确,也可能是其他渠道造成的。

今天我们就来学习一下业务逻辑漏洞探索之敏感信息泄露的相关内容,希望对大家有所帮助。

敏感信息是业务系统中保密性要求较高的数据,通常包括系统敏感信息和引用敏感信息。系统敏感信息指的是业务系统本身的基础环境信息,比如系统信息,中间件版本之类的,一旦泄露可能会协助攻击者提供更多的攻击途径和方法;应用敏感信息指的是应用中存储的重要业务数据,比如用户注册时提供的一些信息,身份证、姓名、电话号码等,泄露后可能会对应用的用户带来危害,比方说去年12月发生的万豪酒店敏感信息泄露事件。

注:本文中提供的例子均来自网络已公开测试的例子,仅供参考。

我们可以分为以下几种场景进行测试:

 

敏感信息传输

在业务流程中,许多敏感信息需要从客户端提交到服务端,如果没有采取合理的加密措施,在提交到服务端的过程中可能被第三方截取,从而产生信息泄露风险。

举个例子:

a) 某系统修改密码的时候,发现通过JSON进行传输的过程中,可以看到明文的新旧密码。

 

敏感信息显示

通常情况下应用敏感信息在客户端显示时需要进行脱敏,密码等部分用户信息是不应该在客户端显示的,如果程序设计时在这部分没有进行很好的处理,就会产生敏感信息泄露漏洞。

举个例子:

a) 某系统登录页面存在缺陷,导致敏感信息泄露。

 

b) 查看源代码,可看见登录密码。

 

 

c) 使用admin/gohigh1234可使用管理员权限登录,可查看各种信息。

 

 

客户端代码注释

客户端代码注释有可能泄露系统敏感信息,对一些核心代码进行技术注释也有可能会帮助攻击者解读代码,为攻击者提供便利,通常要求客户端代码不能包含注释,尤其是不能包含核心代码的技术注释。

举个例子:

a) 某系统智能门禁管理系统存在逻辑漏洞导致上万用户敏感信息泄露。

 

 

b) 查看源代码发现有一段注释代码,发现存在用户名和登录密码及请求路径。

 

 

c) 登录后发现有大量的客户敏感信息,包含身份证、业主卡号等等。

 

 

 

错误处理测试

不安全的错误处理方法可能泄露系统或应用的敏感信息,手工测试的过程中应留意各类错误信息,如果发现错误信息中包含系统或应用敏感信息,则进行记录。

举个例子:

某平台sqlserver没有对错误进行正确的处理,将详细的错误信息展示出来,暴露出数据库列名。

 

 

修复建议

以上就是对于敏感信息泄露的一些总结,越来越频发的用户信息泄露事件也让我们不得不反思,如何在大数据时代,保护我们的敏感信息。

以下是对于敏感信息泄露防护的建议:

1、应根据业务特点定义出系统存储的敏感信息。

2、敏感信息在存储、传输、显示时应进行安全处理,可采用的处理方式为加密或脱敏。

3、敏感信息不应使用GET方式提交到服务器。

4、用户密码为最高级别的敏感信息,在存储、传输、显示时都必须加密。

5、需要选择可靠的加密算法,优先选择不对称加密算法,不得使用BASE64等编码方式进行“加密”。

6、对于一些系统默认报错页面应重新进行设计自定义报错页面,以免暴露系统敏感信息。

posted @ 2019-03-21 18:39  i春秋  阅读(2746)  评论(0编辑  收藏  举报