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

#4301
El post anterior fue borrado a falta de la fuente original de la noticia por lo cual lo expongo nuevamente.


Mirando unas revistas sobre seguridad informática, pude encontrar esta donde al parecer lo de la seguridad es tan solo un producto que se ofrece en hojas pero nada en la verdadera práctica (Como dicen.. en casa de herrero, cuchillo de palo).

Encontré múltiples vulnerabilidades de tipo Inyección SQL además de variados XSS (Cross Site Scripting) en casi todos sus formularios.

Por ejemplo:
http://www.megamultimedia.com/arroba/suscripciones/paso1.asp?idrevista=[SQL INYECCION]

Donde en este:
http://www.megamultimedia.com/arroba/suscripciones/

Y muchos otros directorios desvelan sus páginas llenas de bugs.

Las múltiples vulnerabilidades ya fueron avisadas y espero que pronto las reparen ya que tienen en juego tanto al propio servidor como a los usuarios de su foro.

Fuente:
http://whk.h4ck1ng.net/2007-12.26/inyeccion-sql-y-xss-en-el-servidor-de-la-revista-rroba/
#4302
PHP / Re: Operación aritmética
20 Diciembre 2007, 23:20 PM
Para evitar problemas voy a crear un filtro que me elimine los simbolos operativos que se encuentren al final del texto si este no termina en número.
#4303
PHP / Re: Operación aritmética
20 Diciembre 2007, 21:48 PM
Ya lo tengo en parte solucionado pero ahora quiero eliminar los acentos del texto y no resulta :P
Código (php) [Seleccionar]
$texto = str_replace("á","a",$texto);
$texto = str_replace("é","e",$texto);
$texto = str_replace("í","i",$texto);
$texto = str_replace("ó","o",$texto);
$texto = str_replace("ú","u",$texto);


Lo que sucede es que estoy creando un script llamado Lógica donde le preguntas cosas como "Cuantas manzanas son dos + tres y le quitas 5???, después le sumas una y lo multiplicas por 2." y te responde "2". Es para probar que el sistema que algunos tienen en blogs y foros como vbulletin que te preguntan... "cuanto es 1 + tres" no sirven.

Código (php) [Seleccionar]
<?

##################################################
# Archivo : lg.php #
# Nombre : Lógica #
# Version : 1.5 Beta  #
# Autor  : WHK          #
##################################################

// Declaraciones =======================================
$lg_pregunta = $_GET["pregunta"];
$lg_pregunta_cf = htmlspecialchars($lg_pregunta, ENT_QUOTES);
$lg_version = "L&oacute;gica 1.5 Beta";
$lg_header = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<title>$lg_version</title>
</head>
<body style=\"color: rgb(255, 255, 255); background-color: rgb(102, 0, 0);\" alink=\"white\" link=\"white\" vlink=\"white\">
<div style=\"text-align: center;\">
<big>
<span style=\"font-weight: bold;\"><a href=\"?\">$lg_version by WHK</a></span>
</big><br /></div>";
$lg_footer = "</body>
</html>";
// =====================================================

// Funciones ===========================================
// Eliminar caracteres innecesarios --------------------
function limpiar($texto){
$texto = str_replace(" un","1",$texto);
$texto = str_replace(" una","1",$texto);
$texto = str_replace(" uno","1",$texto);
$texto = str_replace("una ","1",$texto);
$texto = str_replace("uno ","1",$texto);
$texto = str_replace("un ","1",$texto);
$texto = str_replace(" ","",$texto);
$texto = str_replace("á","a",$texto);
$texto = str_replace("é","e",$texto);
$texto = str_replace("í","i",$texto);
$texto = str_replace("ó","o",$texto);
$texto = str_replace("ú","u",$texto);
$texto = str_replace("<","(",$texto);
$texto = str_replace(">",")",$texto);
$texto = str_replace("mas","+",$texto);
$texto = str_replace("menos","-",$texto);
$texto = str_replace("x","por",$texto);
$texto = str_replace("multiplicadopor","*",$texto);
$texto = str_replace("multiplicaspor","*",$texto);
$texto = str_replace("multiplicandopor","*",$texto);
$texto = str_replace("multiplicaraspor","*",$texto);
$texto = str_replace("divididopor","/",$texto);
$texto = str_replace("partidopor","/",$texto);
$texto = str_replace("por","*",$texto);
$texto = str_replace("divid","/",$texto); // dividimos, divide, divido, dividirás, etc.
$texto = str_replace("multiplic","*",$texto); // multiplicamos, multiplica, multiplico, multiplicarás, etc.
$texto = str_replace("part","/",$texto); // partido, partirás, partiremos, partidas, partelo, etc.
$texto = str_replace("resta","-",$texto); // resta, restale, restaremos, le restarás, etc.
$texto = str_replace("quita","-",$texto); // quita, quitas, quitale, etc.
$texto = str_replace("saca","-",$texto); // saca, sacale, sacas, etc.
$texto = str_replace("suma","+",$texto); // suma, sumale, le sumamos, sumaremos, sumarás, etc.
$texto = str_replace("iguala","=",$texto); // es igual a, es igual?, etc.
$texto = str_replace("punt",".",$texto); // punto, puntoy.. etc.
$texto = str_replace("coma",".",$texto); // coma.
$texto = str_replace("abreparenteci","(",$texto); // abre parentecis
$texto = str_replace("abresparenteci","(",$texto); // abres parentecis
$texto = str_replace("ncaparenteci","(",$texto); // inicia parentecis
$texto = str_replace("ncasparenteci","(",$texto); // inicias parentecis
$texto = str_replace("cerraparenteci",")",$texto); // cierra parentecis
$texto = str_replace("cerrasparenteci",")",$texto); // cierras parentecis
$texto = str_replace("termnaparenteci",")",$texto); // termina parentecis
$texto = str_replace("termnasparenteci",")",$texto); // terminas parentecis
$limpiar = array("*","/","+","-", "(", ")", ".", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
for ($n=0; $n < 300; $n++) {
  $a=0;
  $b=count($limpiar);

  while($a<=$b){

   if ($texto[$n] == $limpiar[$a]){ $out = $out.$texto[$n]; }
   $a++;

  }
}
return $out;

}
// -----------------------------------------------------

// Reemplaza letras por números ------------------------
// Función creada por WHK.
function char2num($texto){
$texto = str_replace("b","v",$texto);
$unidad = array("cero","", "dos", "tres", "cuatro", "cnco","ses","sete","ocho","nueve");
/*
$decena = array("die","veint", "treinta", "cuarenta", "cincuenta","sesenta","setenta","ochenta","noventa");
$centena = array("cien","sien"); // $numero.$centena
$unidad_de_mil = "mil"; // $numero.$unidad_de_mil
$unidad_de_millon = "millon"; // millón, millones, etc. $numero.$unidad_de_millon
$unidad_de_billon = "billon"; // billón, billones, etc. $numero.$unidad_de_billon
*/
$a=0;
$b=count($unidad);

while($a<=$b){

  $texto = str_replace($unidad[$a],$a,$texto);
  $a++;

}
return $texto;

}
// -----------------------------------------------------

// Procesar todo ---------------------------------------
function procesar($texto){
$texto = char2num($texto);
$texto = limpiar($texto);
return $texto;
}
// -----------------------------------------------------

// Responder -------------------------------------------
function responde($texto){
$texto = procesar($texto);
$texto = @eval('return '.$texto.';');
return $texto;
}
// -----------------------------------------------------
// =====================================================


// Index ===============================================
echo "$lg_header
<br /><br /><center>
<u>Descripci&oacute;n y uso</u><br />
$lg_version consiste en calcular operaciones aritm&eacute;ticas como por ejemplo <br />
<b><i>\"Cuantas manzanas son dos + tres y le quitas 5???, despu&eacute;s le sumas una y lo multiplicas por 2.\"</i></b><br />
y deber&iacute;a darte como resultado \"2\". Por el momento solo puede reconocer palabras unitarias como por<br />
ejemplo un, uno, dos, nueve, etc. Tambi&eacute soporta parentecis escribiendolos directamente o diciendo<br />
abre parentesis, inicia parentecis, cierra parentecis, etc. Los caracteres < y > ser&aacute;n considerados parentesis.
Mientras est&eacute; en fase beta intenta no finalizar con un punto porque es tomado como decimal.<br /><br />
<form method=\"GET\">

<input type=\"text\" name=\"pregunta\" size=\"100\" value=\"";
if($lg_pregunta){
echo $lg_pregunta_cf;
} else {
echo "Cuantas manzanas son dos + tres y le quitas 5???, despu&eacute;s le sumas una y lo multiplicas por 2.";
}

echo "\"><br /><input type=\"submit\" value=\"Preguntar\"></form>";
if($lg_pregunta){
echo "<br />Respuesta: ".responde($lg_pregunta);
}
echo "</center>$lg_footer";
// =====================================================
?>


Está algo cutre pero es lo que se me ocurrió :P
Por ahora solo le enseñé a calcular unidades pero después le enseñaré decenas y centenas sumando resultados por ejemplo mil veintiuno o mil veinte y uno retornará 1000 + 20 + 1.

Tengo que eliminar algunas cosas como los textos omitidos en la función limpiar ya que al final se limpian igual, pero no puedo sacar las tildes XD.

Si te fijas donde dice  for ($n=0; $n < 100; $n++) { debería ir la cantidad de caracteres para hacer el filtro de exepciones asi que mientras tanto solo se limita a una pregunta de 100 caracteres.

Acá dejo el demo:
http://lab.jccharry.com/proyectos/lg/
Aunque no quiero hacerlo público todavía hastaque esté terminado.
#4304
PHP / Re: Funcion echo en HTML
20 Diciembre 2007, 20:40 PM
Si tu servidor lo soporta ponn un php.ini en el directorio raiz de tu host y protegelo con un htaccess para que no puedan tener acceso a el.
#4305
PHP / Re: Operación aritmética
20 Diciembre 2007, 20:37 PM
Gracias, abusando un poco mas... como cuento la cantidad de caracteres de $op?
Intenté con $n = count($op); pero me arroja uno ya que no es un array a pesar que puedo tomarlo como si lo fuera $op[0] $op[1].
#4306
PHP / Re: Emulador Telnet con Php?
20 Diciembre 2007, 20:08 PM
Código (php) [Seleccionar]
<?php
$da 
fsockopen("$HOST"23$errno$errstr30);
if (!
$da) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$salida "$USER\r\n";
    
$salida .= "$PASS\r\n";
    
$salida .= "$COMANDOS\r\n";
    
$salida .= "exit\r\n";

    
fwrite($da$salida);
    while (!
feof($da)) {
        echo 
fgets($da128);
    }
    
fclose($da);
}
?>


Defines host, user, pass y los comandos.
#4307
PHP / Re: Funcion echo en HTML
20 Diciembre 2007, 19:56 PM
Código (php) [Seleccionar]
<?php
echo "GET: ".$_GET["test"];
echo 
"POST: ".$_POST["post"];

echo 

<form method="GET">
<input type="text" name="test"> GET
<input type="submit">
</form>

<form method="POST">
<input type="text" name="post"> POST
<input type="submit">
</form>'
;
?>


En html no existe el echo porque se ejecuta en el cliente no como el php que se ejecuta en el servidor pero si puedes usar javascript para imprimir con write:

Código (html4strict) [Seleccionar]
<script language="javascript">
var remplaza = /\+/gi;
var url = window.location.href;
url = unescape(url);
url = url.replace(remplaza, " ");
url = url.toUpperCase();
function obtener_valor(variable)
{
var variable_may = variable.toUpperCase();
var variable_pos = url.indexOf(variable_may);
if (variable_pos != -1)
{
  var pos_separador = url.indexOf("&", variable_pos);
  if (pos_separador != -1)
  {
   return url.substring(variable_pos + variable_may.length + 1, pos_separador);
  } else  {
   return url.substring(variable_pos + variable_may.length + 1, url.length);
  }
} else  {
return "NO_ENCONTRADO";
}
}
</script>


<script language="javascript">
var valor = obtener_valor("test");
document.write ("Valor: [" + valor + "]");
</script>


Después solo llamas index.php?test=probando
#4308
Es ovbio, estas haciendo un include antes de declarar el header y esos includes talves emitan ya sus propias cabeceras, no puedes declarar el header después de todo eso, intenta redireccionar con un echo '<META HTTP-EQUIV="refresh" content="0;URL=http://www.google.cl">';
#4309
PHP / Operación aritmética
20 Diciembre 2007, 09:23 AM
Hola.
Tengo el siguiente caso:

$operacion = "1+5-8/7";

Y necesito que me haga la operación completa y que me la imprima en pantalla, quería saber si existe alguna función que lo haga automaticamente o no para ver la posibilidad de separar numeros de simbolos e ingeniarmela para que realize cada operación necesaria.

Se supone que $operación debería ir en una variable, o sea que verías un formulario donde diga "ingrese la operación" y escribes 1+5-8/7 y al dar enter debría aparecer el resultado.
#4310
Citarif ($direc=="" && $MensajeSup=="Acceso Permitido"){

   echo "<h2><a href='http://192.168.9.117/index.php'>Volvel a la pagina de     Inicio</a><h2>";
   echo"Usted pertenece al dominio, pero NO tiene permiso para el acceso a Intranet";
   exit;
   }

if ($MensajeSup=="Acceso Permitido" && $direc<>""){
    header ("Location: http://192.168.9.117/acceso.php");
    exit;
}

Lo que decían, estas enviando una cabecera atrasada, el header ya fue enviado asi que no puedes enviarlo dos veces, tienes que ponerlo de los primeros o te dará error, antepone un @ de todas formas para evitar mostrar errores, de todas formas no sacas nada con imprimir echo porque con header harás que se redireccione automáticamente sin que el usuario alcanze a ver algo.