Attacchi per manipolazione d'URL Ataques por manipulação de URL Angriffe per Manipulation der URL Attaques par manipulation d'URL Ataques de manipulación de URL

Introduction to URLs

The URL (Uniform Resource Locator) of a web application is the vector that makes it possible to indicate the requested resource. It is a string of printable ASCII characters that is divided into five parts:

  • The name of the protocol: this is in some sorts the language used to communicate on the network. The most widely used protocol is the HTTP protocol (HyperText Transfer Protocol), which makes it possible to exchange web pages in HTML format. A variety of other protocols may also be used (FTP, News, Mailto, etc.)
  • ID and password: makes it possible to specify the parameters required to access a secure server. This option is not recommended since the password circulates unscrambled in the URL
  • The name of the server: This is the domain name of the computer hosting the requested resource. Note that it is possible to use the server's IP address.
  • The port number: this is a number associated with a service that tells the server what type of resource is being requested. The port that is associated with the protocol by default is port number 80. When the server's web service is associated with port number 80, specification of the port number is optional.
  • The access path to the resource: This last part tells the server where the resource is located, that is, in general, the location (directory) and the requested file name.

A URL has the following structure:

Protocol Password (optional) Server name Port
(optional if 80)
Path
http:// user:password@ www.commentcamarche.net :80 /glossair/glossair.php3

The URL can make it possible to send parameters to the server by following the file name with a question mark and then data in ASCII format. A URL is then a string of characters with the following format:

http://en.kioskea.net/forum/?cat=1&page=2

URL manipulation

By manipulating certain parts of a URL, a hacker can get a web server to deliver web pages he is not supposed to have access to.

On dynamic websites, parameters are mostly passed via the URL as follows:

http://target/forum/?cat=2

The data present in the URL are automatically created by the site and when navigating normally, a user simply clicks on the links proposed by the website. If a user manually modifies the parameter, he can try different values, for example:

http://target/forum/?cat=6

If the designer has not anticipated this possibility, the hacker may potentially obtain access to an area that is usually protected.

In addition, the hacker can get the site to process an unexpected case, for example:

http://target/forum/?cat=***********
In the above example, if the site's designer has not anticipated the case where the data is not a number, the site may enter an unexpected state and reveal information in an error message.

Trial and error

A hacker may possibly test directories and file extensions randomly in order to find important information. Here a few classic examples:

  • Search for directories making it possible to administer the site:
    http://target/admin/
    http://target/admin.cgi
  • Search for a script to reveal information about the remote system:
    http://target/phpinfo.php3
  • Search for backup copies. The .bak extension is generally used and is not interpreted by servers by default, which can cause a script to be displayed:
    http://target/.bak
  • Search for hidden files in the remote system. On UNIX systems, when the site's root directory corresponds to a user's directory, the files created by the system may be accessible via the web:
    http://target/.bash_history
    http://target/.htaccess

Directory traversal

So-called directory traversal or path traversal attacks involve modifying the tree structure path in the URL in order to force the server to access unauthorized parts of the site.

In a classic example, the user may be forced to gradually move back through the tree structure, particularly in the event that the resource is not accessible, for example:

http://target/base/test/ascii.php3
http://target/base/test/
http://target/base/

On vulnerable servers, attackers can simply move back through the path with several "../" type strings:

http://target/../../../../directory/file

More advanced attacks encode certain characters:

  • either in the form of URL encoding:
    http://target/..%2F..%2F..%2Fdirectory/file
  • or with a Unicode notation:
    http://target/..%u2216..%u2216directory/file

Many dynamic sites pass the name of pages to be displayed as parameters in a form similar to the following:

http://target/cgi-bin/script.cgi?url=index.htm

If no verifications are carried out, a hacker may modify the URL manually in order to request access to a site resource he does not have direct access to, for example:

http://target/cgi-bin/script.cgi?url=script.cgi

Countermeasures

To secure a web server against URL manipulation attacks, it is necessary to keep a watch on vulnerabilities and regularly apply the patches provided by the web server's publisher.

Moreover, a detailed configuration of the web server helps keep users from surfing on pages they are not supposed to have access to. The web server should therefore be configured as follows:

  • Prevent the browsing of pages located below the website's root (chroot mechanism);
  • Disable the display of files present in a directory that does not contain an index file ("Directory Browsing");
  • Delete useless directories and files (including hidden files);
  • Make sure the server protects access to directories containing sensitive data;
  • Delete unnecessary configuration options;
  • Make sure the server accurately interprets dynamic pages, including backup files (.bak);
  • Delete unnecessary script interpreters;
  • Prevent HTTP viewing of HTTPS accessible pages.


Last update on Thursday October 16, 2008 02:43:15 PM.This document entitled « URL manipulation attacks » from Kioskea (en.kioskea.net) is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the licence, as this note appears clearly.
Best answers for « URL manipulation attacks » in :
Cross-Site Scripting attacks Show Malicious code injection Cross-Site Scripting (sometimes abbreviated XSS or CSS) attacks are attacks targeting websites that dynamically display user content without checking and encoding the information entered by users. Cross-Site Scripting...
Ping of death attack Show Ping of death attack The ping of death attack is one of the oldest network attacks. The principle of ping of death simply involves creating an IP datagram whose total size exceeds the maximum authorized size (65,536 bytes). When such a packet is...
Nuke attack Show Nuke attack Nukes are Window crashes caused by dimwitted users (who know your IP address) who decide to use a Windows 95 (not 98) bug where if someone repeatedly sends information packets to port 139, Windows displays a lovely and impressive blue...
PHP 5 - Using an external URL with the function include ShowPHP 5 - Using an external URL with the function include The option to include an external URL (ie absolute, in the form http://site.tld/url) with the function include is disabled by default from PHP 5 and latest version. Below is the two...
How to turn a URL into a hyperlink ShowHow to turn a URL into a hyperlink If you are using PHP, there is a simple way to turn a URL into a hyperlink when inserting the address into your PHP document. This process is mostly used to ease the users' search of external websites or...
ImageMagick - Manipulate images with command lines ShowImageMagick - Manipulate images with command lines ImageMagick is a powerful command line tool that allows you to manipulate images. The advantage of this tool is that it allows: Automate work on images (this avoids...
Download URL Organizer ShowURL Organizer is an Internet favorite manager which includes a difference. It helps you to store, classify, annotate and save your favorite Internet as a shorts program, documents and files (collectively referred to as URL). Advantage It is...
Denial of service attack ShowIntroduction to denial-of-service attacks A "denial-of-service attack" (abbreviated DoS) is a type of attack that aims to make an organization's services or resources unavailable for an indefinite amount of time. Most of the time, these attacks are...
Teardrop attack ShowFragment attack A "fragment attack" is a network saturation (denial-of-service) attack that exploits the fragmentation principle of the IP protocol. The IP protocol is used to fragment large packets into several IP packets each having a sequence...
SYN attack ShowSYN attack The "SYN attack" (also called "TCP/SYN Flooding") is a network saturation (denial-of-service) attack that exploits the Three-way handshake mechanism of the TCP protocol. The three-way handshake is the way in which any "reliable"...