0x01 前言
本篇文章共2700字,完全阅读全篇约6分钟,州弟学安全,只学有用的知识
实在抱歉各位,我实在找不到什么好点的封面了,这个封面稍微有些装,请原谅我,言归正传,最近这几篇文章一直在围绕学习干货板块去写了,个人的写作和总结能力也有了不小的提升,停笔一想,漏洞挖掘的实战咱们也不能含糊啊,哪怕是水洞,本次是某次SRC中的一个不起眼的资产,引起的多个漏洞,在文章的最后会归纳总结,不知道各位还记不记得之前画的思维导图
虽然在往下更细致的没有继续写,但是也算一个大概的框架,一个人一个思路一个想法,具体文章可以参考之前的一个总结
渗透测试|真详细!以实战学习渗透测试流程及报告(图文+视频讲解)
当然,也可以前往:关注(州弟学安全)->右下角->历史合集->漏洞挖掘(学习)
* 本篇文章所提及技术仅供学习参考,请勿非法使用、后果责任自负
0x02 漏洞挖掘
开局一个小程序,能测的地方有限,在小程序上下功夫除了反编译分析源代码找接口就是找逻辑漏洞啥的,先看功能,是一个停车场管理小程序
后面就是对于用户的功能,输入车牌号进行视频找车,现在看我们不知道车牌号,也不知道有什么危害,这时候一般就不想往下测了,但是为了放大危害面,抓包获取到域名及所属资产
我勒个骚刚,注册资本还是以美元挂钩的,看了下股权穿透,实在不简单,这里就不放更明显的图了,搜集到相关资产,已知收录范围,存在的一级域名就这一个,直接挂ARL和手动在引擎搜集资产
有些资产因为端口开放比较大或不是常用端口,使用TOP100扫不到,所以建议工具+手工的方式去搜集信息,此处我也想扫大端口,但是网络由于运营商限制DPI原因,有端口并发连接限制,超出之后就断网了
一. 未授权访问漏洞
这里是手动收集到的信息,和前面我们看到的小程序是一套,而这个未授权访问开放在10988端口(已虚化),是车辆后台管理系统,而小程序则是用户端操作系统,前往车辆后台管理系统的WEB根目录我们可以看到一个目录页面
当然,一般这个时候点击所谓的config或bin之类的基本上都是404,我们可以看到除了第三个目录,其它都是2017-2018年中间的,我们就看最新的,是一个日志目录,点到最新的日志文件看到车牌号
日志开始->请求(加密)->传递参数(plateNo(车牌号))->响应参数(carImage(车头图片))
至于数据量,确实挺大的,然后这里的图片会定期删除,我们取出任一车牌号,在小程序是可以查询到相关信息前后视频信息
这里复制图片地址,依次递归删除向上寻找其它敏感信息,很多的图片和文本文件等,直至登录后台页面/systemCar
这里特征太明显,不便截取全屏,见谅!于是我又根据这个未授权访问特征,做为body进行查找相应资产,也有相关的资产,而且满足通用,先提交通用一波,至于后台登录尝试了,只有前端验证账号密码有没有输入,但是都输入以后点击登录没动静,就没再测试了
二. SQL注入
由于手动测试开放资产并不多,前往ARL看一下,我这里ARL配置文件开启了其它一些搜索引擎,应该会更全面一些,这里看到一个后台登录页面,非常简洁
看这眼熟的URL,之前看过我文章的应该知道,非常像ThinkPHP,但是又不太确定,于是乎就随便尝试登录一下,确认为TP
但是不知道开没开debug啊,没开debug就不太好搞了,由于不知道版本,先使用GUI工具测试一波,很好,没有漏洞
不知道各位还记不记得之前的一篇渗透测试的文章和打击杀猪盘的文章,同样都是TP框架,不同的是前者有历史漏洞直接梭进系统,后者没有历史漏洞但开启debug,获取到数据库数据
我们此处在登录框内加入单引号或双引号等符号,尝试引起报错以查看敏感信息
经过使用单引号进行了报错,看到SQL语句
SELECT * FROM `xxx` WHERE ( username='aaa'' and password='aaa' and deleted = 0 ) LIMIT 1
并且看到了当前使用的TP版本为5.0.5,以及一些其它的敏感信息
已知查询的SQL语句,直接构造payload测试延时,测试成功
已知注入点为username和password,直接使用sqlmap进行测试
不是最高权限用户,已知绝对路径,但是没法访问,而且版本无法写入文件,漏洞是没问题的,直接上交即可
三. 万能密码与文件上传
不知道师傅们还记不记得以前文章说过的万能密码,此处已知sql语句,构造万能密码payload是否可以进入后台呢,可以参考之前的公交车漏洞挖掘
赏金猎人|SRC简单拿下某公交后台系统多个高危漏洞思路及试探通用型漏洞
1:'or 'a'='a
2:')or('a'='a
3:or 1=1--
4:'or 1=1--
5:a'or' 1=1--
6:'or 1=1--
7:'or'a'='a
8:'or'='a'='a
9:'or''='
10:'or'='or'
11: 1 or '1'='1'=1
12: 1 or '1'='1' or 1=1
经过测试以上payload经过闭合满足永真条件后,均可进入后台登录
这里没跑intruder模块,测试了几个payload可用就行,然后进入后台,看看功能点,其实很简陋,貌似已经废弃不用的样子,找到一个文件上传点
想着上传shell,可能当时也是着急忙慌,一直提示我文件类型不对,我心想过滤这么严格吗
后面我尝试双写和文件头都不行,最后我才反应过来,是对content-type进行了检测,而我一开始上传的是php文件,文件类型不是图片,前端也没有校验,修改文件类型上传成功,但是没有路径,真的难受
然后其它就是内部功能点的SQL注入,比较多,这里就不在一一提及了
然后前面咱们不是有泄露的车牌号了吗,因为进去得交钱,从这里貌似可以直接交钱,因为这是后台,相当于一个接口,前台收到钱后转给后台,然后后台进行缴费开闸操作,取到一个新的车牌号
感觉这系统挺奇葩的,没蜜罐特征,但又不像正常所为,看不懂哈哈
四. 小程序多处漏洞
WEB资产很少,转战APP和小程序端,APP没有找到,依据关联性:比如公司名、下属单位名、品牌名等搜索到资产
(1). 第一个小程序漏洞是任意用户登录,此小程序功能是面向用户充电的,在登录入口输入手机号接收验证码,响应包存在验证码,如果已知对方账号,危害无需多说了吧
接着可以在响应包的returncode看到验证码,可以直接登录进去
像这类问题之前也挖过不少,有的会存在cookie中,有的会存在请求包内容,有的可能在响应包
(2). 第二个小程序是企业访客系统,在登录时也是发送验证码,但是验证码在请求包内,验证码可控
这里我替换为自己的手机号,然后不限次数发送验证码+验证码可控进行验证
至于能干啥,这里就不多说了,现在这个阶段对吧,然后我感觉他的逻辑应该如下
之前也挖到另一个企业的SRC短信可控,但是那个是完全可控的,是一个SMS网关端口,参考下文
0x03 总结
本次完成文章共耗费8小时左右(从信息收集到挖掘完成到全篇书写),因为资产不多,然后也没有更细的深入,只验证了漏洞存在即可,各位师傅看个热闹就行,如果这篇文章对您的思路提供了帮助,也是我的幸运,最近写防守和学习文章确实比较多,没有此方向的更新确实抱歉
* 如您认为本篇文章质量尚可,麻烦点个赞,点个转发让更多人看到,万分感谢
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款