This script is a vulnerability scanner written in Python. It is designed to scan a given target URL or list of URLs and check for various types of vulnerabilities such as SQL injection, outdated components, brute force vulnerabilities and WAF bypass vulnerabilities. It also verifies exploitability and logs all positive results in a log.csv file.
Multi-threading: The script utilizes multi-threading to scan multiple targets simultaneously, reducing the overall time required for the scan.
Fingerprinting: The script sends a request to the target and parses the HTML to gather information about the server and the title of the page. This information can be used to identify the web application and its version, which can be useful in identifying vulnerabilities.
Exploit verification: The script checks for and verifies exploitability of vulnerabilities. It sends a request to the target with a payload that is known to exploit a specific vulnerability and checks the response for a successful exploitation.
SQL injection vulnerability scanning: The script sends a request to the target with a payload that is known to exploit SQL injection vulnerabilities. It checks the response for indications of a successful exploitation.
Outdated component vulnerability scanning: The script sends a request to the target with a payload that is known to exploit outdated component vulnerabilities. It checks the response for indications of a successful exploitation.
Bruteforce vulnerability scanning: The script sends a request to the target with a payload that is known to exploit brute-force vulnerabilities. It checks the response for indications of a successful exploitation.
WAF Bypass: The script uses HTTP parameter pollution technique to bypass web application firewalls. It sends multiple requests with different payloads to check if the firewall can be bypassed.
GUI: The script uses tkinter library to create a GUI that shows running scans on the top, and positive results on the sides
Logging: The script logs all positive results in a log.csv file, which includes the target, vulnerability and exploitability of the vulnerability.
The script allows you to configure the scan using command line options, such as specifying the target URLs and number of threads.
- Python3
- requests library
- BeautifulSoup library
- argparse library
- concurrent.futures library
- Install the required libraries by running
pip install requests bs4 argparse concurrent.futures
andnpm install -g npm-check-updates
- Run the script by using the command
python3 vulnerability_scanner.py -t [target_urls] -th [number_of_threads]
- The script will scan the target URL(s) and check for vulnerabilities such as SQL injection, outdated components, brute force vulnerabilities, WAF bypass vulnerabilities and verifies exploitability.
-t
or --targets
: List of target URLs to scan. This option is required.
-th
or --threads
: Number of threads to use for the scan. Default is 10.
-npm
or --npm_scan
: Enables the scan for npm vulnerabilities.
python3 vulnerability_scanner.py -t https://example.com -th 10
This command will scan the target URL "https://example.com" using 10 threads
python vulnerability_scanner.py -t https://example1.com https://example2.com -th 20
This command will scan the target URLs "https://example1.com" and "https://example2.com" using 20 threads
This script is a powerful and efficient tool for identifying vulnerabilities in web applications. Its multi-threading, fingerprinting, exploit verification, WAF bypass and logging features make it a valuable addition to any security tester's toolkit. It allows security professionals to quickly and easily identify vulnerabilities in web applications and take appropriate action to protect their systems. This script can also be used in a Continuous Integration/Continuous Deployment (CI/CD) pipeline to ensure that vulnerabilities are identified and fixed before the application is released to production.
To implement more payloads, you can add them to the payloads list in the relevant functions (scan_target
, check_sql_injection
, check_outdated_components
, check_brute_force
, bypass_waf
, verify_exploit
).
It's important to note that this script is just an Basic code which may require additional adjustments to suit your specific use case, and that security testing is a complex task and therefore this script should be just one part of a comprehensive security testing strategy.
The use of a Penetration Testing Tool is subject to certain legal guidelines and regulations, as it involves the simulated hacking of a system. It is important to obtain proper authorization before conducting a penetration test, as unauthorized access to a computer system or network is illegal. Additionally, the use of a Penetration Testing Tool must be done in compliance with all applicable laws and regulations, including data privacy laws, and should not be used to cause harm or damage to the target system.
The legal description of the Penetration Testing Tool is a software program or suite of programs that is used to simulate a cyber attack on a computer system, network, or web application, in order to test its security and identify vulnerabilities. It must be used in compliance with all applicable laws and regulations and with proper authorization.
"The author of this pentest tool provides it on an 'as is' basis and makes no representations or warranties of any kind, express or implied, including, but not limited to, the warranties of merchantability and fitness for a particular purpose. The author shall not be liable for any damages, including, but not limited to, direct, indirect, special, incidental or consequential damages, or other losses arising out of the use of this tool.
By using this tool, you accept the terms of this disclaimer and assume full responsibility for any and all actions taken using this tool. The author shall not be held liable for any unauthorized or illegal use of this tool. It is the responsibility of the user to ensure that their use of this tool complies with all applicable laws and regulations.
This tool is intended for use by authorized personnel only. If you are not an authorized user, you are not permitted to use this tool and should immediately discontinue any and all use of it.
The user of this tool agrees to indemnify and hold the author harmless from any claims, damages, losses, liabilities, and all costs and expenses of defense, including but not limited to, attorneys' fees, resulting directly or indirectly from a claim by a third party that arises in connection with the use of this tool by the user."
Please note that this is a sample legal disclaimer and it may not be suitable for all situations. It is important to have your legal disclaimer reviewed by a lawyer before using it in any way.