Enumeration
Find information before we attack
We need to find out more info before attacking! Usually there's a ton of great info hidden in a site. Always check all sent and returned headers when analyzing a web app!
Spidering
Spidering through a website can make offline analysis super easy and great. Programs like wget
and cewl
are great for the command line, Burp and ZAP can automate spidering from the GUI.
Spider the site once as an authenticated user, and then attempt to reach the same pages without authentication. Determine if insecure direct object reference exists!
Fuzzing
ffuf
is a tool which is exceptionally fast to enumerate a host.
Replace normal values with exploits or garbage data to identify vulnerabilities. Need to FUZZ EVERYTHING! Includes Headers, parameters, payloads. Search for changes in baseline requests, different bytes or content. Useful with python re
library or something. Check SecLists [https://github.com/danielmiessler/seclists] for fuzzing sources and payloads.
Vhost Enumeration
With Virtual Hosts, we are searching for additional web servers which may be present on this host.
Username harvesting searches for valid users for a webapp. Utilize login forms to find if there's differences between good username/badpass
and bad username/badpass
. Side channel attacks may reveal good usernames also, check timing for a known good username vs a bad username. A bad username may be returned instantly, where a good username may be hashed by the system, and a few milliseconds slower.
Identify Components
Plugins such as Wappalyzer and Shodan makes this very easy!
Apache, IIS, NGINX, Python?
Identified by port scans, default web pages, and fingerprinting tools. May display configuration information.
Check list
Check
robots.txt
for exclusionsRead the HTML source for comments or hidden pages
Try separate request methods when interacting
GET instead of POST for an interaction
Brute force directories with gobuster
If 403, try bruteforcing PAST those directories
Find parameters, test in order
Command Injection
SQLi
noSQLi
XXE
Fuzz EVERYTHING!
Headers
Cookies
POST parameters
GET parameters
PUT payloads
ALL INPUTS
Check
Accepted:
headers to see if new data types are servedClient side for SENDING DATA
Cliente side for RECIEVING DATA
Check for differences in good username/badpass and bad username/badpass
References
Last updated