freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

APP漏洞挖掘(一)某下载量超101万的APP有几个漏洞可以GetShell?
2022-11-23 11:47:33
所属地 山东省

过完阴雨绵绵的十一国庆,接到APP漏洞的项目,从开始的迷茫、什么思路也没有,甚至两三天从早挖到晚一点收获都没有,到后面不断看网上的文章、实践总结,借助神器和运气某天能挖到六七个漏洞,晚上做梦都在想挖洞挖洞,睡眠不足白天也精神抖擞的,也算是获得了些APP漏洞挖掘的经验吧。后续勤奋的话可能会陆续输出一些APP漏洞挖掘的实战文章、经验总结文章。
文章中的漏洞已修复,仅在此提供思路,记录学习过程。

话不多说,正题开始。

先看看这个APP的下载量:1014408,距离上个月挖这个APP时又多了2000的下载,下载量还是不小的。最开始也只是敢挖一些下载量几百的APP,后面发现下载量跟有无漏洞其实没有太大关联。

1669175054_637d970ed09abdb28b045.png!small?1669175056005


顺手查了注册资本561万,算是比较少的。其实有无漏洞,漏洞量多少,跟注册资本也不一定有绝对的关联。只能告诉我这个洞CNVD、SRC肯定不收...

收集资产

  1. 豌豆荚下载app,使用AppInfoScanner收集资产。

1669175069_637d971d53522c82c23fb.png!small?1669175070780


  1. 输出资产表,就可以通过表中内容查找相关资产的漏洞了。


  1. 指纹查询


漏洞挖掘

漏洞一:Webapp处存在SQL注入漏洞

漏洞点一:https://wxapi.某.com/Webapp/video.html?aid=,域名与APP包名一致,且页面下方指示的APP也是测试的APP,所以肯定属于某APP的资产。地址有参数,猜想可能有注入。

1669175138_637d9762dfeac3a8155c3.png!small?1669175139776


抓包,挂上代理,放到sqlmap中跑。


果然存在注入,这是第一个注入点。


上个月测试这款APP的时候着急完成任务,没有找到这个SQL注入,当时注的是左边的GET请求。这次写这篇文章,才又发现了这个注入点,所以测试的时候尽量仔细些,减少遗漏。(这就去CAPPVD提交上,温故而知新,古人诚不欺我)。

漏洞二:会员中心存在DOM型XSS漏洞

漏洞点二:https://wxapi.某.com/Webapp/Get-vip-test.html?username=,该APP的会员中心。BP中装了很多漏洞插件,抓包的时候会自动进行测试。这个漏洞也是在写文章的时候发现的,看到域名有username参数本来想测试SQL注入的,但刚才的SQL注入也出自Webapp这个路径,就算了。然后就看到BP的Dashboard有个高危,插入payload测试,漏洞就这么被发现了。

1669175162_637d977a46ecd436d1cdb.png!small?1669175163135

以上呢,AppInfoScanner输出的域名就挨个筛查完了,其实还找到了后台,用的齐博CMS,存在admin用户但是没有爆破出密码,也没找到别的漏洞点,就暂时放弃了这块。

接下来就要从APP本身入手了,苹果手机可能会存在抓不到包、证书等问题,难度较大,先从安卓下手。我使用的是豌豆荚,从豌豆荚上下载APP,设置好代理,调试网络确保BP能顺利抓包。BP抓取的手机数据包会有大量的非测试APP数据包,注意甄别就好。

漏洞三:APP头像上传处存在文件上传漏洞,可GetShell

打开头像上传,抓取数据包。

先上传一张正常图片,看返回结果是什么,是否显示上传后的路径,并能试验是否能访问到。如下图所示,上传功能正常,且返回上传后的路径。


但是浏览器中无法访问到。

1669175176_637d97886d636afe245b2.png!small?1669175177448


再仔细查看截取的数据包,在路径前加上/zy就可以正常访问。


接下来测试是否能正常解析,文件上传phpinfo()。

1667975387_636b48db978acc1c7f597.png!small?1667975388204


可正常访问,显示详细的phpinfo()信息。

1667975395_636b48e34f9710a7052f7.png!small?1667975396221


直接上传一句话木马。


访问,成功解析。

1667975411_636b48f3cd8412e0a070f.png!small?1667975412569


蚁剑连接成功(马已删除)。

漏洞四:APP首页搜索框存在SQL注入

随意输入数据,点击搜索,截取搜索框数据包。

1667975474_636b4932ae1d66325e6a4.png!small?1667975475158


使用Sqlmap进行测试

1667975484_636b493c352a05f0167c1.png!small?1667975484865


注入点为key参数。

1667975488_636b4940ed5fbdbbd6aee.png!small?1667975489649

漏洞五:APP用户登录处存在SQL注入漏洞

截取用户登录处数据包。

1667975495_636b494707b8b7d545fef.png!small?1667975495553


直接使用BP插件发送到sqlmap进行注入。

1667975515_636b495bca36f8c913dfc.png!small?1667975516366


注入点为username参数。

1667975520_636b4960a31261c62fd71.png!small?1667975521452


总结归纳

一个APP可能存在多个漏洞,能发掘多少取决于技术能力和细心程度。

1669175233_637d97c10c94d492284c2.png!small?1669175234635

这几次的挖掘AppInfoScanner功不可没,这款工具很早就从Tide安全攻防的知识星球中下载过,也经常看星球里大佬们分享过的相关文章、工具、新思路,但一直没有实践过,这次就好好用用它。

刚开始的两三天毫无头绪的在豌豆荚中下载了十几个APP,一个一个安装、注册、测试,颗粒无收,想了想不能这么干,这样干下去25个洞猴年马月才能挖到。于是翻开工具包,找到AppInfoScanner,搜了一两篇文章了解用法之后就开始改变思路。

首先APP是随机选择的,不看下载量,不看注册资本,当然,淘宝、京东、微信这种的不在选择范围内哈。下载好apk丢到AppInfoScanner跑。跑出来的结果有只有几条域名的、有空文件、也有扫出几百条相关或不相关域名信息的,挨个挨个排查筛选,相关的都点开看看,测测web接口、爆破敏感路径、找后台、弱口令、SQL注入、XSS、命令执行、其他端口存在的漏洞等等,觉得有可能的点都去试。

资产表测完,才开始在手机上下载APP,先测试用户注册的地方,是否能爆破验证码、是否有短信轰炸、验证码是否明文显示在返回包中、验证码是否失效。登录后找找注入点、文件上传、任意文件下载,抓包修改参数看是否有越权、是否能查看他人信息等等,web方面的漏洞点都可以在APP上试。

这篇文章写了如何在一个APP中挖掘多个漏洞,下回写一写上个月挖到的同一开发商开发的APP存在的通用漏洞。敬请期待~

# 漏洞 # 渗透测试 # web安全 # 网络安全技术 # app安全
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录