# V-APF **Repository Path**: wang_two/v-apf ## Basic Information - **Project Name**: V-APF - **Description**: V-APF 是一款机器学习驱动的自动化 Web 安全检测框架。通过对 Web 页面在“基线请求 vs. 探测请求”间的语义指纹差异进行量化,结合随机森林 (Random Forest)模型,自动识别 SQLi / XSS 等漏洞并生成报告。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-31 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 基于特征矢量的 Web 漏洞自适应探测与自动化渗透框架(V-APF, Vector-based Adaptive Penetration-testing Framework) V-APF 将 Payload 变异与 13 维特征向量 + 随机森林决策结合,用于 SQLi / XSS 等 Web 漏洞快速发现与自动报告。 🚀 核心亮点 - AI 引擎:随机森林 + 标准化预处理,默认阈值 0.55;支持阈值平滑调优。 - 特征提取:DOM 相似度、长度差异、延迟、报错命中、反射等 13 维信号。 - 变异与并发:每个基础 payload 默认 1 个变体,`--mutation-count` 可扩展;并发默认 3,可降低抖动。 - 抗噪与 WAF 识别:弱信号/仅反射分数封顶,403/406/418/429 自动半衰;基线 status 参与降噪。 - 自动利用链:高危条目自动串行调用 sqlmap / commix / beef-xss / msfconsole(可自定义路径和超时)。 - 报告生成:HTML + PDF(Playwright 截图 + Chart.js 图表),含证据摘要与修复建议。 📊 模型表现(最新训练) - 数据规模:训练 14848(正 6938)、测试 3713(正 1735)。 - 0.5 阈值评估:Precision 0.92 / Recall 0.96 / F1 0.94 / Accuracy 0.94;混淆矩阵 [[1838, 140], [68, 1667]]。 - 阈值调优:阈值 0.20→0.70,Recall 0.9631→0.9539,Precision 0.9202→0.9256,FP 145→133。 - 特征重要性:v4 报错命中 0.5560,v5 DOM 相似度 0.1593,v6 反射 0.1387,v1 长度差 0.1203,v2 状态变更 0.0249,其余接近 0。 🛠️ 模块总览 - 爬虫 [core/spider.py](core/spider.py):BFS 深度 3,收集表单与 URL 参数,输出 targets.json。 - 特征提取 [core/extractor.py](core/extractor.py):混合 httpx/Playwright 发送探测,生成 13 维特征。 - 自动打标 [core/auto_labeler.py](core/auto_labeler.py):启发式规则(无害 payload 强制 0),产出 data/train_dataset.csv。 - 训练 [core/train_model.py](core/train_model.py):log1p(|v1|/|v3|) + StandardScaler + RandomForest,保存模型/Scaler。 - 实战扫描 [core/predict_scanner.py](core/predict_scanner.py):AI 评分、信号降噪、自动利用、报告落盘。 - 报告 [core/report_generator.py](core/report_generator.py):去重、prob_effective、修复建议、HTML/PDF 产出。 - CLI 入口 [main.py](main.py):`train` / `scan` 两个子命令一键串联。 📝 快速开始 1) 安装依赖 ``` python -m pip install -r requirements.txt python -m playwright install ``` 可选:安装 sqlmap、commix、beef-xss、msfconsole 并确保在 PATH 中。 流程图(训练链路 + 扫描链路) ```mermaid flowchart LR %% ========== 训练阶段 ========== subgraph 训练阶段 [模型训练阶段] direction LR A[目标站点/靶场
DVWA/bWAPP/Pikachu/自定义] B[spider.py
通用/专用爬虫] C[extractor.py
特征提取] D[auto_labeler.py
自动打标] E[train_model.py
模型训练] F[模型文件
vapf_rf_model.pkl] A --> B --> C --> D --> E --> F end %% ========== 扫描阶段 ========== subgraph 扫描阶段 [安全扫描阶段] direction LR G[main.py scan CLI
输入URL/参数] H[predict_scanner.py
AI扫描引擎] I[自动利用链
sqlmap/commix/beef/msfconsole] J[report_generator.py
报告生成] G --> H H --> I H --> J I --> J end %% ========== 模型加载 ========== F -.->|模型加载| H ``` 2) 一键训练(提取 → 合并 → 打标 → 训练) ``` python main.py train ``` 默认读取 data/targets_dvwa.json、data/targets_bwapp.json、data/targets_pikachu.json,生成 data/features_all.json、data/train_dataset.csv,并在 models/ 下产出 vapf_rf_model.pkl 和 scaler.pkl。 3) 实时扫描并生成报告 ``` python main.py scan \ --url "http://testphp.vulnweb.com/listproducts.php?cat=1" \ --scan_mode combo \ --threshold 0.55 \ --max-payloads 50 \ --concurrency 3 \ --mutation-count 1 \ --report-format both ``` 常用可选项:`--deep-on-critical` 触发二次深度复验;`--deep-mode brute` 强化变异;`--report-name / --report-dir` 自定义基名与目录;`--no-headless` 便于调试;`--sqlmap-path / --commix-path / --beef-xss-path / --msfconsole-path` 覆盖可执行路径;`--exploit-timeout / --exploit-max` 控制自动利用时长与数量。 📄 报告输出 - 输出路径:reports/_YYYYMMDD_HHMMSS.html / .pdf(深度复验自动附加 _deep)。 - 内容:prob_raw/prob_effective、WAF 命中原因、信号标签、自动利用摘要(sqlmap/commix/beef/msfconsole)、证据片段、修复建议。 ⚠️ 免责声明 本工具仅供安全审计与合规测试使用。请勿在未授权环境扫描,风险自负。