此项目不再维护,我已将爬虫基础设施下线。
由于受众规模不足以证明维护的合理性。
Bug Bounty Recon(bbrecon)是一项免费的“侦察即服务”,专为漏洞赏金猎人和安全研究人员设计。该API旨在持续提供互联网“安全港”攻击面的最新地图,排除范围外的目标。
它附带一个符合人体工程学的CLI和Python库。
尽管我们已努力确保bbrecon返回的结果可靠且可信,但本服务及其运营者对您使用所提供数据的行为概不负责。
请仔细检查您的范围,并确保您停留在安全港内。
bbrecon正处于逐步Beta发布阶段;每隔几周发布主要功能以获取反馈并修复问题。您可以注册并开始使用,但请注意可能会在不另行通知的情况下部署重大更改。尽管服务和基础设施设计为可扩展,但目前尚未配置为服务于全球大量用户。将来可能会改变,但目前情况因人而异。
请使用GitHub Issues提交:bugs GitHub issues。
从控制台获取API密钥:https://console.bugbountyrecon.com
目前仅支持Google SSO。
$ pip3 install bbrecon
bbrecon需要Python >= 3.8 - 如果pip提示找不到bbrecon,可能是因为pip使用了其他Python版本。请用pip3 --version检查。
如果您打算使用CLI,建议永久配置您的密钥:
$ bbrecon configure key
Enter your API key: YOUR_API_KEY
或者,您也可以设置BBRECON_KEY环境变量。
以下命令将输出最近一个月内发布且包含“web”类型目标(API/Web应用)的所有项目:
$ bbrecon get programs --type web --since last-month
SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES
cybrary bugcrowd 2020-07-22 fame $0 $0 $0 6 android,ios,web
expressvpn bugcrowd 2020-07-14 cash,fame $150 $1047 $2500 17 android,ios,other,web
prestashop yeswehack 2020-07-23 cash $0 $0 $1000 1 web
...
要获取特定项目的范围,使用get scopes:
$ bbrecon get scopes rockset codefi-bbp
SLUG PLATFORM TYPE VALUE
rockset hackerone web console.rockset.com
rockset hackerone web docs.rockset.com
rockset hackerone web api.rs2.usw2.rockset.com
codefi-bbp hackerone web activate.codefi.network
要获取特定项目的域名,使用get domains:
$ bbrecon get domains dropcontact rebellion-defense
SLUG DOMAIN CREATED
dropcontact www.dropcontact.io 2020-08-23
rebellion-defense mooch.rip 2020-08-23
rebellion-defense www.rebelliondefense.com 2020-08-23
rebellion-defense rebelliondefense.com 2020-08-23
...
要创建Slack或Discord webhook通知,使用create notifications:
bbrecon create notifications --resources programs --program ALL --webhook https://SLACK_OR_DISCORD_WEBHOOK_URL/
您可以使用get notifications查看已配置的通知。
大多数命令可以输出JSON,方便与脚本集成。尝试--output json:
$ bbrecon get programs --output json
[
{
"url": "https://bugcrowd.com/optimizely",
"name": "Optimizely",
"platform": "bugcrowd",
"rewards": [
"cash",
"fame"
],
...
您可以通过向get programs命令传递一个或多个slug来获取特定项目的信息:
$ bbrecon get programs twago optimizely
SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES
twago intigriti 2020-04-09 $0 $0 $0 5 web
optimizely bugcrowd 2018-03-22 cash,fame $0 $750 $5000 6 web
使用--help获取每个命令的筛选参数列表:
$ bbrecon get programs --help
...
输出格式。默认值:wide。
-n, --name TEXT 按名称筛选。
-t, --type TEXT 按范围类型筛选。可多次使用。
-r, --reward TEXT 按奖励类型筛选。可多次使用。
-p, --platform TEXT 按平台筛选。可多次使用。
--exclude-platform TEXT 排除特定平台。如果已传递--platform则忽略。可多次使用。
-s, --since TEXT 筛选在某个日期之后创建的赏金项目。可以传递特定日期,格式为'%Y-%m-%d'。或者支持以下关键字:'yesterday', 'last-week', 'last-month', 'last-year'以及'last-X-days'(其中X为整数)。
...
注意,某些筛选器是列表,可以多次使用!如果您想获取所有包含移动应用范围的项目,可以运行:
$ bbrecon get programs --type android --type ios
SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES
square bugcrowd 2018-03-22 cash,fame $300 $492 $5000 4 android,ios,other,web
gojek bugcrowd 2018-03-22 cash,fame $200 $618 $5000 4 android,ios,web
smartthings bugcrowd 2018-03-22 fame $0 $0 $0 5 android,hardware,ios,web
...
欢迎查看此仓库的代码以获取更多细节,但入门方法如下:
from bbrecon import BugBountyRecon
bb = BugBountyRecon(token="API_KEY")
programs = bb.programs(
types=["web", "ios"],
platforms=["hackerone"],
rewards=["cash"],
)
for program in programs:
print(f"{program.name} rewards up to ${program.maximum_bounty}!")
print(f"More information is available at: {program.url}")
for scope in program.in_scope:
if scope.type == "desktop":
print("Found a desktop app in scope for this program. Cool!")
domains = list(bb.domains(programs=[program.slug]))
print("Here are some domains for this program:")
for domain in domains[:3]:
print(domain.name)
如果您偏好直接与REST API交互,可以查看API文档:此处。
以下针对Bug Bounty Recon API的客户端未经本人审核或认可,但您可能会感兴趣。非常感谢贡献者!
如果您希望在这里列出您的客户端,只需提交一个PR。