0x00 背景
移动互联网创业是当下最流行的行业,那么O2O的移动互联网是2015年最受投资者青睐的发展方向。做为一个安全工作者,很想用业界安全的思维方式去了解这个行业,想知道到底在这个快速发展行业对信息安全有多少投入,怎么应付数以千计的白帽子攻击和检测。
那么,针对这种来自互联网的安全探测,其实有很多网站在做,可以叫一个新鲜名词:众测。比较知名的:漏洞盒子(freebuf)、乌云(wooyun),当然也有二线的“明星“团队,例如:T00ls、80sec、90sec、f4ck等。那么我们如何防止
黑客的渗透测试?光是靠众测平台去完善还是不成,如果可以还是建立基于公司业务安全的Team来完成。
下面根据自己的一点小小的经验,谈一下移动互联网安全的一点思路好方法论。
0x01 方法论
那么,如何分析移动互联网O2OApp网站安全呢?我是从以下几点考虑的。
(1)通过网络抓包分析其App通讯,是否存在数据传输的明文漏洞
(2)App应用
服务器端用户接口是否存在
sql Injection漏洞,包括盲注
(3)查找App程序本地敏感信息泄露
(4)反编译ipa&apk程序,寻找相关加解密算法等
(5)从业务安全的角度上分析移动App业务风险
a) iOS&Android App用户注册接口分析
b) iOS&Android App登陆接口分析,包含token验证、忘记密码验证等
c) iOS&Android App 存储型
xss漏洞
d) iOS&Android App订单支付接口漏洞
e) … ->其实每一个接口都要检测。
今天着重向大家介绍一下 App应用程序服务器端用户接口是否存在SQL injection漏洞。
0x02 测试流程
测试环境搭建:
KaliLinux 环境
使用软件工具:burpsuite/ sqlmap
为什么要如此设计测试环境?
原因很简单,普通的扫描工具如:Acunetix Web Vulnerability Scanner 在提交自己的user-Agent的时候,App服务器会以非iOS&AndroidApp程序连接拒绝你申请。直接关闭你的连接。
采用本地log的方式做SQL Injection的检测。
直接访问服务器 PC浏览器 user-Agent是被拒绝的。
测试用例:藏趣App
当然前期最好先做一下网络抓包分析:
经过分析得出以下结论:
使用的第三方SDK包含:
easemob SDK (这个SDK有意思 是让App具备聊天的功能SDK,快速开发很适用)
umeng SDK (做统计的,看你的App安装存活情况)
sina weibo SDK (注册用的,为了获得更多的粉丝设计的)
微信注册接口 SDK(注册用的,为了获得更多的粉丝设计的)
ShareSDK (分享用的,为了获得更多的粉丝设计的)
Host: 182.92.228.160:80
Connection: keep-alive
Content-Type: application/json
User-Agent: Easemob-SDK(iOS) 2.1.5
Content-Length: 89
Accept-Encoding: gzip
Connection: keep-alive
{"password":"F4ADA2FE0822BDB1317122088434699A","username":"4891","grant_type":"password"}
密码部分不是通用的AES\MD5\base64等算法。只能反编译破解,查找。
具体测试步骤:
(1)测试工具配置准备
Kali Linux IP:192.168.199.128
A、启动burp suite设置本地代理模式
B、设置代理请求log存储模式
下一步:手工的操作App客户端,尽量把所有的用户接口都走一遍。
然后查看一下cangqu.txt文件中是否有存储的log
最好运行sqlmap神器扫描本地文件。
sqlmap -r "/root/cangqu.txt" --threads=3 --risk=3 --level=3 --random-agent --time-sec=15 --timeout=15 --beep –dbs
当然了,最终的扫描结果令人遗憾,没有找到SQLinjection的漏洞。