安全爱好者研究的往往是app的本地安全,比如远控、应用破解、信息窃取等等,大多人还没有关注到app服务端的安全问题,于是在这块的安全漏洞非常多。

移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起。移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入、文件上传、中间件/server漏洞等,但是由于部分app不是直接嵌入网页在app中,而是使用的api接口返回josn数据,导致扫描器爬虫无法爬取链接。

下图是抓的糗事百科糗事列表,contet字段内容与我无关 -_-|||

那么我尝试去找app服务端的漏洞,目前想到的两种方法:

1.反编译APP
2.http[s]代理抓包

那么有人应该会提出问题,这两种方式拿到的链接都是零零散散的,也不好找漏洞啊,我这边的利用方式是把所有抓取的链接直接提交任务到多引擎web漏洞扫描器,扫描器可以批量扫SQL注入等等,其实除了这些漏洞,还有很多可以利用的信息。

一、反编译APP

有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。

1. dex2jar反编译

工具:dex2jar+jdgui

方法:

a. 修改apk为zip扩展名

b. 解压出classes.dex文件

c. 使用dex2jar反编译(dex2jar.bat classes.dex)

最后反编译出来的源码如下图。虽然部分类被配置proguard.cfg 混淆了,但是还是可以利用的。

2. apktool反编译

工具:apktool

这个工具比较简单,直接(apktool d apkfile)就可以反编译apk文件,反编译出来的东西为smali反汇编代码、res资源文件、assets配置文件、lib库文件,我们可以直接搜索smali文件和资源文件来查找链接等。

利用app查找网站真实IP

除了app服务端的漏洞,还有一个比较好玩的利用方式,通过收集app里面的子域名ip来寻找目标网站的真实IP,根据经验,大多app的接口都没有使用cdn等服务。

糗事百科真实IP

二、http[s]代理抓包

这个方法利用在移动设备上设置代理,通过人工操作使app与服务端交互,

步骤:

a. 在抓包机器上开启代理,测试可以用burp,需要自动化提交扫描任务可以自己写一个代理程序,移动设备设置代理服务器。

b. 在移动设备上操作app,代理端抓取如下。

总结:

整个思路已经很清晰,那么其实要做的就是让这个过程自动化,反编译之后有一个问题,url不一定完整,很多URL都是拼接起来的,我尝试写一套分析引擎,自动化反编译,然后通过对源码的分析,拼接完整的api url,再进行漏洞扫描。

下图是一个dome,后面准备用python来写,放到服务器上。

移动APP安全在渗透测试中的应用的更多相关文章

  1. 反向代理在Web渗透测试中的运用

    在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...

  2. python多线程在渗透测试中的应用

    难易程度:★★★ 阅读点:python;web安全; 文章作者:xiaoye 文章来源:i春秋 关键字:网络渗透技术 前言 python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天, ...

  3. Windows-NTFS-ADS在渗透测试中的利用

    0.什么是ADS Windows:微软公司的一款视窗操作系统,其内核为WindowsNT. NTFS:WindowsNT环境的限制级专用文件系统. ADS:NTFS的系统特性,交换数据流(Altern ...

  4. 详述MySQL服务在渗透测试中的利用

    本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...

  5. 渗透测试中的bypass技巧

    0x00 前言 许多朋友在渗透测试中因为遇到WAF而束手无策,本人应邀,与godkiller一同写下此文,希望能够对许多朋友的问题有所帮助. 此系列一共分为五篇文章,分别如下: 一.架构层绕过WAF ...

  6. Windows渗透测试中wmi的利用

    0x01 关于WMI WMI可以描述为一组管理Windows系统的方法和功能.我们可以把它当作API来与Windows系统进行相互交流.WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是W ...

  7. WMI在渗透测试中的重要性

    0x01 什么是wmi WMI可以描述为一组管理Windows系统的方法和功能.我们可以把它当作API来与Windows系统进行相互交流.WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是 ...

  8. 详述MSSQL服务在渗透测试中的利用(上篇)

    前言: 致力于复现最实用的漏洞利用过程. 本文将带领大家学习以下内容: 学习使用`xp_cmdshell`扩展存储过程 学习调用`wscript.shell` 学习MSSQL写文件 学习沙盘模式提权 ...

  9. 移动安卓App+BurpSuite的渗透测试

    从Android 7.0及以上版本开始,安卓系统更改了信任用户安装证书的默认行为,用户安装的证书都是用户证书,因此不管是filddle还是burp,都是把他们的根证书安装到了用户证书,而有部分移动ap ...

随机推荐

  1. hadoop3.1 hdfs的api使用

    1.开发环境配置 1.1eclipse导入插件 1.2.配置hadoop的引用路径 window--->preference --->

  2. 给定一列数字将其平移n位

    原题的意思是给定一个指定长度的数组,然后接受一个数字m,将原数组前m位移动到最后,且顺序不变. 看到这个题,想到的第一个方法就是在用一个数组来储存改变后的数字,代码如下 int func(){ int ...

  3. 基于kbengine 0.4.20

    前言: v0.0.1 2015-04-10 誉小痕(shawhen2012@hotmail.com) v0.0.2 2015-04-12 誉小痕(shawhen2012@hotmail.com) ch ...

  4. 【转】Python 列表生成式

    原文:https://blog.csdn.net/heartyhu/article/details/50988007 1. 生成列表 要生成list [1, 2, 3, 4, 5, 6, 7, 8, ...

  5. python访问web的利器:urllib2

    使用Python访问网页主要有三种方式: urllib, urllib2, httpliburllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session1. 最简单的页面访 ...

  6. Java九大内置对象

    Java九大内置对象    内置对象/作用域(每一种作用域的生命周期是不一样的):        1, application 全局作用域        2, session 会话作用域       ...

  7. Linux含交互的自动登录脚本

    近来经常要通过ssh登录服务器,每次输入命令和密码很麻烦,查资料发现有两种解决,一种是本地创建密钥直接登录,另一种是写个脚本. 这里介绍第二种方法,第一种资料也很多,但是觉得没啥意思. 先上脚本: # ...

  8. poj 3122(二分查找)

    Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13564   Accepted: 4650   Special Ju ...

  9. 【BFS】【位运算】解药还是毒药

    [codevs2594]解药还是毒药 Description Smart研制出对付各种症状的解药,可是他一个不小心,每种药都小小地配错了一点原料,所以这些药都有可能在治愈某些病症的同时又使人患上某些别 ...

  10. BZOJ 4653 [Noi2016]区间(Two pointers+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4653 [题目大意] 在数轴上有n个闭区间 [l1,r1],[l2,r2],...,[l ...