今天是干货分享——我们来谈谈APP的安全性测试!
APP的安全性测试其实也是有点技术含量的测试,那么APP安全性测试的工具有哪些呢?
移动 App 的广泛应用,必然伴随着新的应用安全威胁。这些攻击与以前经典的 web app 无关。据 NowSecure 的最新研究表明,有 25% 的 App 包含高风险漏洞,常见的安全漏洞如下:
●跨站脚本攻击(XSS)
●用户敏感数据(IMEI、GPS、MAC 地址、电子邮件等)泄露
● SQL 注入
●网络钓鱼攻击
●数据加密缺失
●OS 命令注入
●恶意软件
●任意代码执行
如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。
那么今天我们还是先开始谈谈Drozer这款APP安全性测试工具吧!一般只要把一种安全性测试工具弄透,剩下来的就很简单了!
Drozer是由 MWR InfoSecurity 开发的 App 安全测试框架。它可以帮助开发者确定Android 设备中的安全漏洞。
特点:
*它是一个开源工具,可同时支持真实的 Android 设备和模拟器;
·*通过自动化和开展复杂活动,它只需很少时间即可评估与 Android 安全相关的复杂性;
·*它支持 Android 平台,并在 Android 设备自身上执行启用 Java 的代码
对于这款安全性测试工具来说,周老师是非常推崇的。
那么这款工具具体怎么用的呢?
首先是搭建drozer的运行环境:
01 Dorzer安装
安装Dorzer需要用到如下两个工具:(如以前安装过mercury,这两个工具应该已经有了)
★Java Runtime Environment (JRE) or Java Development Kit (JDK)
★ Android SDK
下载安装后需要把adb和java工具路径写入PATH环境变量中
1、下载:打开此下载地址,windows环境选择drozer (Windows Installer)并下载
https://www.mwrinfosecurity.com/products/drozer/community-edition/
2、安装:解压zip文件并点击setup安装,一路默认安装就行;它会自动安装到C:\drozer文件夹下。
3、检测是否安装成功:
打开cmd窗口,键入C:\drozer\drozer.bat , 如出现如下提示说明安装成功。
4、安装agent客户端到手机:
确保手机debug模式开启,通过USB连接到PC上,通过如下命令安装agent.apk客户端。
adb install agent.apk
安装完成后启动drozerAgent
点击右下角“开启”按钮,开启Agent
5、建立session连接:
保持手机与PC通过USB连接正常,然后通过cmd窗口键入如下命令
adb forward tcp:31415 tcp:31415
drozer console connect 或 C:\drozer\drozer.bat console connect(注:因为默认是安装在c盘的,目的是到根目录进行执行drozer.bat)
出现android头像及:
dz>
命令提示符表示连接成功
02 渗透测试
Drozer的环境搭建完成后,我们就开始做下一步的测试了。下面我就开始正式用drozer进行安全性的渗透测试了:
第一步:#dz> run app.package.list
使用这个命令显示出手机中的所有包名:明确攻击对象
一般来说都有乱码。
如果手机的包很多的话:
使用”-f”选项搜索特定的包名:
#dz> run app.package.list -f (package name)
第二步:在搜索到了攻击对象之后,我们就开始了解攻击对象的详细信息。
使用以下命令查看制定包的详细信息,毕竟知己知彼百战百胜。
#dz> run http://app.package.info -a (package name)
第三步:识别攻击面
一般攻击面有四个方面:一个控件安全级别面,一个是广播接收面,第三个是内容暴露面,最后一个是服务暴露面
run app.package.attacksurface (package name)
然后我们根据暴露的面进行攻击(有哪些面我们就攻击哪些面),说白了就是有安全漏洞,我们就攻击那些漏洞
比如上图:四个层面都可以攻击
第四步:查看详细的攻击面
run http://app.activity.info -a (package name)
run http://app.broadcast.info -a (package name)
run http://app.provider.info -a (package name)
run http://app.service.info -a (package name)
第五步:根据具体的攻击面进行攻击
启动暴露的activity
run app.activity.start--component (package name) (component name)
启动暴露的broadcast
run app.broadcast.start --component (package name) (component name)
启动暴露的provider
run app.provider.query--content://com.mwr.example.sieve.DBContentProvider/Passwords
启动暴露的service
run app.service.start --component (package name) (component name)
经过这些操作之后我们就成功渗透进入app的内部了。后面可以根据实际情况继续深入。
比如:我们的sql注入就属于内容攻击的层面,这个时候我们在明确了内容暴露之后进行如下的攻击:
9、服务交互
到目前为止,我们几乎破坏了筛子。我们已经提取了用户的主密码,以及一些与他们的服务密码相关的密码文本。这很好,我们可以通过它导出的服务完全妥协。
最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】
软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
终于成功上岸字节软件测试岗,多亏刷了这1000+道大厂面试真题,如果你还在面试,建议你试试
涵盖以下这些面试题板块:
1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础