如何通过VMware burp-rest-api登录Web应用并开展漏洞扫描?
使用burp-rest-api实现目标Web应用登录并开展漏洞扫描
刚好我对burp-rest-api的使用比较熟悉,给你梳理下怎么实现目标Web应用的登录,让后续的漏洞扫描能带着登录态正常开展:
核心逻辑
要让Burp的扫描器、爬虫能访问需要登录的页面,关键是让Burp发出的请求带上目标应用的有效会话凭证——通常是Cookie或者Token。我们可以通过API把凭证配置到Burp中,让后续操作自动复用这个登录态。
具体操作步骤
1. 先拿到目标应用的有效会话凭证
首先你得先获取到登录后的会话信息,最简单的方式是用curl模拟登录请求,或者手动在浏览器登录后复制Cookie。比如针对你的localhost:85测试目标,假设登录接口是/login,可以这样模拟登录:
# 替换成目标实际的登录参数和接口 curl -i -X POST http://127.0.0.1:85/login \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=test_user&password=test_pass"
从响应的Set-Cookie头里提取出完整的Cookie字符串(比如SESSIONID=xyz123; Path=/),或者如果是Token认证,提取Authorization头的值。
2. 给Burp配置登录会话(两种可选方式)
方式一:全局配置会话凭证(所有请求自动带上)
如果你希望Burp的所有操作都用这个登录态,可以把凭证配置到全局请求头里:
# 替换成你实际拿到的Cookie或Token curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' \ 'http://localhost:8080/burp/options/headers' \ -d '{"headers": {"Cookie": "SESSIONID=xyz123"}}'
如果是Token认证,就把Cookie换成Authorization: Bearer your_jwt_token。
方式二:在单个操作中指定会话凭证(灵活控制)
如果不想全局生效,也可以在发起爬虫、扫描请求时单独带上会话头,比如:
带登录态爬取目标:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ 'http://localhost:8080/burp/spider?baseUrl=http://127.0.0.1:85' \ -d '{"headers": {"Cookie": "SESSIONID=xyz123"}}'
带登录态主动扫描:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: */*' \ 'http://localhost:8080/burp/scanner/scans/active?baseUrl=http://127.0.0.1:85' \ -d '{"headers": {"Cookie": "SESSIONID=xyz123"}}'
3. 验证登录态是否生效
在正式扫描前,建议先测试下登录态是否有效,比如请求一个需要登录才能访问的页面:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ 'http://localhost:8080/burp/request' \ -d '{"url": "http://127.0.0.1:85/protected-page", "headers": {"Cookie": "SESSIONID=xyz123"}}'
如果响应返回的是登录后的内容(而非跳转登录页或403),说明会话配置成功了。
4. 完整的扫描流程(结合你的原有步骤)
现在就可以带着登录态执行你原来的操作流程了,完整命令如下:
# 1. 添加目标到Burp扫描范围 curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' 'http://localhost:8080/burp/target/scope?url=http://127.0.0.1:85' # 2. 带登录态爬取目标站点 curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ 'http://localhost:8080/burp/spider?baseUrl=http://127.0.0.1:85' \ -d '{"headers": {"Cookie": "SESSIONID=xyz123"}}' # 3. 带登录态发起主动漏洞扫描 curl -X POST --header 'Content-Type: application/json' --header 'Accept: */*' \ 'http://localhost:8080/burp/scanner/scans/active?baseUrl=http://127.0.0.1:85' \ -d '{"headers": {"Cookie": "SESSIONID=xyz123"}}' # 4. 查询扫描状态和结果 curl -X GET --header 'Accept: application/json' 'http://localhost:8080/burp/scanner/scans'
一些注意点
- 会话凭证可能会过期,记得定期更新(比如重新模拟登录获取新的Cookie/Token)。
- 如果目标应用有验证码或多因素认证,可能需要先手动完成验证再提取会话凭证。
- 确保添加到Burp范围的URL准确,避免扫描到无关站点。
内容的提问来源于stack exchange,提问作者user169717
相关产品推荐
相关产品推荐

