StrikeZ - Todo sobre Mu Online y Counter Strike


[Guia] Solucionar edicion en la KVS

Ver el tema anterior Ver el tema siguiente Ir abajo

biggri [Guia] Solucionar edicion en la KVS

Mensaje por chinodj el Sáb Ene 29, 2011 2:36 pm

Bueno amigos, aquellos que fueron hackeados en su server con la web Kachorro Web Vista Style "cualquiera", y no saben como ni porque.. aca traigo la solucion.-

Bueno el problema es que hacen lo que quieren ya que la web KVS es vulnerable a la inyeccion sql en la zona de Recuperar Password.

Bueno resulta que hay no esta protegido contra la inyeccion en la zona de EMAIL

¿Como solucionamos esto? Bueno en la carpeta modulos el archivo
recuperarpass2.php
falta una simple linea a todo el sistema anti inyec

/www/Modulos/recuperarpass.php

" BORREN TODO EL CONTENIDO DE recuperarpass.php "
y peguen este
REMPLAZEN POR ESTE " ANTES LO ESTABAN HACIENDO MAL "

Código:
<html>
 <head>
  <LINK REL="StyleSheet" HREF="../Estilo.css" TYPE="text/css">
 </head>
    <body style="background-color:transparent">

<script type="text/javascript" language="Javascript">
<!-- Begin
document.oncontextmenu = function(){return false}
// End -->
</script>
  <table width="420" border="0" align="center">
  <tr>
    <td colSpan="2" align="right">
<?
require '../configuracion.htpasswd';
require_once "sql_inject.php";
include_once('sql_check.php');
check_inject();
$bDestroy_session = TRUE;
$url_redirect = 'index.php';
$sqlinject = new sql_inject('./log_file_sql.log',$bDestroy_session,$url_redirect)  ;

$cuenta = stripslashes($_POST['cuenta']);
$mail = stripslashes($_POST['mail']);
$psec = stripslashes($_POST['psec']);   
$rsec = stripslashes($_POST['rsec']);
$pass = stripslashes($_POST['pass']);
$repass = stripslashes($_POST['repass']);
   
if ((eregi("[^a-zA-Z0-9_-]", $cuenta)) ||
(eregi("[^a-zA-Z0-9\.@_-]", $mail)) ||
(eregi("[^a-zA-Z0-9_-]", $psec)) ||
(eregi("[^a-zA-Z0-9_-]", $rsec)) ||
(eregi("[^a-zA-Z0-9_-]", $pass)) ||
(eregi("[^a-zA-Z0-9_-]", $repass)) )
   {
        echo("<div class=estilo_rojo align="center">SQL Injection Detectado.</div><br /><div class="style1" align="center"> Por favor utiliza solo letras(a-Z) y numeros(0-9).</div>");
        exit();
   }

$sql_username_check = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$cuenta'");
$username_check = mssql_num_rows($sql_username_check);

$sql_mail_check = mssql_query("SELECT mail_addr FROM MEMB_INFO WHERE mail_addr='$mail' and memb___id='$cuenta'");
$mail_check = mssql_num_rows($sql_mail_check);

$sql_psec_check = mssql_query("SELECT fpas_ques FROM MEMB_INFO WHERE fpas_ques='$psec' and memb___id='$cuenta'");
$psec_check = mssql_num_rows($sql_psec_check);

$sql_rsec_check = mssql_query("SELECT fpas_answ FROM MEMB_INFO WHERE fpas_answ='$rsec' and memb___id='$cuenta'");
$rsec_check = mssql_num_rows($sql_rsec_check);

if (empty($cuenta) || empty($mail) || empty($psec) || empty($rsec) || empty($pass) || empty($repass)) {
echo("<div class=estilo_rojo align="center">Error:</div><div class="style1" align="center">Algunos espacios fueron dejados en blanco.<br /> Vuelve atras e intentalo de nuevo.</div>");
}

elseif ($username_check <= 0){
        echo "<div class=estilo_rojo align="center">Error: </div><div class="style1" align="center">La cuenta ingresada es incorrecta. <br />Por favor vuelve atras e intenta de nuevo.</div>"; }

elseif ($mail_check <= 0){
        echo "<div class=estilo_rojo align="center">Error: </div><div class="style1" align="center">El Email ingresado es incorrecto.<br /> Por favor vuelve atras e intenta de nuevo.</div>"; }

elseif ($psec_check <= 0){
        echo "<div class=estilo_rojo align="center">Error: </div><div class="style1" align="center">La pregunta secreta no es correcta.<br /> Por favor vuelve atras e intenta de nuevo.</div>"; }      
      
elseif ($rsec_check <= 0){
        echo "<div class=estilo_rojo align="center">Error: </div><div class="style1" align="center">La respuesta secreta no es correcta.<br /> Por favor vuelve atras e intenta de nuevo.</div>"; }
      
elseif ($pass != $repass){
        echo "<div class=estilo_rojo align="center">Error: </div><div class="style1" align="center">La contraseña nueva no coincide con su repeticion.<br /> Por favor vuelve atras e intenta de nuevo.</div>"; }
      

else {   
$msquery = "UPDATE dbo.MEMB_INFO
SET memb__pwd = '$pass'
WHERE memb___id = '$cuenta'
AND mail_addr = '$mail'
AND fpas_ques = '$psec'
AND fpas_answ = '$rsec'";

$sqlinject->test($msquery);
$msresults= mssql_query($msquery);
echo "<div align="center" class=estilo_verde>Tu Contraseña ha sido cambiado.</div><br /> <div align="center" class="estilo_verde">Tu nueva contraseña es:<b> $pass </b></div>";}
$msconnect=mssql_close();
?>
 </body>
</html>

O SUSTITUYAN EL ARCHIVO COMPLETO!!! " RECOMENDADO "

RapidShare: Easy Filehosting


AHORA! PRUEBEN DE NUEVO

chinodj
Moderador
Moderador

Mensajes Mensajes : 84
Puntos Puntos : 218
Reputación Reputación : 0
Fecha de inscripción Fecha de inscripción : 23/01/2011
Localización Localización : Bahia Blanca, Buenos Aires
Masculino

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.