Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SensFinder

教育行业 edusrc 敏感信息自动化收集工具。通过搜索引擎 Dork 语法发现教育网站泄露的敏感文档,智能提取身份证号、学号、联系方式、银行卡号、数据库凭据等高价值信息。

SensFinder

核心亮点

  • 精准验证,零误报 — 身份证 18 位加权校验、银行卡 Luhn 算法、学号格式校验,提取结果经过数学级验证而非简单正则匹配
  • 7 种文件格式全覆盖 — PDF / Excel / Word / HTML / CSV / TXT / XML,自动识别编码(UTF-8 / GBK / GB2312),表格和正文双路提取
  • 智能降噪 — 排除词过滤课表、招聘等噪声;优先词加权提升高价值结果;三层相关性评分自动筛选
  • 反检测搜索引擎抓取 — Google 三层降级(Scrapling HTTP → 无头浏览器 → 有头过验证码后切回无头),Bing 使用 httpx 快速请求 + Playwright 浏览器降级
  • 全自动化流水线 — 输入域名 → Dork 查询 → 搜索抓取 → 结果过滤 → 文件下载 → 解析提取 → 数据验证 → 分类归档,全程无需人工干预
  • 实时可视化 — 基于 PySide6 + QWebEngineView 的现代化界面,扫描进度、日志流、分类筛选、分页表格、右键复制一览无余
  • 批量 & 可配置 — 支持导入多域名清单,搜索词/排除词/优先词/高价值词全部可自定义
  • 8 类自动归档 — 身份证、学号、联系方式、银行卡、凭据泄露、密钥泄露、住址、配置泄露,文件按类别自动分目录整理并生成摘要

快速开始

1. 环境要求

  • Python ≥ 3.10
  • Chrome 或 Edge 浏览器(Scrapling / Playwright 依赖)

2. 安装依赖

pip install -r requirements.txt
playwright install --force
scrapling install --force

3. 运行

python main.py

4. 使用

  1. 在目标栏输入域名(如 cqrk.edu.cn)或导入包含多个域名的 .txt 文件
  2. 勾选搜索引擎(Bing / Google)
  3. 设置翻页数和代理(可选)
  4. 点击「开始扫描」

工作流程

输入域名
  → 构造 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/ # 未命中敏感数据的原始文件

免责声明

本工具仅供授权安全测试和教育研究使用,使用者需遵守相关法律法规,对使用本工具产生的任何后果自行承担责任。

About

教育行业 edusrc 敏感信息自动化收集工具

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages