渗透测试基础 - APP渗透测试(上)

渗透测试基础- APP渗透测试(上)

    • 简介
    • 抓取手机数据包
    • 实战APP渗透测试
    • 漏洞总结

只为对所学知识做一个简单的梳理,如果有表达存在问题的地方,麻烦帮忙指认出来。我们一起为了遇见更好的自己而努力!

简介

【本篇核心思想】
app渗透和web渗透没有本质区别

在渗透测试这个领域,完全可以把这俩当成同一种东西

不管是手机APP还是电脑APP,其底层还是数据交互,只要能控制数据,就能实现测试效果

抓取手机数据包

本身想直接贴一人别人写的操作步骤链接的,既然要讲,就从头到尾复习一边好了。

这里以手机为切入点,当然需要一个手机了,但是这个手机我们让它在电脑上运行,好配合我们的Burp来使用。

推荐 夜神模拟器,链接:https://www.yeshen.com/

下载之后点击安装,进入到如下界面

渗透测试基础 - APP渗透测试(上)_第1张图片
注意右边栏的一些常用功能,如“文件助手”,“安装APK”等
渗透测试基础 - APP渗透测试(上)_第2张图片
既然手机在电脑上有了 ,得考虑一下该怎么用Burp去抓这个手机的流量。

打开手机的设置,进入Wi-Fi
渗透测试基础 - APP渗透测试(上)_第3张图片
长按Wi-Fi 出现”修改网络“
渗透测试基础 - APP渗透测试(上)_第4张图片
高级选项-设置代理-手动
渗透测试基础 - APP渗透测试(上)_第5张图片
注意,这里不要写127.0.0.1,因为这个127.0.0.1,代表的并不是你本地的机器,而是这个模拟器的本地,所以这里要写本地的ip地址。渗透测试基础 - APP渗透测试(上)_第6张图片
渗透测试基础 - APP渗透测试(上)_第7张图片
在去到Burp上设置这个端口和本地ip的监听
渗透测试基础 - APP渗透测试(上)_第8张图片
再回到手机的浏览器上访问个地址,burp就显示抓到数据包了
渗透测试基础 - APP渗透测试(上)_第9张图片

好了,手机抓取数据包的方式介绍完了,开始进入这次的靶场

实战APP渗透测试

先在模拟器上安装一个“信呼OA”的办公app

进入APP,在又上角有一个“设置”,打开之后需要写入系统的地址
渗透测试基础 - APP渗透测试(上)_第10张图片
我这里就写靶场的地址

渗透测试基础 - APP渗透测试(上)_第11张图片
渗透测试基础 - APP渗透测试(上)_第12张图片
这就设置好了,这样就是app上的操作,都会与刚刚地址的靶场进行交互

其实刚刚的靶场地址打开就是“信呼OA”CMS,我等下还是直接已网站的方式进行操作【这个电脑暂时转不了模拟器,但其实网站测试的数据和app是一样的,就是没了app渗透的仪式感】

渗透测试基础 - APP渗透测试(上)_第13张图片
进入网站,都没个忘记密码功能的,看来等下只能爆破了。先弄一个数据包下来看看情况。

渗透测试基础 - APP渗透测试(上)_第14张图片
直接就输入admin admin 抓取数据包,从这个数据包里,能看到好多传参数据,而且看到对我们的admin admin 进行了账号密码加密

把这个数据包弄下来看看

rempass=0&jmpass=false&device=1621067038169&ltype=0&adminuser=YWRtaW4%3A&adminpass=YWRtaW4%3A&yanzm=

这里来看看,admin到底是怎样被加密为YWRtaW4%3A

看到末尾有%3A,本能的反应是URL编码,拿去试试看
渗透测试基础 - APP渗透测试(上)_第15张图片
这里解码之后,%3A为一个冒号,这就比较奇怪了,冒号是不应出现在这里的,因为在传参中这个有特殊意义,所以这里的冒号有蹊跷,尝试将冒号替换为等于号,然后去 base64 解码一下看看

渗透测试基础 - APP渗透测试(上)_第16张图片
这样就真相大白了,开发先将账号密码只加密为 base64,然后遍历值,将``等于号,替换为冒号,那是不是就代表我们能爆破人家账号了呢?非也,在相同的账号密码多重放了几次,我收到了这样的返回包

渗透测试基础 - APP渗透测试(上)_第17张图片
将这个值去解码一下,看看是什么

渗透测试基础 - APP渗透测试(上)_第18张图片
看来这里还不能直接爆破,当我尝试次数多了之后,会对我们实施拦截,可是问题来了,他是如何我尝试了多次呢?再次观察这个抓取下来的数据包
渗透测试基础 - APP渗透测试(上)_第19张图片
这个设备id引起了我的注意,有没有可能是通过这个来确定我尝试了多少次的,将值改变之后,在发过去试试
渗透测试基础 - APP渗透测试(上)_第20张图片
渗透测试基础 - APP渗透测试(上)_第21张图片
那这样就对了 只要我们一直替换这个设备ID值,就能正常的去爆破账号密码,拿出我们的 base64 密码本,替换等于冒号
渗透测试基础 - APP渗透测试(上)_第22张图片
渗透测试基础 - APP渗透测试(上)_第23张图片
渗透测试基础 - APP渗透测试(上)_第24张图片
渗透测试基础 - APP渗透测试(上)_第25张图片

渗透测试基础 - APP渗透测试(上)_第26张图片
1替换数字,2替换字典,开始爆破。
渗透测试基础 - APP渗透测试(上)_第27张图片
根据爆破出来的账号密码登陆进后台,既然进了后台了,那进直接找文件上传点了
渗透测试基础 - APP渗透测试(上)_第28张图片
在这就看到一个文件上传点,用图片马上传了一个试试看【有关图片的制作,可以看我前面写的内容,链接:渗透测试基础 - 文件上传漏洞 (上)】
渗透测试基础 - APP渗透测试(上)_第29张图片
上传数据包抓住,设置一个抓返回包,
渗透测试基础 - APP渗透测试(上)_第30张图片
在这个返回的数据包里面看到了,传上去之后,这个图片所在目录在哪。
就然有位置,那就去访问一下看看
渗透测试基础 - APP渗透测试(上)_第31张图片
渗透测试基础 - APP渗透测试(上)_第32张图片
能访问,但是没数据,那来都来了,和不试一下CGI解析漏洞【CGI解析漏洞前面也有 ,链接:渗透测试基础 - 文件上传漏洞 (下)
渗透测试基础 - APP渗透测试(上)_第33张图片
渗透测试基础 - APP渗透测试(上)_第34张图片
这样就能拿着这个去链接服务器了。

渗透测试基础 - APP渗透测试(上)_第35张图片
渗透测试基础 - APP渗透测试(上)_第36张图片

漏洞总结

APP渗透与普通的渗透测试无差别,所有防护方攻击方式也基本一样
以这里的靶场为例子来做防护的方法的话,建议一下几点:

  1. 账号密码登陆增加验证码功能,一个没有漏洞的验证码能很好的阻挡爆破攻击
  2. 加密方式应采用更不容易猜解的方式
  3. cgi.fix_pathinfo=1 nginx配置文件中,这个参数值改为0,可避免CGI解析漏洞

《最好的防御,是明白其怎么实施的攻击》

你可能感兴趣的:(小程序,安全)