Bypasseando uploaders con SkillmaX

Iniciado por SkillmaX, Julio 21, 2010, 07:02:02 PM

Tema anterior - Siguiente tema

0 Miembros y 2 Visitantes están viendo este tema.

Julio 21, 2010, 07:02:02 PM Ultima modificación: Julio 21, 2010, 07:03:57 PM por SkillmaX
He visto que muchos usuarios tienen problemas a la hora de bypassear los uploaders, en este tutorial os voy a enseñar
como saltarnoslo, y de todas las formas posibles, por si se nos muestran complicaciones, me he creado un upload en mi host, y por hay podreis practicar, a ver quién es el primero que lo consigue.


¿Qué es un upload?


Subir archivos, transmitir archivos o información desde el ordenador emisor al receptor (Web).


¿Como ver un upload?


Un upload se reconoce siempre, cuando entramos al panel de una web (Aunque a veces estan a fuera del panel), se suelen
reconocer cuando hay un boton "Examinar o otro nombre" que es donde se eligirá el archivo a subir, y otro botón, que es el
enviar (que será el botón que subirá nuestra shell o otro archivo al servidor), os dejo una imagen de como sería un upload
simple.





¿Qué tipos de bypasseamiento hay?


Actualmente hay unas cuantas formas de bypassear un uploader, yo las podria dar a entender así:


- Subida normal de un archivo php:


Le daríamos al botón examinar y desde hay cogeriamos nuestra shell, le dariamos al botón enviar, y subiriamos nuestra
shell al servidor, este metodo es el más facil que hay, ya que no hay que modificar nada, y es utilizable en algunas webs.


- Reenombrando con una imagen o archivo soportable:


Renombrando nuestra shell con una imagen que soporte el uploader, ya que muchas veces está reestringido para los archivos
php, o cualquier otro archivo, podemos probar a subir un archivo .jpg si se sube quiere decir que los archivos .jpg se pueden subir, para ello lo que haremos en nuestra shell sería renombrarlo shell.php a shell.php.jpg







Lo que haría es leer el .jpg primero y cuando esté subida lo que tendriamos que hacer es borra el .jpg y que quede el .php que es el archivo que nosotros queremos utilizar para que se ejecute la shell en el servidor.



- Modificando las cabeceras:


Esto es uno de lo que más se utiliza ya que los otros dos metodos que he explicado anteriormente puede fallar, entonces
casi siempre nos quedará el modificamiento de las cabeceras, esto trata de subir la shell con el nombre por ejemplo de
shell.jpg o shell.gif depende de el archivo que soporte el uploader.


Para hacer este metodo necesitamos mozilla y un addons que se llama HTTP Live Headers que lo pueden descargar de aqui:


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Supongamos que hemos subido satisfactoriamente nuestra shell en .jpeg ahora tendriamos que modificar las cabeceras, que lo que consiste es cambiar .jpeg que es el archivo que hemos subido a .php que es el archivo que se va a ejecutar en el servidor.
Para eso cuando tengamos el archivo subido en jpeg, os saldrá el link para descargar cierto archivo por ejemplo.





Bueno, ya nos a subido la shell pero con .jpg ahora copiaremos la dirección, ojo, primero abrir el HTTP Live Header, que lo encontraremos arriba en la barra al lado de ayuda.





Ahora como bién he dicho antes, lo abrimos el http live header, copiamos la url, y lo abrimos y nos saldrá algo como esto.





Cuando esté abierto el HTTP live teneis que ir a la linea filename que será donde aparecerá nuestra shell subida en jpeg.
y pinchamos en lo alto de la linea, le damos a repetir y modificamos tal cual sale en la imagen de arriba, y renombramos en vez de .jpeg  a   .php, y se nos cargará la shell en la web.






- Subiendo shells en lenguaje como:


La otra manera que hay es subiendo la shell como en la primera forma que he explicado, pero esta vez con otros lenguajes que se ejecuten en la web, después de la php, la que yo más utilizo es la .asp o también la .pl


Para que practiquen


Como veo que quereis practicar la subida de shells os dejo un codigo de un upload que encontré por hay para que lo subais en vuestro servidor y probeis, y asin no fastidieis otras webs.

upload.html

Código: php

<form action="subearchivo.php" method="post" enctype="multipart/form-data">
    <b>Campo de tipo texto:</b>
    <br>
    <input type="text" name="cadenatexto" size="20" maxlength="100">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    <br>
    <br>
    <b>Enviar un nuevo archivo: </b>
    <br>
    <input name="userfile" type="file">
    <br>
    <input type="submit" value="Enviar">
</form>



subearchivo.php

Código: php

<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
    echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
    if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
       echo "El archivo ha sido cargado correctamente.";
    }else{
       echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>

Excelente mi hermano!
Esto es de gran utilidad!
+KARMA!


La forma del HTTP LIVE HEADERS lo hago con TAMPER DATA xD el resto realmente no lo conocia...
Gracias por el aporte, me servira!!

Buen tut compare, gracias. Te daria Karma pero no puedo xD

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Gracias por los comentarios, un saludo amigos.