Autor
|
Tema: Cómo evitar inyección SQL? (Leído 3,995 veces)
|
exelovin
Desconectado
Mensajes: 3
|
Hola gente del foro, quiero contarles mi problema. resulta que tengo un script en el cual me hackean con la cuenta admin, osea si yo no creo un usuario con privilegios de admin no me pueden hackear, creo que es inyección SQL. mí pregunta es cómo soluciono eso? gracias.
|
|
« Última modificación: 8 Abril 2013, 16:55 pm por exelovin »
|
En línea
|
|
|
|
#!drvy
|
Lo que has puesto literalmente es:
Hola amigos, resulta que un ladrón entra a casa y me roba con el pin del sistema de alarma. Creo que es un ladron mi pregunta es como soluciono eso ?
Si no das detalles (como creas la cuenta, como la validas, como entras con ella etc..) poco se te puede ayudar y solo se puede especular..
Saludos
|
|
|
En línea
|
|
|
|
BlackM4ster
Desconectado
Mensajes: 499
Error, el teclado no funciona. Pulse F1 para continuar
|
Activa magic quotes, eso, a los lammer, les echa para atrás xD
|
|
|
En línea
|
|
|
|
exelovin
Desconectado
Mensajes: 3
|
$query = mysql_query("SELECT id, activacion, ban, nick FROM usuarios WHERE nick = '".no_injection(trim($_POST['nick']))."' and password = '".no_injection(md5($_POST['pass']))."'") or die(mysql_error());
hay algo inseguro ahí? creo que por ahí me hackean...
|
|
« Última modificación: 9 Abril 2013, 08:43 am por exelovin »
|
En línea
|
|
|
|
|
l337*
Desconectado
Mensajes: 1.016
I've been thinking...
|
Hola gente del foro, quiero contarles mi problema. resulta que tengo un script en el cual me hackean con la cuenta admin, osea si yo no creo un usuario con privilegios de admin no me pueden hackear, creo que es inyección SQL. mí pregunta es cómo soluciono eso? gracias.
siempre pon tus queries dentro de las comas simples o las atravesadas $sql = "SELECT `id` FROM `tabla` WHERE id='".$_GET['id']."'" ; la otra seria, si esperas un id numerico: if(isset($_GET['id']) && is_numeric($_GET['id'])) { //ejecutar query } else { //return error y die(); } si es en un script de inserts, update, delete, etc. limpia las variables con mysql_real_escape_string(); http://php.net/manual/en/function.mysql-real-escape-string.php
|
|
« Última modificación: 10 Abril 2013, 23:51 pm por l337* »
|
En línea
|
|
|
|
exelovin
Desconectado
Mensajes: 3
|
Así está bien? $query = mysql_query("SELECT `id`, `activacion`, `ban`, `nick` FROM `usuarios` WHERE `nick` = '".mysql_real_escape_string(trim($_POST['nick']))."' and password = '".mysql_real_escape_string(md5($_POST['pass']))."'") or die(mysql_error()); Acá dejo el código entro... <?php require_once("header.php");
$user = mysql_real_escape_string($_POST["nick"]); $pass = mysql_real_escape_string($_POST["pass"]);
if(empty($user) or empty($pass)){ die('0: Faltan Datos'); } $pass = md5($pass); // Comprobamos los datos $query = mysql_query("SELECT `id`, `activacion`, `ban`, `nick` FROM `usuarios` WHERE `nick` = '".mysql_real_escape_string(trim($_POST['nick']))."' and password = '".mysql_real_escape_string(md5($_POST['pass']))."'") or die(mysql_error());
if (!$data = mysql_fetch_array($query)){ die('0: Datos no validos'); }
if($data["activacion"] != '1'){ die('0: Activa Tu Usuario'); }
$baneo = "SELECT * FROM suspendidos WHERE nick='$user'"; $bane = mysql_query($baneo, $con); $bane2 = mysql_fetch_array($bane);
function ToUnix($string){ $string = str_replace("/","-",$string); return strtotime($string); }
$baneo = $bane2['fecha2']; $dia = 60*60*24; $baneo2 = $baneo*$dia; $fechaone = ToUnix($bane2['fecha1']); $fechaone2 = $fechaone; if(date("d/m/Y",$baneo2+$fechaone2) == date("d/m/Y") and is_numeric($bane2['fecha2'])){ mysql_query("UPDATE usuarios SET ban = 0 WHERE nick = '$user'"); mysql_query("DELETE FROM suspendidos WHERE nick = '$user'"); }
if($data["ban"]=='1' and date("d/m/Y",$baneo2+$fechaone2) !== date("d/m/Y")){
/* * Desarrollado por timbalentimba... * Puto el que lee */
echo'2:
<font color="red"><b>Tu cuenta se encuentra suspendida</b></font> <p align=left> <b>Causa:</b> '.$bane2['causa'].' <br/><b>Fecha:</b> '.$bane2['fecha1'].' <br/><b>Duración:</b> '.(!is_numeric($bane2['fecha2']) ? 'Indefinido' : $bane2['fecha2'].' Dia/s'); echo '<br> <b>Rehabilitacion el :</b> '.date("d/m/Y",$baneo2+$fechaone2);
die(); }
$ip = no_i($_SERVER['REMOTE_ADDR']);
$id_A = md5(uniqid(rand(), true)); $_SESSION['user'] = mysql_real_escape_string($data['nick']); $_SESSION['id'] = $data['id']; $_SESSION['id2'] = $id_A;
$id_B = $data["id"]."%".$id_A."%".$ip; setcookie('id_extreme', $id_B, time()+7776000,'/'); $query = mysql_query("UPDATE `usuarios` SET `id_extreme` = '".$id_A."' WHERE `nick` = '".mysql_real_escape_string($_POST['nick'])."'");
echo'1:'; ?> Hay otra vulnerabilidad?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como evitar la inyeccion sql
Nivel Web
|
CICOLO_111234
|
2
|
10,758
|
20 Abril 2009, 01:02 am
por WHK
|
|
|
Evitar inyeccion SQL en mysql y redireccionar
« 1 2 3 »
Nivel Web
|
RicRed
|
20
|
13,323
|
18 Marzo 2010, 03:41 am
por Shell Root
|
|
|
Evitar Inyeccion en MySQL
« 1 2 »
PHP
|
ZharkD
|
13
|
9,731
|
14 Mayo 2010, 16:37 pm
por ZharkD
|
|
|
Se puede evitar inyección DLL ?
Análisis y Diseño de Malware
|
Vaagish
|
4
|
3,715
|
29 Noviembre 2013, 22:45 pm
por Vaagish
|
|
|
Evitar inyeccion y burp suite java
Seguridad
|
kkshihack
|
0
|
2,092
|
11 Febrero 2016, 18:57 pm
por kkshihack
|
|