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 - #!drvy

#2351
No. Me refiero a funcionalidad. HTML5 no aporta ninguna funcionalidad solo la estructura. Me refiero a lenguajes como JS o PHP.

Saludos
#2352
Busca los frameworks que están en uso actualmente para la tecnológica en la que te quieres centrar.. React y Angular para JS por ejemplo y Laravel y Symfony para PHP. Conoce a fondo los CMS más populares (Wordpress, Joomla, Drupal)..  Java va a ser un requisito si o si. Igual que Swift para iOS. Bases de datos es un si o si. Luego viene el Testing (Unit Test, TDD, BDD) y el código legacy..

Lo mas importante seria que aprendas a programar no ha hablar un idioma (lenguaje). O sea, Algoritmos y lógica. Luego ya es adaptarse al mercado.

Saludos
#2353
No hay vulnerabilidades como tal. No son lenguajes de programación, no tienen funciones complejas. Todo son elementos. La vulnerabilidad en todo caso la introduce el programador más tarde al programar la funcionalidad.. pero nada más.

Saludos
#2354
1. Descarga la imagen y buscala con Google Imagenes.



2. Alunas redes sociales no eliminan los datos EXIF de las imágenes. Puedes usar un servicio online para ver si fue tomada desde una cámara (cual) o incluso algunas cámaras guardan la posicion GPS.

http://www.verexif.com/

3. Pídele mas fotos.. preferiblemente fotos de fuera de casa o de diferentes sitios (de sus ultimas vacaciones por ejemplo) y compáralas.


CitarEh cómo es posible!! Pone que tiene 0 mensajes y ha puesto 1 ya al menos!!

En Foro Libre no cuentan...

Saludos
#2355
CitarExcepto en insistir en un bloqueo de un solo país como justificación. Supongo que el comerciar con docenas de otros paises no cambia nada, eres libre de pensarlo

¿De uno de los mayores paises en cuanto a importación exportación refiere?
¿De un país vecino ?
¿De una economía global?

CitarPor cierto, la Falange llamarla sindicato es forzar mucho el hilo

¿ Nacional sindicalistas ? ¿Forzar? Sera que no has visto tu sindicatos...

Saludos
#2356
Seguridad / Re: Me urge descifrar esto
4 Enero 2017, 19:41 PM
Si reemplazas document.write() por document.body.textContent tendras el output en forma de texto.

Código (javascript) [Seleccionar]
document.body.textContent = unescape(atob("blablabla"));

Resultado: http://paste.debian.net/906352/
De forma bonita: http://paste.debian.net/hidden/65f4ecd4/

Saludos
#2357
La verdad es que la dificultad es variable en función de que herramientas dispone el atacante. Si tiene identificado un SQLi puede usar sqlmap que lo hará prácticamente todo por el. Y una vez la tenga, puede dumpear las contraseñas y si no son muy fuertes o resulta que consigue hacer un INSERT tendrá acceso también al Wordpress.

En mi opinión, lo primero que intentarían hacer es acceder a Wordpress. Dado que una vez accedido, tienen mas probabilidades de modificar o conseguir información critica que en un SQLi.

Si fuera yo, tiraría por los dos lados por lo que explique previamente de los permisos xD

Saludos
#2358
PHP / Re: Login solo en PHP
4 Enero 2017, 19:12 PM
CitarPara la comunicación con la BD no hay forma de encriptarla? que no se vea la contraseña en el código fuente?

Podrías ofuscarla y parecidos pero generalmente a fin de cuentas, no. Se asume que solo el administrador tiene acceso a dicho código.

Citary esto no lo entiendo, lo podrían explicar?

mysqli_prepare, prepara una sentencia para que se le asignen parámetros y posteriormente sea ejecutada. Con las sentencias preparadas, en vez de enviar todos los datos en la query, envías primero la query y luego las variables. De este modo evitas que una variable puede escapar de su entorno y modifique la query.

mysqli_stmt_bind_param, asigna un parámetro a una sentencia. En este caso, lo asignamos a $stmt que es nuestra sentencia. Le decimos que la próxima variable (el ? en la query) tipo string debe contener el valor de la variable $usuario.

En reducidas cuentas, esto:

Código (sql) [Seleccionar]
select * from {$tabla} where (usuario=?)

Pasa a ser esto:
Código (sql) [Seleccionar]
select * from {$tabla} where (usuario='donpepito')

Pero de forma segura.


mysqli_stmt_execute lo que hace es ejecutar la sentencia y devolver un identificador para su posterior uso. Lo tienes todo bastante explicado en el enlace que te deje:

http://php.net/manual/es/mysqli.quickstart.prepared-statements.php

Saludos
#2359
Eso depende de los permisos. Si el servidor esta bien configurado, wordpress o el servicio de PHP en general tendrá A usuario con X permisos y el servicio de bd (pongamos mysql por ejemplo) tendrá B usuario con Y permisos.

Si los privilegios de mysql (o el servicio de BD) estan mal configurados para el usuario que  accede a dicha BD, y por tanto tienes permisos para DUMPEAR archivos, podría interesarte mas que wordpress ya que los permisos de wordpress podrían ser inferiores. Por otro lado, tener acceso al panel de Wordpress supone el poder crear archivos casi con total libertad (a no ser que sean read-only.. cosa que dudo). Eso significa que podrías crear una shell a partir del editor de código de Wordpress.

En fin, todo ser reduce a que tipos de permiso tiene asignado cada servicio para el caso concreto.

Saludos
#2360
PHP / Re: Login solo en PHP
4 Enero 2017, 18:47 PM
Citar
Código (php) [Seleccionar]
$cifrar=base64_encode($password);

Eso no es cifrar. Eso es encoding o dicho en español: Codificación. Si lo que quieres es convertir la contraseña en un hash tendrás que usar un algoritmo de un solo camino. Preferiblemente bcrypt o scrypt.

https://es.wikipedia.org/wiki/Codificaci%C3%B3n_de_caracteres
https://es.wikipedia.org/wiki/Funci%C3%B3n_hash
https://en.wikipedia.org/wiki/Bcrypt

Código (php) [Seleccionar]
$salt = 'hDvTFAsHtrB3oagFNggnUa';
$cifrar = crypt($password, '$2a$12$' . $salt);





Citar
Código (php) [Seleccionar]
$usuario=$_REQUEST['user'];
$password=$_REQUEST['pass'];
....

$registro=mysqli_query($conexion, "select * from $tabla where (usuario='$usuario')")

Regla numero #1 del desarrollador: Nunca te fíes de lo que te manda un usuario.

Ese código es vulnerable a SQLi (inyección sql). Puedes utilizar sentencias preparadas para evitar sqli. Por otro lado, evita usar $REQUEST. Solo quieres obtener datos que se envían por POST (tu formulario HTML). REQUEST incluye GET, POST y COOKIES.. no te interesa, mas bien perjudica.

Código (php) [Seleccionar]
$usuario=$_POST['user'];
$password=$_POST['pass'];
$salt = 'hDvTFAsHtrB3oagFNggnUa';


$cifrar = crypt($password, '$2a$12$' . $salt);

$query = "select * from {$tabla} where (usuario=?)";

$stmt = mysqli_prepare($conexion, $query);
mysqli_stmt_bind_param($stmt, 's', $usuario);
mysqli_stmt_execute($stmt);

....


http://php.net/manual/es/mysqli.quickstart.prepared-statements.php




Citar
Código (php) [Seleccionar]
if ($password==$reg['password'])

No uses == para comparar cadenas de texto. Puedes tener problemas porque PHP convierte a los valores a semejanza. Para que me entiendas:

Código (php) [Seleccionar]
if(0=='hola'){ echo "hola"; } // Imprime hola
if(0==='hola'){ echo "hola"; } // No imprime nada (no cumple)


Usa siempre === para comparar strings. Tampoco veo que estés comparando la contraseña hasheada.. comparas directamente dos cadenas de texto.

Código (php) [Seleccionar]
if($cifrar===$reg['password'])

Y ya que vamos a utilizar bcrypt, mejor:

Código (php) [Seleccionar]
if(hash_equals($cifrar, $reg['password']))

http://php.net/manual/es/function.crypt.php
http://php.net/manual/es/function.hash-equals.php




Citar
Código (php) [Seleccionar]
$_SESSION['userid']=$_REQUEST['user'];

Primera regla. No nos fiemos. El usuario podría suplantar su "user" por el tuyo. Saca el userid siempre de la base de datos, de la entrada que corresponde a su usuario.




Citar
Código (php,1,3) [Seleccionar]
echo ("error");
mysqli_close($conexion);
header("location:login.php");

echo no es una función. No la uses como tal (funciona pero esta mal). Utilizar header() después de imprimir algo suele tirar errores. Recuerda que en protocolo HTTP los headers siempre van antes que el contenido. En algunos navegadores, no pasar la url completa del sitio puede generar errores de redireccionamiento.

Código (php) [Seleccionar]
mysqli_close($conexion);
header('Location: http://misitio.com/login.php');
echo 'Error';


Saludos