参加某众测项目时,测某APP时,根据信息收集+测试,发现APP的后台系统存在SQL注入、XSS、弱口令、信息泄漏等漏洞,此APP本身存在逻辑漏洞与SQL注入漏洞,再通过观察酷传搜索的结果发现此APP开发商开发了三十几个APP,猜测可能存在相同类型的漏洞,经测试猜测被证实,可以刷一波积分。此文仅作为学习记录,仅提供思路,所述漏洞均已提交并修复。
根据众测平台要求从豌豆荚下载APP,再通过酷传查看下载量、开发商,再上企查查看注册资资本。(PS:如果注册资金超过5000个w,就能去cnvd碰碰运气混个证书)
1000个w,证书看来是无望了,那就刷积分攒经验吧。
AppInfoScan收集资产,找出几条有用的资产,做记号后挨个测试。
打开链接直接是个报错页面,暴露ThinkPHP版本信息与网站绝对路径,用工具扫,未发现历史版本漏洞。虽然CNVD不收,但也算是个漏洞,可以为之后的挖掘提供帮助。
打开资产表中的链接,其实未打开前就在想“链接后方有参数,可能存在SQL注入”,打开之后看到页面的报错信息毫不犹豫的上SQLmap,果然存在注入。系统使用MySQL数据库、Apache。
在上级目录页面【电话统计】处也存在SQL注入。
再根据漏洞二的链接,向上一级一级访问获得APP管理系统的某个页面,这个页面可以点击【登录后台】跳转至后台登录页面。页面下方的【设计师】、【框架整理】暴露了与登录用户相关的信息,在未登录的情况下点击【账户管理】,可直接查看到超级管理员、普通管理员和高级管理员的登录名。
根据【账户管理】暴露的用户名猜出超级管理员的密码,登录后可获取大量用户的电话、地址、IP等信息。
登录后台系统,在菜单栏某个模块的【添加】功能处,添加Payload,触发存储型XSS漏洞,此处未做任何输入输出过滤。
安卓手机下载此APP。注册用户,随意填写手机号等注册信息。
截取发送短信的数据包,短信验证码在返回包中明文显示。
使用刚注册的手机号进行登录,登录成功。
看到搜索框第一反应就是SQL注入、XSS,先抓取搜索框的数据包看看。
GET请求数据包,直接用BurpSuite的SQLMap插件跑一跑。
布尔盲注,注出数据库为MySQL、框架为ThinkPHP。
在酷传上搜索这款APP时发现,列出了很多与这款APP包名类似的APP,仔细观察并打开多个APP,开发商都为同一家公司,而且APP类型都一样,只不过有普通用户、某些角色不同、以及地区城市不同。
随意打开一个,查看【同开发商应用】,发现共有34款APP,既然有这么多款而且刚才又发现其中一款存在逻辑处理漏洞、SQL注入漏洞,不妨试试其他APP是否也存在相同漏洞。
打开APP,点击【首页】➡【XXXXX APP】,进入【XXXX详情】页面,截取此请求数据包。
GET请求数据包,使用SQLMap测试,存在SQL注入漏洞。
打开APP,进入用户注册页面,输入手机号、密码,点击【获取验证码】,3秒后验证码会自动显示在页面中,点击【立即注册】,注册登录成功。
其他剩余的30几个APP基本上都存在SQL注入漏洞与逻辑处理漏洞,只是有点细微的区别。比如,注入点随着APP功能不同而不同,多观察也可以找到。这类APP的逻辑处理漏洞在于返回包中明文显示验证码、或者验证码直接回显到APP验证码填写处,也不难发现。
**漏洞的挖掘未必有多难,胜在细致入微的观察。**
E
N
D