微信号:grzlwx

介绍:光荣之路官方资讯

网站漏洞排查实战分析(二)

2015-10-11 22:00 光荣之路


废弃的API导致的漏洞

现在很多网站都会制作APP版本,在测试此网站的APP后发现和服务端的交互参数都进行了签名+BASE64,我们知道安卓的应用程序是可以反编译的,经过反编译可以查看到:

1、公钥私钥都写在了Java代码里,使用公钥来加密要发送给服务端的数据,使用私钥来解密从服务端返回的数据,这样就可以通过翻译服务端返回的数据来熟悉API也可以绕过客户端直接发送请求给服务端。

2、了解了所有API后发现代码里有一个隐藏API没有用到,经过测试这是一个“内部使用”的API,可以通过这个API把某个客户端换绑到账户并且无需进行其它验证。至此整个网站的账号安全都因为这个点失守了。

这个过程看上去很简单,但要发现这个漏洞是经过了大量的尝试的,要先熟悉整个操作流程,逐个尝试是否有逻辑漏洞和其它突破点,每一个漏洞都是不同的不是每一个APP都会有隐藏的内部API,每一次可能的突破往往都是基于非常规思维。

那么改进方法也很简单,把KEY值以打散方式存储于SO文件中,最好协议的加密解密全采用C编写,在Java层对于协议都是透明的。

总结

可别小看这几个漏洞,出现这样的漏洞意味着黑客可以随便修改用户的邮箱、手机、密码、从而绕过各种二次验证,把账号完全掌握在自己手里。如果扫号的 人手头有1000万个账号库,扫到密正账号50万个,想想也吓人。从这几点我觉得可以总结一下,对于网站的安全始终要记住几点:

1、木桶理论,整个网站99%的地方都很安全是不够的,如果网站的账户体系是打通的,那么只要有1%的地方有问题,其它99%的安全都是白搭,找漏洞的人往往也最喜欢找(由初级程序员开发的)边缘模块下手。

2、不要信任客户端的任何数据,对于每一项由客户端提交的数据我们都应该当做是用户的输入(哪怕这个数据本来就是从服务端读取的),进行严格的验证。

3、对于已经实现的逻辑要思考一下是不是有非常规的路径,是否有可以绕过的逻辑。

4、做好请求的频度监控以及控制,如果发现某些请求访问量徒增可能就会是一个漏洞点在被别人爆破。

5、重要的功能尽量不要去走AJAX,不是说AJAX有什么问题,而是AJAX容易让人放松警惕。如果可以的话让(AJAX)请求或API调用变得完全没有意义,比如使用统一的通用的AJAX API提供接口,比如http://passport.xxx.com/ajax?token=xxx,token是在服务端事先生成的对应了某个操作逻辑,使用后则失效,即使是相同的API token也是动态的(而不是为每一个业务分配一个具体的URL,这样只根据token根本就不知道是哪个业务,如果别人不能熟悉你的流程当然也很难去破解逻辑漏洞)

6、不苛求用户有很强的安全意识,作为网站的开发要主动保护用户的密码等敏感信息,提示用户经常修改密码,并为网站建立安全分析体系,对用户的操作进行安全评级,如有必要对用户的登录请求进行驳回。

(完)

作者:lovecindywang

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

(作者:lovecindywang 来源:http://www.cnblogs.com/lovecindywang/p/4554376.html)


  
             
  
             
  
             
  
            
  
            
  
            
  
            
  
            
  
            
  
            
  
            
  
            
  
            

感谢作者,传播测试知识、技能与正能量!
欢迎来稿,分享你的测试生活!735821166@qq.com

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 AlphaGo赢了第一局!阿里专家解读下“AI中的语音识别” 原创馆里英雄为你而战 - 腾讯ISUX 大数据技术Hadoop面试题,看看你能答对多少?答案在后面 在PHP项目中使用MySql与MongoDb的一些对比 【创意】9个令人尖叫的环保品牌创意