For an absolute beginner, the field of bug bounty and the even larger field of cybersecurity as a whole can feel vastly overwhelming and confusing. False information is everywhere, and people are swamped with so much terrible information that it becomes rather difficult to find decent information amongst a sea of absolute crap. The purpose of this page is not to teach you cybersecurity, as that would be far too time-consuming.. instead, this page will help point you in the right direction and tell you which topics you need to focus on in order to properly get into cybersecurity. The onus is then upon you to actually go ahead and learn that information. We aren't going to hold your hand through this entire process – we will merely give you an overview of what topics are required to become at least somewhat competent at cybersecurity. Sorry in advance, but some people need to hear this: if you are expecting someone to hold your hand and teach you everything about cybersecurity one step at a time, then in all probability you lack the inquisitive and curious nature required to become competent in this field. This is not an attempt at “gatekeeping” or anything of the sort, we are just pointing out the fact that to ever become good at cybersecurity (or even programming for that matter) you must first become good at using google to find specific answers to your questions. So, as a quick recap as to what this guide is and what it isn't… This post will help you gain an understanding of what it is that you need to learn to become good at cybersecurity, but that is all. The rest is on you. What this post will not do is teach you “HoW To BeCoMe A HaCkEr”. In the words of a wise man; “Don't learn to hack, hack to learn”. Anyhow, enough rambling. Without further ado, let's begin.
Before you even consider getting into cybersecurity of any sort, you should ask yourself the following questions:
If you don't know the answers to the majority of these questions, then you should not be diving head-first into cybersecurity. You're just going to overwhelm yourself and will wind up quitting before actually giving it a proper chance. We have witnessed this countless times. Don't try to run before learning to walk. Honestly, a lot of the time, rather than focusing on trying to learn how to hack, you should instead be focusing on gaining an understanding of fundamental core concepts such as these, then, by default, you will begin to naturally gain an understanding as to how hacking works – As a whole, learning the fundamentals is a lot more productive and beneficial than confusing yourself by attempting to learn advanced hacking techniques as a newcomer. It's probably not the best of ideas to be trying to exploit flaws in code when you don't know the first thing as to how that code works, and you don't even have a grasp on basic conditional logic within programming. It wouldn't be the smartest of decisions to be capturing HTTP requests and analyzing them, without an understanding as to how HTTP Request/Response headers are structured or formatted. If you don't already know concepts like programming and networking, then you should not be attempting to learn how to hack right now. You should pause your attempts at learning how to hack, and instead spending your time focusing on learning how to code properly, and gaining an understanding of networking concepts such as the OSI Model.
Now, expanding on the list of questions above, we are going to release a new list that we personally think are important fundamental things you should learn before even attempting to learn how to hack. We will present them to you as a checklist of questions in some bullet points (note that these aren't necessarily “vital”, you can definitely learn to hack without knowing all of these things. These are just our personal recommendations for learning concepts that would make hacking a lot easier to understand. Please do remember though, that these are entirely optional, and you can continue on to the rest of the guide without covering these.):
If you learned all of these topics by yourself in-depth over time, then, by the time you were done doing all of that, you would already have a pretty decent undertanding as to how hacking works. Even if you may not yet know the names of specific attack types or how exactly they are carried out, you will at least have a pretty general idea as to how the process works. The materials within this Wiki are going to be primarily focused on web application security, due to the fact that the majority of bug bounty programs are still web-based… However, we will still be branching out into other areas that are becoming eligible for bounties, such as DeFi, Cloud Security, and Mobile-based security. Despite this, we will still mostly be focused on web application security, with that making up around 80% of our total content. Seriously, if you take anything whatsoever from this guide, it should be that you need to avoid wasting your time attempting to learn “how to hack” and instead just focus on learning these fundamental core tech-related concepts.. the deeper understanding that they will give you will allow hacking-related concepts to begin to be picked up and understood more “naturally” by you in future, if they are disucssed around you (as opposed to if you hadn't learned these core concepts).
After having learned some of the fundamentals, and taught yourself some basic networking and programming concepts, hacking-related concepts should now be a lot easier for you to understand. For example if someone is talking about sending their payload via a HTTP POST request, you will now know exactly what they mean.
There are a bunch resources which you should learn like the back of your hand, and use as a near-constant refernece. There are lots of decent books on web application security and bug bounty hunting. Some examples that come to mind that I think are worth taking a look at are Jason Haddix's book, and Zseano's book. Bookmark the OWASP Top 10 + The OWASP Wiki and OWASP Cheatsheet Series. Personally, I think the old wiki link is a better option than teh current cheatsheet series links. The original wiki link can be found here. You should also keep an eye on bug bounty related feeds, to ensure that you are staying up to date with recently disclosed reports. I personally have a bot which feeds reports from the hackerone.com “hacktivity” feed into my Discord or IRC chat rooms, so that we are frequently being updated with newly-released bug reports. I also follow the @disclosedh1 twitter account, which shares the links to recently-disclosed hackerone reports. In addition to this, two other pages that are definitely wortwhile bookmarking are the PayloadAllTheThings github (you can use this as a reference while testing for various types of web-based vulnerabilities) and additionally the seclists github (you can use these lists paired with things like subdomain enumeration tools or fuzzers).
There are a number of tools that you should download in preperation for learning bug bounty. The operating system that you decide to use is a matter of personal preference. I often see people saying that it's not possible to hack on Windows, but it most certainly is! Most people will either use Windows or Linux. Personally, I run both ArchStrike (a fork of blackarch made to be a lot more modern and efficient, so essentially it's Arch Linux for pentesting) and additionally I run Win10 + Win-KeX via WSL2. In terms of tools, while it is possible to hack webapps and do bug bounties via your browser alone, it is a lot more efficient to utilize a handful of tools. It is worth pointing out that while some tools are useful, others should be avoided like the plague - in particular, vulnerability scanners should be avoided. The reasoning for this is that they are noisy (e.g. they produce lots of logs), they have a high rate of false positives (stuff that isn't vulnerable being marked as vulnerable), and they have a high rate of false negatives (actual vulnerabilities being missed). The only times you should actually be relying on tools or automation are for the following circumstances:
Usage of tools is acceptable in the three scenarios above. Within scenario 3, you should only be using tools such as this if you already have an understanding of how the technique works manually (and you are just using the tool to save a lot of time by automating the process). As a general rule of thumb, if you're not capable of writing a tool that performs the same actions and makes use of the same concepts, then you have no business using such a tool in the first place. You should only ever be automating stuff that you're capable of doing manually, because if you rely on autoamtion for everything, then how do you expect to ever learn properly and expand your skillsets?
Here are some tools that I personally use, which fit into the categories above. I will name each of the tools and also write a brief description explaining a usage case for each tool:
It is also worth noting, that in addition to all of the tools listed above, many of the tools you wind up using will very likely be your own. Probably 80% of the tools I personally use for reconnaissance are my custom bash scripts or custom nmap NSE scripts. Over time you'll learn to write custom scripts for custom reconnaissance against specific targets. You'll build your own recon scripts suited to those particular targets, and you'll also wind up using custom wordlists, subdomain lsits, or fuzz lists, or even building your own based off of permutations using tools such as altdns.