Recon - Application mapping
The second step in the process of attacking a web application is gathering and examining some key information about it to gain a better understanding of what you are up against.
The mapping exercise begins by enumerating the application’s content and functionality in order to understand what the application does and how it behaves.
Manual browsing + passive spidering
Browse the entire application in the normal way with BurpSuite
active, visiting every link and URL, submitting every form, and proceeding through all multistep functions to completion.
If the application uses authentication, and you have or can create a login account, use this to access the authenticated functionality.
Comments review
Review comments in HTML source code:
Robots.txt
The configuration files below may be used by the web application to give information about the accessible and disallowed URI to search engines:
JS & Cookies
Browse with JavaScript enabled and disabled, and with cookies enabled and disabled.
User-Agent
Change the User-Agent header to identify difference in comportment (for example, the application may have a mobile version). Firefox addon that allows for quickly changing the browser's user agent string: User Agent Switcher
Agents
Debug parameters
Choose one or more functionalities where hidden debug parameters may be implemented. Use Cluster bomb
attack type in Burp Intruder
and the following common debug parameter names with common values (such as true, yes, on, and 1):
For POST requests, supply the parameter in both the URL query string and the request body.
Burp Passive Spidering
Review the site map generated by the passive spidering, and identify any content or functionality that you have not walked through using your browser.
OSINT
Search engines dorks
Google hacking, or Google dorking, is a technique that use the Google search engine to enumerate the ressources indexed by Google in order to map the application and retrieve potentially sensible information.
The following Google
search queries can be used to retrieve potential sensible information about the application:
The Google Hacking Database
, hosted on exploit-db
https://www.exploit-db.com/google-hacking-database, references known Google search queries that can be used to conduct Google dorking.
For each queries, it is advised to browse to the last page of the search results and select "Repeat the Search with the Omitted Results Included".
Accounts & emails scraping
Open resources such as Google, Bing, linkedin, twitter, etc. can be used to harvest accounts and emails associated to a domain.
Those credentials may be used to conduct bruteforce attack subsequently. The tools below automate this scraping:
Fingerprinting
Determine the technologies in use on the Web Application (CMS, etc.).
Manual Fingerprinting
Look for :
Verbose HTTP headers disclosing version numbers
Google any unknown / non-standard headers to discover which technology may have issued them. Load balancers usually use non-standard and misspelled headers. See Server Exposure.
Default error pages
Known patterns in HTML source code / URI:
Known Cookies:
Automated Fingerprinting
The whatweb
Ruby script can be used to automate the fingerprinting process.
Active spidering & URL bruteforcing
Actively spider the application using all of the already enumerated content as a starting point.
Burp Active Spider
Burp Spider
is a module that will automatically parse HTML source for URL and request them, effectively crawling the web application for openly accessible content.
The authentication forms should be completed whenever possible.
Burp Content Discover
Burp Content Discover
uses various techniques to discover content such as spidering, intelligent URI bruteforcing with adapted to the context wordlists, etc.
URL bruteforcing
Use the application root and any other path from already enumerated deemed fit as a starting point.
File extension
Determine file extension to use for the bruteforce (no extension + language extension).
Wordlists
Adapt the word list for the application context.
Example: if all resources in start with a capital letter, the wordlist used in the bruteforce should be capitalized. Check for default content associated with the technologies found.
Recursive
A first brute forcing should be conducted with out recursively brute forcing the discovered sub directories. In case the web application root is defined, two brute forcing should be conducted (on the default / root and on the main application root).
Some interesting sub directories should then be picked for further brute force enumeration.
Tools
The following tools can be used to brute force URI:
Parameters fuzzing
The wfuzz
tool can be used to fuzz GET and POST requests to find accepted parameters. The SecList
burp-parameter-names.txt
wordlist contains more than 2000 entries of frequent parameter names.
A filter on response HTTP code or lines, words and characters number can be added using --hc/hl/hw/hh code/lines/words/chars
.
Last updated