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 - venadHD

#31
Cita de: engel lex en  7 Agosto 2015, 19:04 PM
ese código se ve como la vía ideal de que hackeen tu sistema terriblemente XD te recomiendo pensarte mejor la via de hacer eso XD

no creo que necesites incluir cualquier cosa que venga en un get

Realmente no estoy incluyendo nada que venga en un get, solo estoy "reconociendo" la pagina en la que está, para que quede de la siguiente forma:
http://www.venad.cf/
http://www.venad.cf/index.php?modulo=contacto
#32
Hmm, siempre pensé que necesitaba hacer funciones en el otro archivo que 'triggeo' con 'include', pero se ve que no necesito especificar un ECHO en el archivo a incluir, lo interpreta como tal.

Muchas gracias :DD
#33
Saludos programadores;

Hoy estaba realizando una pequeña prueba con el PHP y la funcion include, pero al inluir un archivo, me sale un 1 al final, existe alguna forma de eliminar eso?

Código (php) [Seleccionar]
<?php
$modulos = array("contacto");
if (isset($_GET['modulo'])) {
if (in_array($_GET['modulo'])) {
$incld = include("page.".htmlspecialchars($_GET['modulo']).".php");
echo($incld);
}
}
?>


Por ejemplo, si el archivo tengo un texto que dice "Hola", el la web me pone "Hola1"

Tendria que usar un strreplace? o como se diga xD
#34
Scripting / [LUA]Bug en hackealos.co? Puntajes
6 Agosto 2015, 21:36 PM
Bueno, explico un poco el problema que me ha planteado..
La cosa es que hay que superar una prueba de programador para poder acceder, pero al colocar la respuesta correcta, me dice que es incorrecta, y no entiendo por qué

La pregunta era esta
CitarEl "puntaje" de una palabra es la suma del puntaje de cada letra. El "puntaje" de una letra es la posición en donde se encuentra en una palabra, multiplicada por su posición en el abecedario. Por ejemplo, el puntaje de "acb" es (1*1) + (2*3) + (3*2).
¿Cuál es la suma de las puntuaciones de las permutaciones de "BtKdbjf"?

A lo que al respecto del problema diseñe el siguiente script:

Código (lua) [Seleccionar]
local a = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}
local t = {"B","t","K","d","j","f"}
suma = 0
ts = ""
for k,v in ipairs(t) do
for sk,sv in ipairs(a) do
if v:lower() == sv then
local LC = ""
if k == #t then
LC = ""
else
LC = " + "
end
ts = ts.."("..tostring(k).."*"..tostring(sk)..")"..LC
suma = suma + (k*sk)
end
end
end
print(tostring(suma)) --Resultado
print(tostring(ts)) --Forma de codigo


Y los print son estos:

Y la pagina me dice que la solucion es incorrecta? Por qué?

Citar177
(1*2) + (2*20) + (3*11) + (4*4) + (5*10) + (6*6)
#35
Cita de: joecarl en 28 Julio 2015, 11:44 AM
Un par de cosillas:

No se debe usar la funcion header despues de haber enviado contenido web. La alternativa a eso es usar la funcion header para redirigir con unos segundos de retraso, y luego muestras el contenido web.

Para restringir el acceso puedes hacerlo de varias formas. La mas simple es que si se producen 10 intentos de acceso erroneos se guarden en una base de datos la IP del cliente y la hora en la que se hizo el ultimo login, esa tabla la llamaremos "lista negra".

Cada vez que se intente hacer login buscamos la IP del cliente en la lista negra:
  Si no se encuentra => dejamos paso libre.
  Si se encuentra => obtenemos el valor de la ultima hora registrada y:
    Si difiere en menos de 600segundos (10 minutos) => mostramos pagina de bloqueo.
    Si no => dejamos paso libre.

Hnm, y que pasa si lo dejo de esta manera?

Código (php) [Seleccionar]
<?php
function Redirect($url$permanent false) {
header('Location: ' $urltrue$permanent 301 302);
exit();
}
?>

<html>
<head>
<title>vDNet ||</title>
<style> * {margin-left:1%;font-family:Verdana, Geneva, sans-serif} </style>
</head>
<body>
<?php
session_start();
if (!isset($_SESSION['tryes'])) {
$_SESSION['tryes'] = 0;
}
if (isset($_SESSION['lasttime'])) {
if ($_SESSION['lasttime'] - (time() + 60) < 1) {
session_destroy();
session_unset();
Redirect("https://www.venad.cf/srv/host/index.php");
}
}
if ($_SESSION['tryes'] >= && isset($_SESSION['lasttime'])) {
$minutos floor(($_SESSION['lasttime'] - (time() + 60))/60);
$sec $_SESSION['lasttime'] - (time() + 60);
while ($sec 60) {
$sec $sec 60;
}
if (($minutos $sec) > 0) {
if (isset($_GET['login']) or isset($_GET['logout'])) {
Redirect("https://www.venad.cf/srv/host/index.php");
die();
}
echo("Has hecho login erroneamente 3 veces seguidas, Debes esperar para poder iniciar sesion de nuevo<br><br>$minutos minutos y $sec segundos");
die();
} else {
$_SESSION['tryes'] = 0;
}
}
if (isset($_GET['login']) && isset($_POST['u']) && isset($_POST['p']) && !isset($_GET['u']) && !isset($_GET['p'])) {
$checking = array($_POST['u'], $_POST['p']);
$_POST['u'] = htmlspecialchars($_POST['u']);
$_POST['p'] = htmlspecialchars($_POST['p']);
if (strlen($_POST['u']) > 5) {
if (strlen($_POST['p']) > 5) {
if ($checking[0] === $_POST['u'] && $checking[1] === $_POST['p']) {
$_SESSION['tn6loggeado'] = array();
$_SESSION['tn6loggeado']['usuario'] = $_POST['u'];
$_SESSION['tn6loggeado']['password'] = $_POST['p'];
$_SESSION['tryes'] = 0;
Redirect("https://www.venad.cf/srv/host/index.php");
} else {
$_SESSION['lasterror'] = "Estas intentando meter un codigo script? nanai";
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
Redirect("https://www.venad.cf/srv/host/index.php");
}
} else {
$_SESSION['lasterror'] = "Tu contraseña debe contener 6 o mas caracteres";
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
Redirect("https://www.venad.cf/srv/host/index.php");
}
} else {
$_SESSION['lasterror'] = "Tu usuario debe contener 6 o mas caracteres";
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
Redirect("https://www.venad.cf/srv/host/index.php");
}
} elseif (isset($_GET['login']) && !isset($_POST['u']) && !isset($_POST['p'])) {
$_SESSION['lasterror'] = "Error al loggearte, comprueba que estas loggeandote de forma correcta";
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
Redirect("https://www.venad.cf/srv/host/index.php");
}
if (isset($_GET['logout']) && !isset($_GET['login']) && isset($_SESSION['tn6loggeado']['usuario']) && isset($_SESSION['tn6loggeado']['password'])) {
session_destroy();
session_unset();
Redirect("https://www.venad.cf/srv/host/index.php");
} elseif (isset($_GET['login']) or isset($_GET['logout'])) {
Redirect("https://www.venad.cf/srv/host/index.php");
}
if (!isset($_SESSION['tn6loggeado'])) {
echo("<form action=\"index.php?login\" method=\"POST\">
Usuario:<br>
<input type=\"text\" name=\"u\">
<br>
Contraseña:<br>
<input type=\"password\" name=\"p\">
<br><br>
<input type=\"submit\" value=\"Login\"><button disabled>Registrarse!</button>
</form>"
);
if (isset($_SESSION['tryes']) && $_SESSION['tryes'] > 0) {
$_SESSION['lasttime'] = time() + (60*5);
echo ("Error: {$_SESSION['lasterror']}<br>");
echo ("<br> Comprueba tus datos de acceso, intento numero {$_SESSION['tryes']} / 3");
}
}
elseif (isset($_SESSION['tn6loggeado'])) {
echo("Tu usuario es este: {$_SESSION['tn6loggeado']['usuario']} <br><br>");
echo("Tu contraseña es esta: {$_SESSION['tn6loggeado']['password']}<br><br>");
echo("<a href=\"./index.php?logout\"><button>Cerrar sesion</button></a><br><br>");
}
?>

</body>
</html>
#36
Cita de: engel lex en 21 Julio 2015, 16:15 PM
eso lo colocas en la DB, ya que tienes que colocar una clave al azar (para que no exploten el sistema) colocas la hora de la petición, si se accede al sistema, primero se hará un delete de todo lo que tenga más de 5 minutos desde la hora de solicitud y luego accesas a ver si la peticion de ese usuario existe

Hmm, parece sencillo, algo como usar tendria que usar algo como

Código (php) [Seleccionar]
time() + (60*5);
Para introducir los 5 primeros minutos, y luego el delete que dices tu, para que, basandose en la hora de la peticion, decida si existe o no
#37
Cita de: engel lex en 21 Julio 2015, 16:01 PM
para que necesitas tal cosa? estoy seguro que puede solucionarse de otra forma

Ando creando un sistema de recuperacion de contraseñas, por mi panel de login. La cosa es que el link de recuperacion solo quiero que funcione por un cierto tiempo, de ahi la necesidad de hacer eso

y el host no soporta la funcion
Código (php) [Seleccionar]
shell_exec();
#38
El tema es, queria que cuando el usuario acccede a una pagina con una cierta query, por ejemplo ?peticion=IJS8ffd87dgsG/8d87fg87fd , ejecute un temporizador de 5 minutos en el que ejecute una funcion, aun sin que el usuario este visitando la pagina, es decir, que solo dependa del script en PHP, como podria hacerlo? (Y no puedo usar CRON, porque seria 5 minutos desde que el usuario visita la pagina)
#39
La cuestion es, realicé un sistema simple para que al tener X intentos de login, le bloquee el acceso, o asi lo tenia pensado, la cosa es...

Como puedo restringir ese acceso por ejemplo.. 5 minutos?, y que luego en la pagina ponga "Te quedan X minutos de restriccion" ?

El codigo que hice hasta ahora sobre esto es el siguiente:

Código (php) [Seleccionar]
<?php
function Redirect($url$permanent false) {
header('Location: ' $urltrue$permanent 301 302);
exit();
}
?>

<html>
<head>
<title>VeNaD PHP Testing</title>
<style> * {margin-left:1%;font-family:Verdana, Geneva, sans-serif} </style>
</head>
<?php
session_start();
if (!isset($_SESSION['tryes'])) {
$_SESSION['tryes'] = 0;
}
if (isset($_GET['login']) && isset($_POST['u']) && isset($_POST['p'])) {
$_POST['u'] = htmlspecialchars($_POST['u']);
$_POST['p'] = htmlspecialchars($_POST['p']);
if (strlen($_POST['u']) > 5) {
if (strlen($_POST['p']) > 5) {
$_SESSION['ejemplo'] = array();
$_SESSION['ejemplo']['u'] = $_POST['u'];
$_SESSION['ejemplo']['p'] = $_POST['p'];
$_SESSION['tryes'] = 0;
Redirect("https://www.venad.cf/host/index.php");
} else {
echo("Tu contraseña debe contener 6 o mas caracteres");
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
}
} else {
echo("Tu usuario debe contener 6 o mas caracteres");
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
}
} elseif (isset($_GET['login']) && !isset($_POST['u']) && !isset($_POST['p'])) {
echo("Error al loggearte, prueba de nuevo<br>");
$_SESSION['tryes'] = $_SESSION['tryes'] + 1;
}
if (isset($_GET['logout']) && !isset($_GET['login']) && isset($_SESSION['ejemplo']['u']) && isset($_SESSION['ejemplo']['p'])) {
session_destroy();
session_unset();
Redirect("https://www.venad.cf/host/index.php");
} elseif (isset($_GET['login']) or isset($_GET['logout'])) {
Redirect("https://www.venad.cf/host/index.php");
}
?>

<body>

Código (php) [Seleccionar]
<?php
if (!isset($_SESSION['tn6loggeado'])) {
echo("<form action=\"index.php?login\" method=\"POST\">
Usuario:<br>
<input type=\"text\" name=\"u\">
<br>
Contraseña:<br>
<input type=\"password\" name=\"p\">
<br><br>
<input type=\"submit\" value=\"Login\">
</form>"
);
if (isset($_SESSION['tryes']) && $_SESSION['tryes'] > 0) {
echo ("<br> Comprueba tus datos de acceso, intento numero {$_SESSION['tryes']} / 3");
}
}
elseif (isset($_SESSION['ejemplo'])) {
echo("Tu usuario es este: {$_SESSION['tn6loggeado']['usuario']} <br><br>");
echo("Tu contraseña es esta: {$_SESSION['tn6loggeado']['password']}<br><br>");
echo("<a href=\"./index.php?logout\"><button>Cerrar sesion</button></a><br><br>");
}
?>


Está separado porque uno es interno y otro funciona para mostrar al cliente la informacion
#40
Muchas gracias a todos por la colaboracion a pesar de que ese ultimo era distinto del tema original :D