教育行业 edusrc 敏感信息自动化收集工具。通过搜索引擎 Dork 语法发现教育网站泄露的敏感文档,智能提取身份证号、学号、联系方式、银行卡号、数据库凭据等高价值信息。
- 精准验证,零误报 — 身份证 18 位加权校验、银行卡 Luhn 算法、学号格式校验,提取结果经过数学级验证而非简单正则匹配
- 7 种文件格式全覆盖 — PDF / Excel / Word / HTML / CSV / TXT / XML,自动识别编码(UTF-8 / GBK / GB2312),表格和正文双路提取
- 智能降噪 — 排除词过滤课表、招聘等噪声;优先词加权提升高价值结果;三层相关性评分自动筛选
- 反检测搜索引擎抓取 — Google 三层降级(Scrapling HTTP → 无头浏览器 → 有头过验证码后切回无头),Bing 使用 httpx 快速请求 + Playwright 浏览器降级
- 全自动化流水线 — 输入域名 → Dork 查询 → 搜索抓取 → 结果过滤 → 文件下载 → 解析提取 → 数据验证 → 分类归档,全程无需人工干预
- 实时可视化 — 基于 PySide6 + QWebEngineView 的现代化界面,扫描进度、日志流、分类筛选、分页表格、右键复制一览无余
- 批量 & 可配置 — 支持导入多域名清单,搜索词/排除词/优先词/高价值词全部可自定义
- 8 类自动归档 — 身份证、学号、联系方式、银行卡、凭据泄露、密钥泄露、住址、配置泄露,文件按类别自动分目录整理并生成摘要
- Python ≥ 3.10
- Chrome 或 Edge 浏览器(Scrapling / Playwright 依赖)
pip install -r requirements.txt
playwright install --force
scrapling install --forcepython main.py- 在目标栏输入域名(如
cqrk.edu.cn)或导入包含多个域名的.txt文件 - 勾选搜索引擎(Bing / Google)
- 设置翻页数和代理(可选)
- 点击「开始扫描」
输入域名
→ 构造 Dork 查询(site:domain "关键词" filetype:类型)
→ 搜索引擎抓取(httpx → Playwright 降级)
→ 结果过滤(排除词 / 优先词 / 相关性)
→ 下载文件
→ 多格式解析提取(PDF/Excel/Word/HTML/CSV/TXT/XML)
→ 数据验证(身份证校验位 / Luhn / 格式校验)
→ 分类归档 + 界面实时展示
| 数据类型 | 验证方式 | 示例 |
|---|---|---|
| 身份证号 | 18 位加权校验位算法 | 110101199003077658 |
| 身份证后 6 位 | 格式校验 | 30776X |
| 学号 | 字母数字混合,含数字,排除手机号格式 | 2023010001 |
| 手机号 | 11 位格式校验 | 13800138000 |
| 邮箱 | 格式校验 | zhangsan@edu.cn |
| 银行卡号 | 16-19 位 + Luhn 校验 | 6222021234567890123 |
| 数据库连接串 | JDBC/DSN 格式匹配 | jdbc:mysql://10.0.0.1:3306/db |
| API 密钥 | Token/Secret Key 模式 | AKIAIOSFODNN7EXAMPLE |
| JWT 令牌 | 三段式 Base64 结构 | eyJhbGciOiJIUzI1NiJ9... |
| .env 配置泄露 | KEY=VALUE 模式 | DB_PASSWORD=Admin@123 |
| 内网 IP | 私有地址段匹配 | 192.168.1.100 |
sensfinder/
├── main.py # 入口
├── gui.py # PySide6 GUI(QWebEngineView + QWebChannel)
├── config.py # 配置常量、正则、关键词列表
├── icon.png # 窗口图标
├── core/
│ ├── __init__.py # 数据验证(身份证校验位、Luhn、学号)
│ ├── filters.py # 结果过滤(优先级 / 相关性 / 排除)
│ └── scanner.py # 扫描调度(搜索 → 下载 → 解析 → 归档)
├── parsers/
│ └── __init__.py # 多格式文件解析(PDF/Excel/Word/HTML/CSV/TXT/XML)
├── scrapers/
│ └── __init__.py # 搜索引擎抓取(Bing httpx/Playwright,Google Scrapling)
└── requirements.txt
通过界面的「设置」按钮可自定义:
- 搜索词 — 搜索引擎 Dork 查询使用的关键词列表
- 排除词 — 过滤噪声结果(如课表、招聘、考研等)
- 优先词 — 提升高价值结果排序权重
- 高价值词 — 标记需要优先展示的数据类型
- 翻页数 — 每个搜索引擎查询的翻页深度
- 代理 — HTTP/SOCKS5 代理地址
扫描结果自动保存在 sensfinder/out/<域名>/ 目录下,按 8 个类别分目录归档;原始文件暂存于 sensfinder/pool/<域名>/。
sensfinder/
├── out/example.edu.cn/
│ ├── 身份证/ # 身份证号、身份证后6位
│ ├── 学号/ # 学号
│ ├── 联系方式/ # 手机号、邮箱
│ ├── 银行卡/ # 银行卡号
│ ├── 凭据泄露/ # 密码、JWT 令牌
│ ├── 密钥泄露/ # API 密钥、Token
│ ├── 住址/ # 地址、内网 IP
│ ├── 配置泄露/ # 数据库连接串、.env 配置
│ └── *.txt # 各类别摘要文件
└── pool/example.edu.cn/ # 未命中敏感数据的原始文件
本工具仅供授权安全测试和教育研究使用,使用者需遵守相关法律法规,对使用本工具产生的任何后果自行承担责任。