• Stars
    star
    225
  • Rank 177,187 (Top 4 %)
  • Language
  • Created almost 3 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A list of edge cases that occur in bug bounty programs, conversations on how they should be handled. The goal is to standardise the way that specific situations are handled in bug bounties.

What is This Repository?

This repository is a list of situations that occur in bug bounty programs and how they should be handled. Many of these are currently handled on a case-by-case basis, which leads to a lot of uncertainty and frustration from hackers, program owners and platforms. The goal of this repository is to standardise the way that these edge-cases are handled across all bounty platforms and programs. Hopefully standardization will allow expectations to be fulfilled more frequently from all parties.

This is a Draft

This document is a draft, and not yet implemented by any bug bounty platforms. At this stage, I am requesting comments from all interested parties.

How to Contribute

Please contribute by opening GitHub issues. All reasonable issues submitted will remain open for a minimum of 30 days for comments.

Your issue should state an opinion, e.g.

  • I feel that a scenario should be added for when a hacker reaches out directly to the program directly instead of reporting through the provided platform.
  • I feel that a scenario should be added for one party is abusive to another.
  • I feel that the resolution for scenario 4 should be changed to "hacker is able to publicly disclose vulnerability after 120 days of non-response".

Comments on the issue are welcome by anyone, but must be constructive and unemotional. Abusive behaviour will not be tolerated.

The Table

ID Situation Resolution
1 Hacker submits vulnerability with proof of exploitation. The vulnerability is fixed before the submission is triaged. Platform must provide proof that the submission was not accessed by the program prior to resolution. If the submission was accessed by the program, the program should pay the relevant bounty, otherwise submission is marked as duplicate.
2 Hacker submits vulnerability, program responds saying that they already knew about it internally. Program must provide proof that this was a previously known issue, for example, a screenshot of a Jira ticket including the date created. If the program is unable to provide proof, they should pay the bounty, otherwise the submission should be marked as a duplicate.
3 Hacker submits vulnerability, it is marked as a duplicate of another submission that did not fully explore the impact of the bug. For example, a hacker submits a full XSS which allows an account takeover, and dupes against another submission that only reported HTML injection. The first reporter receives a bounty based on the impact of their submission, the second reporter receives a bounty based on the impact of their submission minus the bounty received by the first reporter.
4 Hacker submits vulnerability, the program never responds. Platform pays the bounty.
5 Hacker submits vulnerability, hacker is incorrectly duped against a newer report. Platform changes the status of both reports to be accurate. If payment has already been made incorrectly, the organization who triaged incorrectly pays the bounty. For managed bounty programs this would generally be the platform, but for unmanaged programs this would be the program.
6 Hacker disagrees on the assigned severity rating. Hacker submits reasoning to ticket. If there is no response for 14 days, hacker submits reasoning to the platform's support channel. Severity upgrades are decided on a per-submission basis.
7 Hacker publicly discloses a bug that has been previously submitted to the platform, without explicit permission from the program owner. A researcher should be able to publicly disclose the vulnerability under the following circumstances: a) The bug has not been accepted as valid, i.e. it has been marked as N/A or Informative. b) The bug has been in a resolved state for 30+ days. c) The researcher has explicit permission to publicly disclose from the program. In other cases, the hacker receives 30 day ban from platform, hacker is emailed with full reasoning behind ban. Repeat offence results in permanent ban.
8 Hacker submits a bug that is within scope of the program, but is actually a bug in a third-party service. Every program should specify whether they accept bugs on 3rd party systems within their brief. If there is no specification, then it is assumed that ALL systems listed in the scope will be valid for payment, including 3rd party systems.
9 Hacker submits a zero-day vulnerability with no public exploits or disclosure existing, affecting in-scope systems. If any changes were made as a result of the report, i.e. configuration changes, taking systems offline, or applying WAF rules, the report should be accepted and rewarded. A distinction has to be made between zero-day exploits that are public, vs. zero-day exploits that your team would not have known about if it weren't for the bug bounty report.
10 Hacker submits a bug to a program that has an open scope brief. The bug is on an acquisition. The program owner does not control the IT infrastructure or staff of the acquisition. The program owner should make a good faith effort, verified by the platform, to inform the acquisition. Should the acquisition benefit from the submission, the program owner should pay the bounty. The brief should be updated to reflect if acquisition(s) are in scope.

More Repositories

1

how-to-exit-vim

Below are some simple methods for exiting vim.
7,022
star
2

hakrawler

Simple, fast web crawler designed for easy, quick discovery of endpoints and assets within a web application
Go
4,374
star
3

hakrevdns

Small, fast tool for performing reverse DNS lookups en masse.
Go
1,404
star
4

weaponised-XSS-payloads

XSS payloads designed to turn alert(1) into P1
JavaScript
1,338
star
5

hakoriginfinder

Tool for discovering the origin host behind a reverse proxy. Useful for bypassing cloud WAFs!
Go
831
star
6

haktrails

Golang client for querying SecurityTrails API data
Go
528
star
7

hakip2host

hakip2host takes a list of IP addresses via stdin, then does a series of checks to return associated domain names.
Go
416
star
8

hakcheckurl

Takes a list of URLs and returns their HTTP response codes
Go
388
star
9

haklistgen

Turns any junk text into a usable wordlist for brute-forcing.
Go
212
star
10

hakscale

Distribute ordinary bash commands over many systems
Go
162
star
11

haktldextract

Extract domains/subdomains from URLs en masse
Go
133
star
12

hakfindinternaldomains

Feed it a list of subdomains, it will resolve them and tell you which ones are internal
Go
92
star
13

hakcron

Easily schedule commands to run multiple times at set intervals (like a cronjob, but with one command)
Go
84
star
14

hakq

A basic golang server/client for distributing tasks over multiple systems.
Go
38
star
15

hakrevshell

Shell
37
star
16

hakcertstream

Basic implementation of certstream to print new subdomains and domains
Go
37
star
17

hakstore

Go
27
star
18

hakluke

18
star
19

hakcsp

Return domains in CSP headers in http response
Go
16
star
20

hakaxfr

Attempt zone transfers on domains
Go
16
star
21

hakjoke

Gets joke from icanhazdadjoke.com, prints it
Go
13
star
22

haksecuritytxt

Takes a list of domains as the input, checks if they have a security.txt, outputs the results.
Go
13
star
23

helloworlds

hello world in different languages
Assembly
12
star
24

----svg-onload-alert---

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
HTML
11
star
25

XSS

Xss payloads
JavaScript
9
star
26

hakawshostnames

Generate a list of all AWS hostnames
Go
8
star
27

hakurlencode

(en|de)code urls from the CLI
Go
6
star
28

gzipsplit

split lines of text into multiple gzip files
Go
6
star
29

hakgzsplit

Split text files into gzip files with x lines
Go
5
star
30

vulnerable-code-examples

An unorganized batch of vulnerable code examples for use in my blogs, training, etc.
PHP
5
star
31

wordlesolver

Little python script + dictionary to help solve Wordle puzzles
Python
4
star
32

FakeKoala

3
star
33

diodb-api

Go
2
star