当前位置: 首页 > news >正文

APP应用渗透测试思路

今天继续给大家介绍渗透测试相关知识,本文主要内容是APP应用渗透测试思路。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、手机模拟器安装

对Android APP进行渗透测试,我们通常需要安装一款电脑上的手机模拟器,在这里我使用的是逍遥模拟器,下载URL为:https://www.xyaz.cn/
主页如下所示:
在这里插入图片描述
下载后运行页面如下所示:
在这里插入图片描述

二、抓包测试

对APP进行渗透测试,一个典型的思路就是抓包。
当前,相当多的手机应用是基于http/https协议研发的,我们在抓取到手机的数据包后,就可以把针对APP的渗透测试转化为针对指定URL的渗透测试。
抓包常用的工具有很多,在这里我们仅介绍以下几种比较经典且实用的:
1、BurpSuite
BurpSuite是一款功能强大、简单好用的抓包工具,BurpSuite支持的功能众多,且还提供了插件可以扩展各种功能。
BurpSuite不仅可以抓取指定的数据包,而且还可以修改数据包内容。其支持记录数据包历史数据,并且还提供搜索功能。
在上文手机数据包抓包详解中我们讲解了如何抓取手机的数据包,而在上文BurpSuite抓取https数据包配置中我们则讲解了如何抓取手机的https数据包。
2、Charles
Charles的数据包抓取配置与BurpSuite配置相似,它对数据包抓取后会按照网址进行分类,并且在产生新的数据时对应的网址会进行高亮提示,这可以方便我们将指定APP与其数据包联系起来。
3、抓包精灵
抓包精灵是安装在手机上的一款APP,安装后就可以抓取手机的数据包了,抓取到的数据包如下所示:
在这里插入图片描述
在这里插入图片描述
4、wireshark
wireshark是一款经典的抓包工具,与以上三款抓包工具相比,wireshark的优势在于它可以抓取非http/https类型的数据包。

三、反编译测试

除了对目标APP进行抓包外,我们还可以对指定APP进行反编译测试。对熟悉反编译和开发的人员而言,反编译往往能够获得更多的信息。但是对于不是很熟悉开发和反编译的人员而言,我们还有一个非常方便的工具,可以帮助我们一键提取目标APP的URL。该工具目前托管在Github平台上,URL链接为:https://github.com/TheKingOfDuck/ApkAnalyser//releases/download/1.0/apkAnalyser.zip。大家可以自行下载。
该工具由Python编写而成,运行需要下载apkutils模块,下载命令为:

pip install apkutils

下载后结果如下所示:
在这里插入图片描述
完成上述工作后,我们把要反编译的APK文件放到该工具的apps子目录下,然后运行该Python文件,运行结果如下所示:
在这里插入图片描述
在程序运行结束后,在result目录下,就会出现对该APK文件的解析结果,如下所示:
在这里插入图片描述

四、注意事项

有时反编译提取出的URL和抓包抓到的URL并不全面,因此我们在进行渗透测试时,可以综合以上两种方式进行测试。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

相关文章:

  • 微信小程序框架
  • 网络编程 udp/ip协议 c/s模型
  • 【数据结构】C语言实现链表(单链表部分)
  • JAVA练习8
  • 聊聊最适合程序员的画图工具
  • JAVA数据结构篇--12理解LinkedHashSetTreeSet
  • DR_CAN基尔霍夫电路题解法【自留用】
  • 21级数据结构考前模拟题
  • 剑指offer----C语言版----第六天
  • Qt音视频开发08-ffmpeg内核优化(极速打开/超时回调/实时响应)
  • 网络安全一哥的奇安信发布了全球高级可持续威胁年度报告 值得学习
  • 13---SpringBoot整合JWT,实现登录和拦截
  • 4366. 上课睡觉
  • vue后台系统管理项目-echarts柱状图实现订单统计
  • 2022年博客之星排行榜 日榜 2023-01-01 博客之星总榜
  • __proto__ 和 prototype的关系
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CentOS 7 防火墙操作
  • ECMAScript入门(七)--Module语法
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • MySQL用户中的%到底包不包括localhost?
  • Python利用正则抓取网页内容保存到本地
  • React组件设计模式(一)
  • TypeScript迭代器
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Web标准制定过程
  • 排序算法学习笔记
  • 前言-如何学习区块链
  • 为什么要用IPython/Jupyter?
  • 小程序01:wepy框架整合iview webapp UI
  • 2017年360最后一道编程题
  • 函数计算新功能-----支持C#函数
  • # C++之functional库用法整理
  • $.ajax()方法详解
  • $.each()与$(selector).each()
  • (+4)2.2UML建模图
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (zt)最盛行的警世狂言(爆笑)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (七)理解angular中的module和injector,即依赖注入
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET MVC第三章、三种传值方式
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net环境下的缓存技术介绍
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET微信公众号开发-2.0创建自定义菜单
  • /bin/rm: 参数列表过长"的解决办法
  • @RequestMapping-占位符映射
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [20171101]rman to destination.txt
  • [android] 看博客学习hashCode()和equals()