Bug Bounty Hunting for Beginners
Bug Bounty Hunting for Beginners How to Find Your First Vulnerability Muntaha Ghafoor Table of Content: 1-Introduction: 2 2-How Bug Bounty Programmes Work: 2 3-Choosing the Right Platform and Programme: 3 4-Mindset and the Eight Vulnerability Types Beginners Actually Find: 4 5Reconnaissance, Tools, and the IDOR Workflow: 5 6-Writing Reports That Get Paid: 6 7-The 90-Day Roadmap: 6 8-Conclusion: …………………………………………………………………………………….7 9-Reference: …………………………………………………………………………………… 7 Introduction: Bug bounty hunting has become one of the most accessible entry points into a cybersecurity career. It requires no degree, no certification, and no employer, only a laptop, an internet connection, and a systematic approach. Companies including Google, Meta, Microsoft, and Apple pay independent researchers to find vulnerabilities in their systems, and platforms like HackerOne have paid out over $300 million in bounties since launching. This report summarizes HackersOnlineClub’s 2026 beginner’s guide to bug bounty hunting, which argues that most newcomers fail not from lack of skill but from choosing the wrong programmes, chasing the wrong vulnerability types, and submitting reports that never get triaged properly. The guide provides a structured methodology, from platform selection through report writing, built around a 90-day roadmap to a first payout. How Bug Bounty Programmes Work: A bug bounty programme is a formal arrangement in which a company invites researchers to test its systems and pays cash rewards for valid, in-scope findings. The company defines the scope (which systems can be tested), the rules (what qualifies), and a bounty table (how much different severities pay). The researcher’s job is to choose a programme, read its scope carefully, test only permitted systems, and submit a clear report once a vulnerability is found and confirmed. The guide stresses that testing anything outside a defined scope is illegal regardless of intent, and that researchers should contact the programme team directly whenever scope is unclear rather than testing speculatively. On realistic pay expectations, the guide breaks down typical bounty ranges by severity: informational or low findings often pay $50 to $200 or nothing at all on smaller programmes; medium severity findings typically pay $200 to $2,000; high severity findings pay $2,000 to $10,000; and critical findings can pay $10,000 to over $150,000 on major programmes. It cautions that while top earners on HackerOne make $500,000 to $2 million annually, the median active researcher earns closer to $5,000 to $30,000 per year as side income, and that a realistic first bounty is in the $150 to $500 range for a medium-severity finding. Choosing the Right Platform and Programme: The guide compares six platforms where bug bounty programmes are hosted: HackerOne (3,000+ programmes, rated most beginner-friendly with the largest community and documentation), Bugcrowd (1,500+ programmes, strong in government, fintech, and healthcare), Intigriti (800+ programmes, strong European presence), YesWeHack (500+, French and European focus), Synack Red Team (invite-only, requires vetting), and direct or self-hosted programmes run by major companies like Google and Microsoft. It recommends beginners start with HackerOne specifically and build depth on one platform rather than spreading effort thin across several. The guide’s central strategic insight is that most beginners fail by targeting large, famous programmes (Google, Meta, Apple) that have already been exhaustively tested by thousands of experienced researchers. Instead, it recommends filtering for programmes with a wide scope (such as a wildcard covering all subdomains, which multiplies the available attack surface), programmes that pay meaningfully for medium-severity findings (since that is what beginners realistically find first), fast response and resolution times, and a low duplicate-report rate, ideally under 20 percent, as a sign that accessible vulnerabilities have not all been claimed. It also suggests sorting a platform’s programme directory by “Newest” to find recently launched programmes with less accumulated competition. Mindset and the Eight Vulnerability Types Beginners Actually Find: The guide frames bug bounty hunting as closer to prospecting than to a video game: long stretches without results, punctuated by unexpected finds. It recommends testing one programme deeply rather than many superficially, reading other researchers’ disclosed writeups daily to build pattern recognition, documenting every tested endpoint to avoid repeating work, and treating duplicate reports as confirmation that one’s methodology is sound rather than as failure. It highlights that newly released features are the most accessible source of vulnerabilities, since new code has not yet been tested by the wider researcher community. Rather than chasing headline-grabbing bugs like remote code execution or SQL injection, which experienced hunters usually find first, the guide identifies eight vulnerability classes that beginners realistically discover and get paid for: IDOR (Insecure Direct Object Reference): accessing another user’s data by altering an ID in a request; pays roughly $200–$5,000 and is the single most recommended starting point. Broken Access Control: reaching functionality that should be restricted, such as an admin panel; pays roughly $300–$8,000. Cross-Site Scripting (XSS): injecting script that executes in another user’s browser; pays roughly $100–$3,000, with stored XSS paying more than reflected. Weak Authentication: predictable password-reset tokens, MFA bypass, or username enumeration; pays roughly $200–$5,000. Sensitive Information Exposure: API keys or credentials leaked in JavaScript files or error messages; pays roughly $100–$2,000. CSRF (Cross-Site Request Forgery): tricking a logged-in user into an unintended action; pays roughly $100–$1,500. Subdomain Takeover: claiming an abandoned third-party service still referenced by a company’s DNS; pays roughly $200–$2,000. API Security Issues: endpoints exposing excess data or missing authentication, often found by intercepting mobile app traffic; pays roughly $200–$10,000. The guide singles out IDOR as the best starting point because it requires no specialized tooling beyond Burp Suite, is straightforward to demonstrate, and is consistently found in new or growing applications. Reconnaissance, Tools, and the IDOR Workflow: Before testing begins, the guide outlines a five-stage reconnaissance process: passive recon (Shodan, Google dorks, certificate transparency logs, GitHub secret searches), subdomain enumeration (tools such as subfinder, amass, and assetfinder), live probing (httpx to identify active hosts and status codes), content discovery (ffuf or gobuster for directories, plus JavaScript file analysis for hidden API endpoints), and finally prioritizing targets, favoring new or unusual subdomains, admin panels, authentication flows, and file upload features. For tooling, the
basic linux commands
basic linux commands Essential Command Line Reference muntaha Ghafoor Table of Content: 1-Introduction: 2 2-Navigating the file systems: 2 3-File and directory operations: 3 4-Viewing and editing file content: 3 5-System Information Commands: 4 6-File permissions and ownership: 4 7-Viewing file content: 5 8-Text Editors: 5 9-Networking Commands: 6 10-Searching for Files and Content: 6 11-Disk Usage Connands: 7 12-Understanding File Permissions: 7 13-Archiving with tar: 7 14-System Information Commands: 8 15-Getting Help: 8 16-Conclusion: 9 Introduction: The command line, also known as the Shell or terminal. The command line interface (CLI) is the heart of Linux. While graphical interfaces exist, the true power of Linux lies in its terminal. A text-based interface where users interact directly with the operating system by typing commands. Mastering basic Linux commands is the first and most important step in becoming proficient with Linux, whether for system administration, software development, or cybersecurity. Navigating the file systems: Linux organizes files and directories in a hierarchical tree structure starting from the root directory, represented by a forward slash (/). These commands are used to move around and understand this structure such as: $ pwd The pwd (Print Working Directory) command displays the full path of the current directory. This is essential for understanding where you are in the file system at any given time. $ ls -la The ls command lists files and directories. The -l flag provides detailed listing including permissions, owner, size, and modification date. The -a flag shows hidden files (files beginning with a dot). Combining these as -la gives a comprehensive view of all files in a directory. $ cd /home/user/Documents The cd (Change Directory) command moves to a specified directory. Using cd .. moves up one level, cd ~ returns to the home directory, and cd – returns to the previous directory. Command Description Example Pwd Prints the current working directory pwd ls Lists files and directories ls -la cd Changes the current directory Cd /home/user tree Displays directory structure as a tree tree / etc File and directory operations: Creating, copying, moving and deleting files and directories are most important and common tasks performed in the terminal. These commands are the backbone of daily Linux usage. Command Description Example touch Creates an empty file touch notes.txt mkdir Creates a new directory mkdir project cp Copies files or directories cp file.txt backup.txt mv Moves or rename files mv old.txt new.tct rm Deletes files rm file.txt rm -rf Deletes directories recursively rm -rf folder/ rmdir Removes an empty directory rmdir empty_folder Be careful when use rm command, particularly rm -rf, since linux does not have built-in recycle bin for terminal deletions. Viewing and editing file content: Linux provides multiple commands for viewing file contents, each suited to different situations depending on the file size and the user’s needs. $ cat /etc/passwd The cat (concatenate) command displays the entire content of a file at once. It is best suited for small files. For larger files, it can be overwhelming as it outputs everything at once. $ less /var/log/syslog The less command provides a paginated view of file contents, allowing users to scroll up and down through large files. Press q to quit, / to search, and n to find the next match. $ head -20 file.txt $ tail -20 file.txt The head command shows the first N lines of a file (default 10), while tail shows the last N lines. The tail -f command is particularly useful for monitoring log files in real time as it continuously displays new lines as they are added. System Information Commands: Understanding the state of a Linux system requires commands that can report on processes, memory, disk usage, and system resources. Command Description uname -a Display all system information including kernel version whoami Show current logged-in username id Show user ID and group memberships df -h Show disk space usage in human-readable format free -h Show memory usage in human-readable format top Interactive process viewer showing CPU and memory usage ps aux List all running processes with details uptime Show how long the system has been running File permissions and ownership: Linux has a robust permission system that controls who can read, write, or execute files. Understanding and managing permissions is critical for system security. $ chmod 755 script.sh The chmod command changes file permissions. Permissions are represented as three octet values for owner, group, and others. The value 7 (rwx) gives full permissions, 5 (r-x) gives read and execute, and 4 (r–) gives read only. $ chown muntaha:users file.txt The chown command changes file ownership. The format is chown user:group filename. This is essential for managing who has access to specific files and directories. $ sudo command The sudo (superuser do) command allows permitted users to run commands with elevated privileges. It is safer than logging in as root because it creates an audit trail and requires authentication. Viewing file content: commands Description cat file.txt Reads and displays file content / print entire file less file.txt Scroll through file head file.txt Show first 10 lines tail file.txt Show last 10 lines tail -f file.txt Live file monitering Text Editors: Editor Commands Best for nano Nano file.txt Beginners vim Vim file.txt Advanced users Gedit Gedit file.txt GUI editor Nano shortcuts: Ctrl+o = save Ctrl+x = Exit Ctrl+k = Cut line Networking Commands: Commands Example Description ifconfig ifcofig Shows your ip and network info ip a ip a Modern version of ifconfig ping ping google.com Test connection to a host netstat netstat -an Shows active network connections curl curl <url> Fetches data from a URL wget wget <url> Downloads a file from internet Ssh ssh user@192.168.1.1 Connect to remote machine Traceroute traceroute google.com Shows path packets take to reach host Searching for Files and Content: Locating specific files or text within files is a frequent task, particularly during troubleshooting or security investigations. Command Description Example find Searches for files based on criteria find / -name “*.log” grep Searches for text patterns within files grep “error”
Basic Commands of Linux
Basic Commands of Linux Evaluating Identity Lifecycle, Privilege Escalation Vectors Author: Abdul Wahab (Cyber Security Student) Date: August 2026 Classification: ACADEMIC RESEARCH Subject: Users and groups in Linux Teacher: farrukh fareed Directory Navigation Commands As against the Windows file system which is based on drive letters (C:, D:), the Linux file system is based on one root directory (/). Once you open up your terminal, the very first thing you need to know is your current position in the file system and how you can navigate to other places.This is when we start using the navigation commands, and these are the simplest commands that everyone who uses Linux should know.There is the pwd command (print working directory), which will help us find out the path of the current directory. The second one is ls(list), which will be used for listing the directory content. Again, all options come right after the name of the command, for example, ls -l lists the detailed information of the directory content, while ls -a includes even hidden files.The command for changing directories is cd(change directory).To get into the specific folder, you have to type cd and the name of the folder. To get back, you can use cd .. to go back to the previous directory or cd or cd ~ to get to your user directory. File and Directory Management Commands After navigating in the system, the second vital skill set for the user relates to files and directories: creating, copying, moving or renaming, deleting, and other operations. These actions in Linux can be performed by using standard commands. File management commands are very important for day to day operations as well as system administration activities. To create a new blank file, the touch file.txt command will be used. In creating a new folder, it is necessary to use the mkdir Make Directory command. The command to copy files and folders is cp , while the recursive flag has to be set in the command line in order to copy the whole directory (cp -r). The command to rename or move a file is mv. Below are several commands which can be utilized to manipulate, remove, copy or move files and directories. To delete or remove files and directories, the command rm is used. To delete an empty folder, one has to use rmdir command, while to delete a folder with files, the rm -r command works. It is possible to view the content of a file with the help of the cat command and the less command displays the content of the file on the terminal screen. The more command lets the user view the contents of the file one screen at a time. System Monitoring and Process Management “Once you have grasped the basics, it is vital that you can monitor system performance and processes running on it. Processes running on the Linux operating system are called ‘Processes’ and every process has its own Process ID. It is necessary for a system administrator to know how much memory or processor is being used by each process. To see what processes are running, one can use the command ‘ps -aux’ (Process Status), which lists all running processes along with their specifications.Sometimes there is a need to watch the processes in real-time, in which case ‘top’ or ‘htop’ Interactive process viewer commands can be used. If there is a process that has frozen, it can be killed by using a kill command with PID as an argument (kill 1234). If the process can not be killed, the kill -9 PID command will do the trick. ‘df -h’ command will show the amount of used and free space on disk, and ‘free -m’ command is used to view Memory utilization. Networking, Searching, and Advanced Utilities The Linux command line makes everyday tasks like ping, remote access, or just finding some needed information much easier. These commands are necessary for system administrators and security specialists to ensure that all systems respond to their requests properly and allow access to the required data in the system’s storage. “Ping” is used to determine whether the other server is active and will respond to requests. The command-line tool “ip a” (or “ifconfig” for older Linux versions) shows the IP address of the system. To establish a secure connection with a remote server, you can use the command ssh user@hostname , also known as Secure Shell. The grep command is used to search files for specific text patterns (e.g., grep “error” logfile.txt). In addition, the find command is used to search the system for files by path or name. Finally, to download files from the Internet through the terminal, one can use utilities such as wget or curl . File Permissions and Security Management It is required to add it before any command which needs higher privileges than the current shell session allows. Sudo is used to change system wide settings or install new packages for instance. The following command sudo su or sudo -i is run to open a superuser shell. It should be noted that root account has absolute privileges to do anything with a computer that the operating system allows.Linux is an multi-user operating system with a permission-based concept. For each file and directory in the system there are set of permissions defining who can read (r), write (w), execute (x) them. For Linux there are three different types of permissions: Owner, Groups and Others.
User Management and Group Management in Linux
User Management and Group Management in Linux Abstract User management and group management are fundamental aspects of Linux system administration. A Linux system may have several users, each requiring different levels of access to files, directories, applications, and system resources. Managing these users properly helps maintain security, organization, and accountability. Groups provide an additional method of controlling access by allowing multiple users to share common permissions without assigning the same permissions individually to every account. This article examines the basic concepts and practices of user and group management in Linux. It discusses user accounts, user identification, account creation and deletion, passwords, user information, groups, group creation and removal, membership management, file ownership, permissions, administrative privileges, and security considerations. Common commands such as useradd, adduser, usermod, passwd, userdel, id, groups, groupadd, groupmod, groupdel, and gpasswd are introduced with practical examples. The article also explains the relationship between users, groups, and Linux file permissions. Finally, it highlights the importance of proper account management and the principle of least privilege in maintaining a secure Linux environment. Keywords: Linux, user management, group management, system administration, user accounts, groups, permissions, security, access control, Linux commands 1. Introduction Linux is widely used in personal computers, servers, cloud platforms, network devices, development environments, and cybersecurity laboratories. One of the reasons Linux is suitable for environments with multiple users is its strong system of user accounts, groups, ownership, and permissions. These mechanisms allow administrators to determine who can access particular files, execute programs, modify information, or perform administrative operations. In a single-user computer, user management may appear relatively simple. However, the situation changes considerably when a Linux server has many users. Each person may have different responsibilities and therefore different access requirements. For example, a system administrator may need extensive privileges, while an ordinary employee may only need access to a specific set of files. Giving every user unrestricted access would create unnecessary security risks. Linux addresses this problem through user and group management. A user account identifies an individual or service that interacts with the operating system. A group is a collection of users that can be assigned common permissions. By combining users, groups, ownership, and permissions, Linux administrators can create structured access controls. User and group management is therefore not simply an administrative task. It is an important part of Linux security. Proper management reduces unauthorized access, makes systems easier to maintain, and provides administrators with greater control over system resources. 2. Understanding Linux Users A Linux user account represents an identity recognized by the operating system. Each account normally has information associated with it, including a username, user identification number, home directory, login shell, and authentication information. Linux assigns every user a user ID (UID). The operating system uses this numerical identifier internally when determining ownership and access rights. For example, a username may be: student while the system associates that account with a numerical UID. The username is convenient for humans, but Linux ultimately uses numerical identifiers when handling ownership and permissions. There are different types of accounts on Linux systems. Regular users generally perform everyday activities, while administrative accounts have greater privileges. Linux systems may also contain accounts used by services and applications. These service accounts allow particular programs to operate with their own identities instead of running everything with full administrative privileges. This separation contributes to system security because a compromised application may have limited permissions rather than unrestricted control over the entire operating system. 3. The id Command The id command displays information about the current user or another specified account. For example: id The command may display the user’s UID, primary group ID, and supplementary groups. A user can also examine another account if they have the appropriate access: id username This command is useful when troubleshooting permissions. If a user cannot access a particular resource, checking their UID and group memberships can help explain the situation. 4. Creating Users Linux provides several methods for creating user accounts. One commonly available command is useradd. For example: sudo useradd student This creates a basic user account named student, although additional configuration may be necessary depending on the system. On many Linux distributions, adduser provides a more interactive method: sudo adduser student The command may ask for information such as a password and optional user details. The exact behavior of useradd and adduser can differ between Linux distributions. Therefore, administrators should consult the documentation for the particular system they are managing. When creating an account, it is important to consider the user’s role. A new account should receive only the access that is required for its intended purpose. 5. Setting and Managing Passwords Passwords are one of the traditional methods of authenticating Linux users. The passwd command is used to set or change a user’s password. For example: passwd A user can normally use this command to change their own password. An administrator can set a password for another account using appropriate privileges: sudo passwd student Strong password practices remain important, although modern Linux environments may also use additional authentication methods such as SSH keys, multi-factor authentication, centralized identity systems, or other mechanisms. A password should not be shared between users. Each individual should have a separate account so that actions can be associated with the correct identity. 6. Modifying User Accounts User accounts sometimes need to be changed after they are created. The usermod command is used for many account modifications. For example: sudo usermod -aG developers student This adds the user student to the supplementary group developers. The -aG combination is important. The -a option means “append,” while -G specifies supplementary groups. Using -G without -a can replace existing supplementary group memberships, depending on how the command is used. Administrators should therefore be careful when modifying group memberships. Other user properties, such as a home directory or login shell, can also be modified using appropriate usermod options. 7. Deleting Users When an account is no longer required, it may be removed using userdel. For example: sudo userdel student Depending