【新版首发】BSCAN-高效实
字数 1123 2025-08-10 00:23:58

BSCAN HTTP扫描器使用详解

1. 项目概述

BSCAN是一款基于Golang开发的高效HTTP扫描器,前身为WebAliveScan。它解决了传统扫描器的多个痛点:

  • 提供黑名单功能过滤无效页面(如CDN/WAF页面)
  • 跨平台能力强(Windows/Linux/Mac)
  • 集成指纹识别功能
  • 降低误报率(不单纯依赖状态码判断)

2. 核心功能

2.1 基础参数配置

支持以下基础参数(可在config.yml中配置默认值):

  • -ports:指定扫描端口(如80,443,8080-8090)
  • -threads:指定线程数(默认1024)
  • -allow-redirects:跟踪重定向
  • -timeout:HTTP超时时间(默认3秒)
  • -path:请求路径(如/admin/index.php)

2.2 指纹识别系统

指纹库支持7个字段:

  • webserver:Web服务器类型
  • framework:框架类型
  • application:应用类型
  • os:操作系统
  • desc:描述信息
  • lang:开发语言
  • expression:匹配表达式

表达式示例

- webserver: Nginx
  expression: response.headers["Server"].icontains("Nginx") || response.body.bcontains(b"<center>nginx</center>")

- application: phpstudy
  expression: response.body.bcontains(b"phpstudy for windows")
  os: windows
  lang: php

2.3 黑名单机制

黑名单支持2个字段:

  • name:规则名称
  • expression:匹配表达式

示例

- name: ERROR_CODE
  expression: response.status == 400 || response.status == 503 || response.status == 502

- name: ANHENG_WAF
  expression: response.body.bcontains(b"iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC")

2.4 自定义POC

POC支持4个字段:

  • name:POC名称
  • request:HTTP请求配置
  • filter_expr:过滤表达式
  • verify_expr:验证表达式

示例

name: druid
request:
  method: GET
  path:
    - /druid/login.html
    - /druid/index.html
  headers: 
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
  timeout: 5
  allow_redirects: true

filter_expr: aw.lang == "java" || aw.lang == ""
verify_expr: response.body.bcontains(b"Druid Stat Index") || response.body.bcontains(b"druid monitor")

3. 实战应用指南

3.1 目标输入格式

支持三种输入格式:

  1. 域名:www.baidu.com(使用默认端口)
  2. 域名+端口:www.baidu.com:80
  3. 完整URL:http://www.baidu.com/

3.2 快捷过滤技巧

使用-filter参数进行临时过滤:

./bscan -target target.txt -ports 80,443 -filter response.status==200

过滤后台页面:

./bscan -target target.txt -ports 80,443 -filter response.body.bcontains(b"后台") -path /admin/index.html

3.3 指定单个POC扫描

./bscan -target target.txt -ports 80,443 -exploit -poc pocs/backup.yml

3.4 处理OneForAll结果

cat results/*.csv |awk -F , '{print$6}' > <filepath>
./bscan -target <filepath>

3.5 指纹识别应用

  1. 在config.yml中定义默认HTTP请求头
  2. 在指纹库中添加指纹规则
  3. 扫描结果将显示应用标识

3.6 POC过滤优化

在指纹库定义特定应用指纹后,在POC中设置filter规则,使扫描器只在匹配特定指纹时才执行该POC。

4. 未来计划

  • 支持更多输出格式(HTML/Json/XML)
  • Fast模式(集成Fofa API)
  • 扫描结果数据库存储
  • 分布式扫描功能

5. 项目资源

GitHub地址:https://github.com/broken5/bscan

通过合理配置BSCAN的各项功能,可以显著提高渗透测试中信息收集阶段的效率和准确性,特别是在处理大规模目标时效果尤为明显。

BSCAN HTTP扫描器使用详解 1. 项目概述 BSCAN是一款基于Golang开发的高效HTTP扫描器,前身为WebAliveScan。它解决了传统扫描器的多个痛点: 提供黑名单功能过滤无效页面(如CDN/WAF页面) 跨平台能力强(Windows/Linux/Mac) 集成指纹识别功能 降低误报率(不单纯依赖状态码判断) 2. 核心功能 2.1 基础参数配置 支持以下基础参数(可在config.yml中配置默认值): -ports :指定扫描端口(如80,443,8080-8090) -threads :指定线程数(默认1024) -allow-redirects :跟踪重定向 -timeout :HTTP超时时间(默认3秒) -path :请求路径(如/admin/index.php) 2.2 指纹识别系统 指纹库支持7个字段: webserver :Web服务器类型 framework :框架类型 application :应用类型 os :操作系统 desc :描述信息 lang :开发语言 expression :匹配表达式 表达式示例 : 2.3 黑名单机制 黑名单支持2个字段: name :规则名称 expression :匹配表达式 示例 : 2.4 自定义POC POC支持4个字段: name :POC名称 request :HTTP请求配置 filter_expr :过滤表达式 verify_expr :验证表达式 示例 : 3. 实战应用指南 3.1 目标输入格式 支持三种输入格式: 域名: www.baidu.com (使用默认端口) 域名+端口: www.baidu.com:80 完整URL: http://www.baidu.com/ 3.2 快捷过滤技巧 使用 -filter 参数进行临时过滤: 过滤后台页面: 3.3 指定单个POC扫描 3.4 处理OneForAll结果 3.5 指纹识别应用 在config.yml中定义默认HTTP请求头 在指纹库中添加指纹规则 扫描结果将显示应用标识 3.6 POC过滤优化 在指纹库定义特定应用指纹后,在POC中设置filter规则,使扫描器只在匹配特定指纹时才执行该POC。 4. 未来计划 支持更多输出格式(HTML/Json/XML) Fast模式(集成Fofa API) 扫描结果数据库存储 分布式扫描功能 5. 项目资源 GitHub地址:https://github.com/broken5/bscan 通过合理配置BSCAN的各项功能,可以显著提高渗透测试中信息收集阶段的效率和准确性,特别是在处理大规模目标时效果尤为明显。