├── lib.txt ├── static ├── 1.png ├── 2.png ├── 3.png ├── 4.png └── 5.png ├── .github └── FUNDING.yml ├── LICENSE ├── README.md └── FindProgram.py /lib.txt: -------------------------------------------------------------------------------- 1 | google 2 | argparse 3 | requests 4 | colorama -------------------------------------------------------------------------------- /static/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyrezo/FindBBP/HEAD/static/1.png -------------------------------------------------------------------------------- /static/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyrezo/FindBBP/HEAD/static/2.png -------------------------------------------------------------------------------- /static/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyrezo/FindBBP/HEAD/static/3.png -------------------------------------------------------------------------------- /static/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyrezo/FindBBP/HEAD/static/4.png -------------------------------------------------------------------------------- /static/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alyrezo/FindBBP/HEAD/static/5.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: alyreza # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 ΛLIRΞZΛ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Find BBP 3 |
4 |

5 | 6 |

7 | Features • 8 | Installation • 9 | Usage • 10 | Running • 11 | License 12 |

13 | 14 | --- 15 | 16 | Find Bug Bounty Program In short Find BBP is a google crawler and tool that discovers bug Bounty Program via security.txt file by default and you can use custom dork 17 | 18 | # Features 19 | 20 |

21 | Find BBP 22 |
23 |

24 | 25 | - Fast and powerful 26 | - Find private program 27 | - use custom dork 28 | - output export as txt file 29 | - sort tld domains 30 | 31 | # Installation 32 | 33 | Find BBP requires **python3** to install successfully. Run the following command to install: 34 | 35 | - ```git clone https://github.com/alyrezo/FindBBP``` 36 | - ```cd FindBBP ``` 37 | - ``` python -m pip install -r lib.txt``` 38 | - ```py FindProgram.py``` 39 | 40 | # Usage 41 | 42 | ```sh 43 | py FindProgram.py -h 44 | ``` 45 | This will display help for the tool. Here are all the switches it supports. 46 | 47 | ```yaml 48 | usage: FindProgram.py [-h] [--silence] [-n] [-d DORK] [-o OUTPUT] [-c COUNT] [-t TLD] 49 | 50 | optional arguments: 51 | -h, --help show this help message and exit 52 | --silence Not displaying the banner 53 | -n, --nonstop non stop crawling 54 | -d , --dork for using your custom dork 55 | -o , --output result export as txt file 56 | -c , --count count of domains it finds 57 | -t , --tld for sort Top-Level Domain 58 | 59 | ``` 60 | 61 | # Running 62 | 63 | To run the tool, just use the following command. 64 | 65 | ```sh 66 | py FindProgram.py --nonstop 67 | ``` 68 |

69 | Find BBP 70 |
71 |

72 | 73 | ```sh 74 | py FindProgram.py --silence --count 10 --output url.txt 75 | ``` 76 |

77 | Find BBP 78 |
79 |

80 | 81 | ```sh 82 | py FindProgram.py --silence --tld io 83 | ``` 84 |

85 | Find BBP 86 |
87 |

88 | 89 | ```sh 90 | py FindProgram.py --silence --dork "responsible disclosure program" 91 | ``` 92 |

93 | Find BBP 94 |
95 |

96 | 97 | # License 98 | `Find BBP` is made with 💚 by the [alyrezo](https://Twitter.com/alyrezo) 99 | -------------------------------------------------------------------------------- /FindProgram.py: -------------------------------------------------------------------------------- 1 | from googlesearch import search 2 | import time, os, argparse, requests, colorama , sys 3 | 4 | colorama.init() 5 | 6 | banner = colorama.Fore.RED + """ 7 | ███████╗██╗███╗ ██╗██████╗ ██████╗ ██████╗ ██████╗ 8 | ██╔════╝██║████╗ ██║██╔══██╗ ██╔══██╗██╔══██╗██╔══██╗ 9 | █████╗ ██║██╔██╗ ██║██║ ██║ ██████╔╝██████╔╝██████╔╝ 10 | ██╔══╝ ██║██║╚██╗██║██║ ██║ ██╔══██╗██╔══██╗██╔═══╝ 11 | ██║ ██║██║ ╚████║██████╔╝ ██████╔╝██████╔╝██║ 12 | ╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ 13 | 14 | """ + colorama.Fore.CYAN + """Twitter: @Alyrezo 15 | Github: https://github.com/Alyrezo 16 | """ 17 | 18 | parser = argparse.ArgumentParser() 19 | parser.add_argument('--silence',action="store_const",const=True,help="Not displaying the banner") 20 | parser.add_argument('-n','--nonstop',action="store_const",const=True,help="non stop crawling") 21 | parser.add_argument('-d','--dork',type=str,help="for using your custom dork") 22 | parser.add_argument('-o','--output',type=str,help="result export as txt file") 23 | parser.add_argument('-c','--count',type=int,help='count of domains it finds') 24 | parser.add_argument('-t','--tld',type=str,help="for sort Top-Level Domain") 25 | args = parser.parse_args() 26 | 27 | if args.dork == None: 28 | dork = 'inurl:"security.txt" ext:txt -github -wikipedia' 29 | if args.tld != None: 30 | dork = f"site:{args.tld} " + dork 31 | else: 32 | dork = str(args.dork).replace("'","") 33 | 34 | if args.silence == None: 35 | print(banner) 36 | print(colorama.Fore.YELLOW + "[!] " + dork) 37 | 38 | try: 39 | os.remove(".google-cookie") 40 | except: 41 | pass 42 | 43 | if args.output != None: 44 | file = args.output 45 | with open(file,'w') as tmp: 46 | tmp.close() 47 | 48 | count = 0 49 | try: 50 | for results in search(dork, tld="com", lang="en",num=5, start=0, stop=None, pause=2): 51 | if args.silence == None: 52 | print(colorama.Fore.GREEN +'[+] '+results[results.find('/',results.find('/'))+2:results.find('/',results.find('/')+2)]) 53 | try: 54 | print(colorama.Fore.BLUE + requests.get(results,timeout=2).text+'\n\n') 55 | except: 56 | pass 57 | else: 58 | print(colorama.Fore.GREEN + results) 59 | 60 | if args.count != None: 61 | if count == args.count: 62 | break 63 | else: 64 | count += 1 65 | 66 | if args.output != None: 67 | with open(file,'a') as tmp: 68 | tmp.write(results + '\n') 69 | 70 | if args.nonstop or args.count or args.silence == None: 71 | print('\n' + colorama.Fore.YELLOW + '[!] continue...',end='') 72 | input() 73 | 74 | time.sleep(0.1) 75 | except KeyboardInterrupt: 76 | sys.exit() 77 | 78 | --------------------------------------------------------------------------------