4 best directory traversal attack preventions and 2 important tools to test

directory traversal attack prevention

Here we discuss some Directory traversal attack preventions and tools to test the application

Directory traversal, likewise called traversing paths, is a weakness that permits assailants to break out of a web worker’s root registry and access different areas in the worker’s record framework. How about we see what makes directory traversal assaults conceivable and what you can do to forestall them.

What Is Directory Traversal?

Directory traversal attack prevention

On a web worker, web applications are executed comparatively with the webroot catalog (additionally called the web record root). The specific way relies upon the working framework and web worker, however, basic webroot catalogs incorporate /var/www for Apache on Linux and C:\Inetpub\wwwroot for IIS on Windows.

A bug in the web worker programming may permit the web worker procedure to get to records outside the web archive root. On the off chance that a web application likewise utilizes document names taken from client contributions without appropriate information approval, this could open up a traversal weakness. Rather than legitimate record names, an assailant would then be able to enter relative or total document ways to get to self-assertive records, including application source code, framework records, worker logs, and different documents containing delicate data. Whenever joined with a record transfer weakness, the directory traversal can even prompt far off code execution.

Examples of directory traversal

To take a straightforward model, suppose we have a “Show File” button that opens the accompanying URL when clicked:


For a great registry crossing assault, the aggressor can attempt to get to the framework record/and so /etc/passwd (accepting a Linux/UNIX framework) by visiting the URL:


On the off chance that the application just takes the estimation of the document boundary from the URL and passes it to a framework called, it would cross the relative way ../../etc/passwd beginning from /var/www and request that the framework load the secret phrase record. This procedure is likewise called a dab spot cut assault, since it regularly utilizes the exceptional characters ../( or \.. on Windows) to move to a more significant level catalog.

The weakness isn’t confined to passing record names legitimately in URLs. For instance, a site may store client inclinations in a treat, as in the accompanying PHP code to stack a skin:

    $skin = 'main.php';
    if (isset($_COOKIE['SKIN'])) {
        $template = $_COOKIE['SKIN']; 
    include("../res/skins/" . $res); 

For this situation, the document name is put away in a treat called SKIN and just linked with away. An assailant could abuse this by mocking the treat worth and sending the accompanying HTTP demand:

GET /index.php HTTP/1.0
Cookie: SKIN=../../../etc/passwd

This worth would be attached to the way, making the web worker execute the accompanying include() call to move into /etc/ directory so on an index and burden the secret phrase document:


There are additionally numerous methods of encoding the way crossing string to sidestep innocent character separating, for instance by composing ../ in URL encoding as %2e%2e%2f

4 directory traversal attack preventions

Path Traversal assaults depend on two weak components:

the web application code and the web worker design. By taking consideration to maintain a strategic distance from weaknesses in the two territories, you can relieve most of such assaults.

  • Weak web applications use unvalidated client contributions to document names and ways. Going around crude record names and ways is consistently an ill-conceived notion not only for reasons of security (aside from way crossing, it might present cross-site scripting weaknesses), yet in addition since it makes applications delicate and harder to keep up. Current applications, by and large, stay away from this by utilizing URL planning to isolate the URLs from the basic documents. Truth be told, on the off chance that you utilize a CMS or web advancement structure, this is frequently the default approach. A related arrangement is to store documents in a focal database, not legitimately in the web worker record framework, and characterize your own asset names used to get to them.
  • In the event that you do need to take document names or paths from client inputs, guarantee they are appropriately cleaned by whitelisting allowed names or potential characters. Boycotting characters to sift through ../and comparable strings isn’t prescribed in light of the fact that there are numerous approaches to sidestep it. See the OWASP page on testing for traversal weaknesses for a not insignificant rundown of known adventures.
  • To relieve the weakness on the web worker side, guarantee you are utilizing around date web worker programming. The web worker procedure should likewise run with the base vital benefits and just approach catalogs that the site or application very. For Linux/UNIX frameworks, you might need to consider running the web worker in a chroot prison to contain any way crossing assaults that do succeed.
  • To distinguish these and numerous different weaknesses, routinely check your sites and web applications with a top-notch dynamic application security testing arrangement.

Open Source Tools to prevent directory traversal attack

Dot Dot Pwn

Tool for directory traversal attack prevention

Dot Dot Slash

Directory  traversal attack prevention
Tool for directory traversal attack prevention
About Sachin Tiwari 81 Articles
I am a software engineer, and have an interest in web security or cybersecurity, love to learn in website security topic and sharing with others

Be the first to comment

Leave a Reply