🔬 研究演示: jetbrains.asiones.com
📦 开源项目: GitHub Repository
📚 研究性质: 仅供网络安全研究和学术分析使用
本项目是一个网络安全研究项目,旨在研究和分析互联网上暴露的软件许可服务器的分布情况、安全状态和网络拓扑结构。通过集成多个网络空间搜索引擎(Shodan、Fofa、Censys),自动发现、分析和监控全球范围内的 JetBrains 许可服务器,为网络安全研究提供数据支持。
⚠️ 重要说明:本项目纯属学术研究,不提供任何商业服务,不鼓励任何违法违规行为。
本研究项目采用现代化的微服务架构,用于网络安全数据的采集、分析和可视化:
graph TD
A[研究者访问] --> B[Web研究界面]
B --> C[API研究接口]
C --> D[安全数据库]
E[定时采集任务] --> F[数据采集调度器]
F --> G[Shodan数据采集]
F --> H[Fofa数据采集]
F --> I[Censys数据采集]
G --> J[反检测管理器]
H --> J
I --> J
G --> K[安全状态分析]
H --> K
I --> K
K --> L[风险评估系统]
L --> D
B --> M[安全连接代理]
M --> N[网络状态检测]
jetbrains/
├── app/
│ ├── api/ # API 路由
│ │ ├── cron/ # 定时任务
│ │ ├── oneCopy/ # 服务器代理
│ │ ├── proxy/ # CORS 代理
│ │ └── updateJetbrains/ # 状态更新
│ ├── globals.css # 全局样式
│ ├── layout.tsx # 根布局
│ └── page.tsx # 主页面
├── components/ # React 组件
│ └── ui/ # UI 组件库
├── lib/
│ ├── scanners/ # 扫描器实现
│ │ ├── shodan.ts # Shodan 扫描器
│ │ ├── fofa.ts # Fofa 扫描器
│ │ └── censys.ts # Censys 扫描器
│ ├── utils/ # 工具函数
│ │ ├── cookies-manager.ts # Cookie 管理
│ │ └── header-generator.ts# 请求头生成
│ └── jetbrains-scanner.ts # 主扫描器
├── utils/supabase/ # Supabase 配置
├── schema.sql # 数据库架构
├── types_db.ts # 数据库类型定义
└── vercel.json # Vercel 配置
jetbrains 表| 字段 | 类型 | 描述 |
|---|---|---|
id |
SERIAL | 主键 |
url |
TEXT | 服务器 URL |
availability |
INTEGER | 可用性评分 (初始值: 100) |
created_at |
TIMESTAMP | 创建时间 |
updated_at |
TIMESTAMP | 更新时间 |
cookies 表| 字段 | 类型 | 描述 |
|---|---|---|
id |
UUID | 主键 |
platform |
TEXT | 平台名称 (shodan/fofa/censys) |
cookies |
TEXT | Cookie 字符串 |
created_at |
TIMESTAMP | 创建时间 |
GET /api/oneCopy
研究用途: 随机获取研究样本,用于分析许可服务器的分布特征
响应示例:
{
"message": "http://research.example.com:8080",
"id": 123,
"research_note": "仅供安全研究分析"
}
GET /api/updateJetbrains?id=123&status=1
研究用途: 收集服务器可用性数据,用于安全态势分析
参数说明:
- id: 服务器研究样本ID
- status: 安全状态 (1 = 可达, 0 = 不可达)
GET /api/updateJetbrains?status=update
研究用途: 手动触发数据采集任务,用于研究数据更新机制
GET /api/updateJetbrains?url=TARGET_URL&action=delete
研究用途: 允许服务器管理员从研究数据库中移除其服务器记录
响应示例:
{
"success": true,
"message": "删除成功",
"deletedCount": 1
}
GET /api/proxy?url=http://example.com
研究用途: 安全地测试目标服务器连通性,避免直接暴露研究者IP
访问: /remove
研究用途: 为服务器管理员提供友好的Web界面,申请移除服务器记录
# Supabase 配置
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
# 扫描平台凭据
SHODAN_USERNAME=your_shodan_username
SHODAN_PASSWORD=your_shodan_password
FOFA_USERNAME=your_fofa_username
FOFA_PASSWORD=your_fofa_password
CENSYS_USERNAME=your_censys_username
CENSYS_PASSWORD=your_censys_password
# 功能开关
ENABLE_SHODAN_SCAN=true
ENABLE_FOFA_SCAN=true
ENABLE_CENSYS_SCAN=true
# 评分系统
INITIAL_AVAILABILITY_SCORE=100
git clone https://github.com/asionesjia/jetbrains.git
cd jetbrains
pnpm install
cp .env.example .env.local
# 编辑 .env.local 填入必要的配置信息
# 在 Supabase 控制台中执行 schema.sql
pnpm dev
在 Vercel 控制台中导入项目
配置环境变量
在 Vercel 项目设置中添加所有必需的环境变量
设置构建命令
{
"buildCommand": "pnpm build",
"outputDirectory": ".next",
"installCommand": "pnpm install"
}
vercel.json 配置定时任务采用加权随机算法,确保研究样本的代表性和多样性,避免采样偏差。
系统自动记录研究相关数据: - 数据采集任务执行日志 - 网络资产状态变更记录 - 研究API调用统计分析 - 异常情况和错误分析
git checkout -b research/NewMethod)git commit -m 'Add research on NetworkMapping')git push origin research/NewMethod)🎓 重要学术声明:
⚖️ 法律合规声明:
本研究项目严格遵循以下原则: - 被动观察:仅进行网络空间的被动观察和分析 - 公开数据:仅使用公开可获取的网络数据 - 学术免责:研究者对项目的学术使用不承担商业责任 - 禁止滥用:严禁将研究成果用于任何违法违规活动 - 持续改进:根据法律法规变化持续改进研究合规性
🔬 研究伦理承诺:
我们承诺遵循最高标准的研究伦理: - 尊重网络资源和服务提供者的权利 - 避免对网络服务造成不必要的负载 - 保护研究过程中发现的敏感信息 - 促进网络安全技术的正面发展 - 支持负责任的网络安全研究实践
IMPORTANT ACADEMIC NOTICE:
This project is developed and maintained solely for ACADEMIC RESEARCH PURPOSES in the field of cybersecurity. By using this software, you acknowledge and agree to the following terms:
If you disagree with these terms or cannot ensure academic and ethical use, please DO NOT use this software.
For questions regarding academic use or ethical considerations, please contact us through GitHub Issues.
本研究项目采用 MIT License 开源协议,支持学术研究和教育使用。
🔬 支持网络安全研究,请给个 ⭐ Star!
Built with ❤️ for Cybersecurity Research by Security Researcher
$ claude mcp add jetbrains \
-- python -m otcore.mcp_server <graph>