前置知识: 网络安全

Burp Suite 命令行

2 min入门

Burp Suite 命令行与自动化:目标范围配置、爬取与主动扫描、API/扩展集成与 CI 中的 DAST 思路

Burp Suite 启动配置

基本写法:启动 Burp Suite GUI java -jar burpsuite_pro.jar

# 启动 Burp Suite 专业版
java -jar burpsuite_pro.jar

基本写法:命令行模式启动 java -jar burpsuite_pro.jar --cmd

# 命令行模式启动 Burp(用于自动化)
java -jar burpsuite_pro.jar --cmd

基本写法:指定配置文件启动 java -jar burpsuite_pro.jar --config-file=<配置文件>

# 使用指定配置文件启动
java -jar burpsuite_pro.jar --config-file=project.json

基本写法:无界面启动(无 GUI) java -jar burpsuite_pro.jar --cmd --project=<项目文件>

# 无图形界面启动 Burp(适合服务器运行)
java -jar burpsuite_pro.jar --cmd --project=audit.burp

基本写法:指定内存启动 java -Xmx<大小> -jar burpsuite_pro.jar

# 分配 4GB 内存启动 Burp
java -Xmx4g -jar burpsuite_pro.jar

Burp REST API 操作

基本写法:启动 REST API 服务 java -jar burpsuite_pro.jar --api-key=<密钥>

# 启动时指定 API 密钥
java -jar burpsuite_pro.jar --api-key=mysecretkey --project=audit.burp

基本写法:获取 API 版本 curl -H "Authorization: <密钥>" http://127.0.0.1:1337/v0.1/version

# 查询 Burp REST API 版本
curl -H "Authorization: mysecretkey" http://127.0.0.1:1337/v0.1/version

基本写法:启动扫描任务 curl -X POST -H "Authorization: <密钥>" -H "Content-Type: application/json" http://127.0.0.1:1337/v0.1/scan -d '<JSON>'

# 通过 API 启动站点扫描
curl -X POST -H "Authorization: mysecretkey" -H "Content-Type: application/json" http://127.0.0.1:1337/v0.1/scan -d '{"urls":["https://example.com"]}'

基本写法:查看扫描状态 curl -H "Authorization: <密钥>" http://127.0.0.1:1337/v0.1/scan/<任务ID>

# 查询指定扫描任务状态
curl -H "Authorization: mysecretkey" http://127.0.0.1:1337/v0.1/scan/abc123

基本写法:获取扫描结果 curl -H "Authorization: <密钥>" http://127.0.0.1:1337/v0.1/scan/<任务ID>/issues

# 获取扫描发现的问题列表
curl -H "Authorization: mysecretkey" http://127.0.0.1:1337/v0.1/scan/abc123/issues

Burp Suite 扫描配置

基本写法:配置爬虫深度 --crawl-depth=<深度>

# 设置爬虫最大深度为 5
java -jar burpsuite_pro.jar --cmd --crawl-depth=5

基本写法:设置爬虫超时 --crawl-timeout=<秒数>

# 爬虫 600 秒后超时
java -jar burpsuite_pro.jar --cmd --crawl-timeout=600

基本写法:配置并发连接 --max-connections=<数量>

# 设置最大并发连接数
java -jar burpsuite_pro.jar --cmd --max-connections=20

基本写法:配置请求间隔 --request-delay=<毫秒>

# 请求间隔 200 毫秒(防止触发限流)
java -jar burpsuite_pro.jar --cmd --request-delay=200

基本写法:设置扫描超时 --scan-timeout=<秒数>

# 扫描 3600 秒后自动停止
java -jar burpsuite_pro.jar --cmd --scan-timeout=3600

Burp 代理与证书

基本写法:指定代理端口 --proxy-port=<端口>

# 设置代理监听端口
java -jar burpsuite_pro.jar --proxy-port=8080

基本写法:导出 CA 证书 curl -x http://127.0.0.1:8080 -o <文件> http://burp/cert

# 通过代理获取 Burp CA 证书
curl -x http://127.0.0.1:8080 -o burp-cert.cer http://burp/cert

基本写法:导入证书到系统 keytool -import -trustcacerts -alias burp -file <证书> -keystore <keystore>

# 将 Burp CA 证书导入 Java keystore
keytool -import -trustcacerts -alias burp -file burp-cert.cer -keystore $JAVA_HOME/lib/security/cacerts

基本写法:设置上游代理 --upstream-proxy=<代理URL>

# 配置 Burp 使用上游代理
java -jar burpsuite_pro.jar --upstream-proxy=http://upstream-proxy:8081

基本写法:配置 SOCKS 代理 --socks-proxy=<主机:端口>

# 配置 SOCKS5 代理(配合 SSH 隧道)
java -jar burpsuite_pro.jar --socks-proxy=127.0.0.1:1080

Burp 扫描自动化

基本写法:命令行扫描单个 URL java -jar burpsuite_pro.jar --cmd --scan-target=<URL>

# 扫描单个目标 URL
java -jar burpsuite_pro.jar --cmd --scan-target=https://example.com

基本写法:批量扫描 URL java -jar burpsuite_pro.jar --cmd --scan-targets-file=<文件>

# 从文件读取 URL 列表批量扫描
java -jar burpsuite_pro.jar --cmd --scan-targets-file=urls.txt

基本写法:导入爬虫结果 java -jar burpsuite_pro.jar --cmd --import-file=<文件>

# 导入之前保存的爬虫结果
java -jar burpsuite_pro.jar --cmd --import-file=crawl.xml

基本写法:导出扫描报告 java -jar burpsuite_pro.jar --cmd --export-report=<文件>

# 导出扫描报告为 HTML
java -jar burpsuite_pro.jar --cmd --export-report=report.html

基本写法:指定报告格式 --report-format=<格式>

# 导出 XML 格式报告
java -jar burpsuite_pro.jar --cmd --export-report=report.xml --report-format=xml

Burp 扩展加载

基本写法:加载扩展 --extension=<扩展文件>

# 启动时加载扩展
java -jar burpsuite_pro.jar --extension=/path/to/extension.jar

基本写法:从 BApp Store 加载 --bapp=<扩展名>

# 加载 BApp Store 中的扩展
java -jar burpsuite_pro.jar --bapp=LoggerPlusPlus

基本写法:列出已安装扩展 --list-extensions

# 列出所有已安装的扩展
java -jar burpsuite_pro.jar --list-extensions

基本写法:卸载扩展 --remove-extension=<扩展名>

# 卸载指定扩展
java -jar burpsuite_pro.jar --remove-extension=LoggerPlusPlus

基本写法:更新所有扩展 --update-extensions

# 更新 BApp Store 中所有已安装扩展
java -jar burpsuite_pro.jar --update-extensions

Burp Intruder 自动化

基本写法:启动 Intruder 任务 curl -X POST -H "Authorization: <密钥>" http://127.0.0.1:1337/v0.1/intruder -d '<JSON>'

# 通过 API 启动 Intruder 任务
curl -X POST -H "Authorization: mysecretkey" -H "Content-Type: application/json" http://127.0.0.1:1337/v0.1/intruder -d '{"target":"https://example.com/login"}'

基本写法:使用 burprepeater 命令行 curl -X POST -H "Authorization: <密钥>" http://127.0.0.1:1337/v0.1/repeater -d '<JSON>'

# 通过 API 发送 Repeater 请求
curl -X POST -H "Authorization: mysecretkey" -H "Content-Type: application/json" http://127.0.0.1:1337/v0.1/repeater -d '{"request":"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"}'

基本写法:加载 payload 文件 --payload-file=<文件>

# 加载字典文件用于 Intruder
java -jar burpsuite_pro.jar --payload-file=passwords.txt

基本写法:设置 payload 编码 --payload-encoding=<编码>

# 设置 payload URL 编码
java -jar burpsuite_pro.jar --payload-encoding=url

Burp 日志与分析

基本写法:启用请求日志 --log-file=<文件>

# 启动时记录所有请求到日志
java -jar burpsuite_pro.jar --log-file=traffic.log

基本写法:启用详细日志 --verbose

# 输出详细日志信息
java -jar burpsuite_pro.jar --cmd --verbose

基本写法:统计请求数量 grep -c "Request:" <日志文件>

# 统计日志中请求数量
grep -c "GET\|POST" traffic.log

基本写法:提取异常响应 grep "500 Internal\|403 Forbidden" <日志文件>

# 提取服务器错误响应
grep -E "500 Internal|403 Forbidden|401 Unauthorized" traffic.log

基本写法:监控实时请求 tail -f <日志文件> | grep -E "POST|PUT|DELETE"

# 实时监控危险方法请求
tail -f traffic.log | grep -E "POST|PUT|DELETE"

Burp 项目管理

基本写法:创建临时项目 --project=temporary

# 创建临时项目(关闭后丢弃)
java -jar burpsuite_pro.jar --project=temporary

基本写法:打开指定项目 --project=<项目文件>

# 打开已存在的项目文件
java -jar burpsuite_pro.jar --project=audit.burp

基本写法:保存项目 --save-project=<文件>

# 命令行退出时保存项目
java -jar burpsuite_pro.jar --cmd --save-project=audit.burp

基本写法:导出配置 --export-config=<文件>

# 导出当前配置到文件
java -jar burpsuite_pro.jar --export-config=settings.json

基本写法:导入配置 --import-config=<文件>

# 从配置文件导入设置
java -jar burpsuite_pro.jar --import-config=settings.json

Burp 认证配置

基本写法:设置代理认证 --proxy-auth=<用户>:<密码>

# 配置代理需要认证
java -jar burpsuite_pro.jar --proxy-auth=user:pass

基本写法:设置平台认证 --platform-authentication

# 启用平台认证集成
java -jar burpsuite_pro.jar --platform-authentication

基本写法:加载 Cookie 文件 --cookie-jar=<文件>

# 从文件加载 Cookie 用于扫描
java -jar burpsuite_pro.jar --cookie-jar=cookies.txt

基本写法:设置 HTTP 头 --header="<头>:<值>"

# 添加自定义请求头
java -jar burpsuite_pro.jar --header="Authorization: Bearer token123"

基本写法:忽略 SSL 证书错误 --ignore-ssl-errors

# 忽略 SSL 证书校验错误
java -jar burpsuite_pro.jar --ignore-ssl-errors