When testing a domain for security problems, it is different than penetration testing a network, and different than assessing the vulnerability of a server. However, compromising one of these layers may result in the other proximal layers being compromised in the future. Web application vulnerabilities are currently the amongst the most prominent vulnerabilities exploited by cybercriminals.
Special thanks to hatter for his contributions to this article.
Many web sites run web applications for the purpose of dynamic content. Usually this would include an SQL database backend of some sort, and a web application (like forums, talkboards, content management systems, and blogs) to interface with the SQL database. Therefore the affected programming languages are anything that can be used as an interface over HTTP to dynamic content, but are usually one of many interpreted languages.
- Any CGI interfaced language may also be vulnerable to web exploitation.
Types of Exploitation
- XSS can be used to capture logins and sessions or a page redirect if a user clicks a malicious link.
- SQL injection can be used to copy, modify, or delete the affected application's database, and in some cases create a remote shell on the affected system, and sometimes can allow an attacker to backdoor a web application. Blind SQL injection can be used to retrieve data without the data ever appearing in band.
- File inclusion vulnerabilities can be exploited to create a remote shell, which can lead to database manipulation and file tampering.
- Command injection effectively hands a remote shell to an attacker by arbitrary bash, MS-DOS, or native command-line execution.
- CSRF allows an attacker to perform actions as any unsuspecting user that clicks a link or loads a page on a separate domain from the affected site; a user's vulnerability is limited to the time spent while logged into the affected site.
- XSCF Sends different data to different hosts. This way, if a piece of malware is able to recognize the source machine as something analyzing it, the malware can return something innocent, while unsuspecting users are directed to something of the attacker's choosing. This could range from a prank to a web browser drive-by exploit, similar to XSS
- XSRF is using XSS to produce a same-domain URL that will perform actions as the logged in user via a CSRF attack.
- Mass assignment abuse can allow an attacker to directly overwrite database values without having to write any SQL queries and without the use of SQL injection.
- HTTP GET request parameters (Variables in the URL)
Rewritten or "clean" URL's can have GET parameters too! HTTP HEAD requests can also exploit poor input sanitizing in these parameters.
- HTTP POST request parameters (Fields and fieldsets in web forms)
You can send post parameters to a URL that has GET parameters!
- HTTP Header parameters (Variables passed by header information)
This includes cookies, user agents, connection type, and more
Because web vulnerability identification sometimes requires that you identify the backbone of a particular web configuration, fingerprinting is commonly used as a medium to gain information about commonly used platforms in an attempt to identify them through common fingerprints.
These might include things such as common headers, footers, comments in code- or simply the existence of a very particular page. Fingerprinting is a key aspect in determining vulnerabilities in specific software packages, and might also be used in conjunction with a search engine in order to get large lists of vulnerable hosts through searching for a single commonality.
In the instance that a site being tested is using open source software available in a git repository, it is possible to use halcyon to create signature data from the repository metadata. Providing these signatures to kolkata and initiating a scan can determine the version of the software running on the site.
Web Exploitation Tools
- Kolkata - Web application static file analysis based fingerprinting engine with yml based configuration
- Halcyon - Fingerprint config generation for Kolkata from a git repository
- Vanguard - Web application vulnerability testing and exploitation framework
- Lfi_autopwn.pl - A file inclusion based exploit utility to emulate a remote shell
- mysqli-blindutils - A series of scripts and proofs of concepts for blind SQL injection
- GScrape - Google dork testing engine
Pages in category "Web exploitation"
The following 101 pages are in this category, out of 101 total.