elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 [424] 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 ... 456
4231  Programación / PHP / [Proyecto] GreenCode-Coder V1.1.3 en: 8 Octubre 2008, 23:22 pm
Hola, estoy haciendo un codificador de múltiples algoritmos parecido al sneak (vease sneak) pero creando cada función yo mismo.

Quería saber si alguien desea aportar al proyecto y poder aprender cada ves mas de forma unida.

La fuente la dejo => acá
y el demo => acá

La idea es hacer un solo codificador y decodificador para cualquier tipo de tarea que necesitemos.

La conversión puede ser en cualquier formato que pueda ser escrito o descargado.

Si alguien quiere dar algún aporte aparecerá en el readme que integraré cuando lo suba a sourceforge.


V1.1.3 Conversiones soportadas: 21 (11/10/2008)

  • Ascii a Base64
  • Ascii a decimal
  • Ascii a Hexadecimal
  • Ascii a HTML (con semicolones)
  • Ascii a HTML (sin semicolones)
  • Ascii a HTMLSpecialChars
  • Ascii a MD5
  • Ascii a Octal
  • Ascii a PHP(Base64+GZ+Hexa)
  • Ascii a PNG PHP
  • Ascii a Sha1
  • Ascii a SQLi DWord(0x00)
  • Ascii a SQLi Char(dec)
  • Ascii a Unescape javascript
  • Ascii a Urlencode
  • Base64 a Ascii
  • Hexadecimal a Decimal
  • Octal a Decimal
  • PHP(Base64+GZ+Hexa) a Ascii
  • Protección de código PHP
  • Urlencode a Ascii
  • Hexadecimal a Ascii
  • Ascii a Binario IO
  • Binario IO a Ascii
  • Decimal a Ascii
  • htmlspecialchars_decode
  • Decimal a octal
  • Generar htpasswd md5
  • Generar htpasswd sha
  • Generar htpasswd crypt

Ejemplo
ASCII a SQLi DWord(0x00) =>
../../../../../etc/passwd =>
funcion(0x2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764)

Uso
Código:
http://www.site.com/?page_id=-1+union+select+1,load_file(0x2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764),3


Ideas, aportes, opiniones, criticas contructivas y no constructivas?¿?
4232  Seguridad Informática / Nivel Web / Re: SMF 1.1.6 Filter Post Bypass en: 6 Octubre 2008, 05:19 am
jaja otro bug, siendo coadmin y moderador este último se sobrepone al tipo de usuario original restringiendo los accesos, te apuesto que eso pasaría incluso con administradores.
4233  Seguridad Informática / Nivel Web / Re: SMF 1.1.6 Filter Post Bypass en: 5 Octubre 2008, 17:12 pm
Citar
Y eso esta para que lo utilize el que sepa sdc o es que muy dificil tapar ese fallo, lo voy a utilizar algun dia...

Así parece ser, un usuario hero de simple machines respondió que era tan dificil de resolver que simplemente no será reparado  :P


Citar
This is a known 'bug' however it isn't something we're going to fix. The reason for this is that checking for every single way of getting around the filter would take a lot of time.

http://www.simplemachines.org/community/index.php?topic=266023.0

Además como dicen mis amigos arabes  :xD
Citar
این مورد مشکل امنیتی نیست . در واقع راهی برای دور زدن فیلترینگ هست که اگر چک کنید بقیه forum ها هم همین مشکل رو دارن vBulletin - PHPBB - SMF & ....
También se puede usar en todos los foros que utilizen este sistema.

http://www.mambolearn.com/forum/index.php?action=printpage;topic=16766.0
4234  Seguridad Informática / Nivel Web / SMF 1.1.6 Filter Post Bypass en: 4 Octubre 2008, 10:15 am
Bueno en realidad esto lo pude descubrir o redescubrir pero hasta ahora nadie lo ha posteado en ningún lado, se trata sobre un sistema de foros llamado Simple Machines Forum donde puedes administrar el tipo de contenido que puede tener el foro, por ejemplo puedes evitar entre comillas que alguier escriba la palabra "fuck" o "n00b", etc pero es muy facil de sobrepasar tal sistema de seguridad:

   
Código:
fu[b][/b]ck you!

El problema está en que SMF no verifica si algún BBCode es núlo insertando divisiones de estilos en el post y en algunos casos sin ser cerrados causando un pequeño deface en la página evitando filtros de spam y control de palabras.

En algunos casos sitios webs donde debes registrarte para ver los links puedes utilizar esta técnica para bypasear su MOD que impide su visualización interrumpiendo los carácteres "http://"

Aquí una demostración:



Fuente:
http://www.jccharry.com/blog/2008/10/04/whk_smf-116-filter-post-bypass.html
http://milw0rm.com/exploits/6665
4235  Programación / PHP / Re: Refrescar un php desde otro php en: 3 Octubre 2008, 05:28 am
Citar
Para mi gusto no puedes poner funciones que funcionen en un explorador y en otro no, debes de llebar la compatibilidad basada en estandares.

Claro, me podrías decir como hacerlo en ambos exploradores?
4236  Programación / PHP / Re: Refrescar un php desde otro php en: 3 Octubre 2008, 05:15 am
Algo así está bién?
Demo:
http://lab.jccharry.com/seguridad_web_doc/captcha1.php

Código
  1. <?php
  2. if($_GET['accion'] == 'captcha'){
  3. header("Content-type: image/png");
  4. if(!$imagen = imagecreate(100, 50)){
  5.  echo "No se puede inicializar el m&oacute;dulo GD";
  6.  exit(1);
  7. }
  8. $_SESSION['clave'] = md5(rand(1,100));
  9. $_SESSION['clave'] = substr($_SESSION['clave'], 0, 6);
  10. imagecolorallocate($imagen, 255, 255, 255);
  11. $color_texto = imagecolorallocate($imagen, 0, 0, 0);
  12. imagestring($imagen, 12, 5, 5,  $_SESSION['clave'], $color_texto);
  13. imagepng($imagen);
  14. imagedestroy($imagen);
  15. exit(0);
  16. }else{
  17. if($_POST['clave']){
  18.  if(strtolower($_SESSION['clave']) == strtolower($_POST['clave'])){
  19.   $estado = "La clave es v&aacute;lida";
  20.  }else{
  21.   $estado = "La clave es inv&aacute;lida";
  22.  }
  23. }else{
  24.  $estado = "Sin acciones";
  25. }
  26. }
  27. ?>
  28. <html>
  29. <head>
  30. </head>
  31. <body>
  32. <b>Ingresa el siguiente c&oacute;digo:<br>
  33. <img  src="<?php echo $_SERVER[PHP_SELF]; ?>?accion=captcha"
  34. onclick="this.src='<?php echo $_SERVER[PHP_SELF]; ?>?accion=captcha';" /><br>
  35. <form method="post">
  36. <input type="text" name="clave"> <input type="submit" value="Enviar">
  37. </form>
  38. <br><br>
  39. Estado: <b><?php echo $estado; ?></b>
  40. </body>
  41. </html>

El único detalle es que la función ... onclick="this.src ... solo funciona en Internet Explorer.
4237  Programación / PHP / Re: Refrescar un php desde otro php en: 2 Octubre 2008, 16:39 pm
No es ajax, simplemente esa función que pusiste dice que al hacer click sobre la imagen esta se reemplazará por la imagen que aparezca en esta url:

captcha.php?newtime= + (new Date()).getTime()

Donde newtime es un identificador de la captcha pero eso sería muy manipulable por un atacante asi que te recomiendo que uses sesiones con session start y cookies.

cuando haces una petición a captcha.php dejas en una base de datos el hash que debes responder y si respondes a loguin.php con ese mismo hash que estaba en la base de datyos entonces puedes ingresar, cuando refrescas la imagen el hash se modifica con UPDATE dentro de la MySQL ovbiamente ese hash sería el resultado de la imagen, o también puedes alojar la respuesta dentro de la cookie pero con $_SESSION[] para que el visitante no pueda modificarlo.

Cuando buelva del trabajo haré algunos ejemplos.
4238  Programación / PHP / Re: Tutorial: Crear area restringida con php en nuestra web en: 2 Octubre 2008, 06:16 am
Hice un pequeño script bién básico para ver si es esto lo que necesitas.
Te puedes registrar y cuando ingresas con tu user y pass tienes un contenido personalizado.

Demo: http://lab.jccharry.com/seguridad_web_doc/web.php

Código
  1. <?php
  2. /*
  3. Codeado por WHK para NaSaRiD15
  4. */
  5.  
  6. /* Configuraciones del php --------------------------------- */
  7. error_reporting(0); // Evita fuga de información
  8. set_magic_quotes_runtime(0); // Evita las adiciones de slashses que aplica apache en las Request URI
  9. /* ---------------------------------------------------------- */
  10.  
  11. /* Datos de la base de datos -------------------------------- */
  12. $servidor_bd = '127.0.0.1';
  13. $basededatos = 'nasarid';
  14. $usuario_bd  = 'nasarid';
  15. $pass_bd = 'pass';
  16. /* ---------------------------------------------------------- */
  17.  
  18. /* Conectamos a la base de datos ---------------------------- */
  19. if(!$conectar_sql = mysql_pconnect($servidor_bd, $usuario_bd, $pass_bd)){
  20. $error_critico = "No se puede conectar a la base de datos";
  21. }else{
  22. if(!mysql_select_db($basededatos,$conectar_sql)){
  23.  $error_critico = "No existe la base de datos seleccionada";
  24. }
  25. }
  26. /* ---------------------------------------------------------- */
  27.  
  28. verifica_error_db($error_critico);
  29. $registro = verifica_registrar();
  30. verifica_login();
  31.  
  32. /* ---------------------------------------------------------- */
  33.  
  34. /* Página principal ----------------------------------------- */
  35. if(logueado()){
  36. if(!contenido_usuario_logueado()){
  37.  contenido_error();
  38. }
  39. exit(0);
  40. }else{
  41. contenido_general();
  42. exit(0);
  43. }
  44. /* ---------------------------------------------------------- */
  45.  
  46.  
  47. /* Funciones ================================================ */
  48. function verifica_login(){
  49. /* Verifica si fue enviado el formulario de logueo */
  50. if($_POST['user_login'] and $_POST['pass_login']){
  51.  setcookie('user_login', base64_encode($_POST['user_login']));
  52.  setcookie('pass_login', md5($_POST['pass_login']));
  53.  header("Estado: Redireccionando para su validacion...");
  54.  header("location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  55.  exit(0);
  56. }
  57. }
  58.  
  59. function verifica_error_db($error_critico){
  60. /* Verifica errores de conexión  */
  61. if($error_critico){
  62.  mysql_close(); // Cierra la conexión MySQL
  63.  echo "<html><b>Error: </b>$error_critico<br></html>"; // Escribe el error
  64.  exit(1); // Escapa del script
  65. }
  66. }
  67.  
  68. function logueado(){
  69. if($_COOKIE['user_login'] and $_COOKIE['pass_login']){
  70.  global $conectar_sql;
  71.  $sql = "
  72.   SELECT `pass` FROM `usuarios`
  73.   WHERE `user`
  74.   LIKE CONVERT(_utf8 '".mysql_real_escape_string($_COOKIE['user_login'])."' USING latin1)
  75.   COLLATE latin1_swedish_ci
  76.   LIMIT 1;
  77.  ";
  78.  if(!$peticion = mysql_query($sql,$conectar_sql)){
  79.   return false;
  80.  }else{
  81.   $columna = mysql_fetch_row($peticion);
  82.   mysql_free_result($peticion);
  83.   if(!$columna[0]){
  84.    return false;
  85.   }
  86.   if($_COOKIE['pass_login'] == $columna[0]){
  87.    return true;
  88.   }else{
  89.    return false;
  90.   }
  91.  }
  92. }else{
  93.  return false;
  94. }
  95. }
  96.  
  97. function contenido_usuario_logueado(){
  98. global $conectar_sql;
  99. $sql = "
  100.  SELECT `contenido` FROM `usuarios`
  101.  WHERE `user`
  102.  LIKE CONVERT(_utf8 '".mysql_real_escape_string($_COOKIE['user_login'])."' USING latin1)
  103.  COLLATE latin1_swedish_ci
  104.  LIMIT 1;
  105. ";
  106. if(!$peticion = mysql_query($sql,$conectar_sql)){
  107.  return false;
  108. }else{
  109.  $columna = mysql_fetch_row($peticion);
  110.  mysql_free_result($peticion);
  111.  echo $columna[0];
  112.  return true;
  113. }
  114. }
  115.  
  116. function contenido_general(){
  117. global $registro;
  118. echo '<h1>Creado por WHK para NaSaRiD15</h1><br>
  119. <h2>http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html</h2>
  120.  <br><br>
  121.  <h3>Ingresar:</h3><br>
  122.  <form method="post">
  123.  <input type="text" name="user_login"> User<br>
  124.  <input type="passwd" name="pass_login"> Pass<br>
  125.  <input type="submit" value="Ingresar">
  126.  </form>
  127.  <br><br><h3>O registrarse:</h3><br>
  128.  <form method="post">
  129.  <input type="text" name="user_registrar"> User<br>
  130.  <input type="passwd" name="pass_registrar"> Pass<br>
  131.  <input type="submit" value="Registrarse">
  132.  </form><br><br>
  133.  '.$registro.'
  134. ';
  135. }
  136.  
  137. function contenido_error(){
  138. echo '
  139.  <b><i>Hubo un error al devolver su contenido personalizado.<br>
  140.  Elimine sus cookies y buelva a intentarlo.</i></b>
  141. ';
  142. }
  143.  
  144. function verifica_registrar(){
  145. if($_POST['user_registrar'] and $_POST['pass_registrar']){
  146.  global $conectar_sql;
  147.  $sql = "
  148.   SELECT `user`
  149.   FROM `usuarios`
  150.   WHERE `user`
  151.   LIKE CONVERT(_utf8 '".base64_encode($_POST['user_registrar'])."' USING latin1)
  152.   COLLATE latin1_swedish_ci
  153.   LIMIT 1;
  154.  ";
  155.  if(!$peticion = mysql_query($sql,$conectar_sql)){
  156.   return false;
  157.  }else{
  158.   $columna = mysql_fetch_row($peticion);
  159.   mysql_free_result($peticion);
  160.   if(base64_encode($_POST['user_registrar']) == $columna[0]){
  161.    return "El usuario ya existe";
  162.   }else{
  163.    $sql = "
  164.     INSERT INTO `usuarios` (`user`, `pass`, `contenido`)
  165.     VALUES ('".
  166.     base64_encode($_POST['user_registrar'])."', '".
  167.     md5($_POST['pass_registrar'])."', '<b>Bienvenido ".
  168.     mysql_real_escape_string(htmlspecialchars($_POST['user_registrar'], ENT_QUOTES)).
  169.     "!</b><br>Contenido a espera de ser editado.');
  170.    ";
  171.    if(mysql_query($sql,$conectar_sql)){
  172.     setcookie('user_login', base64_encode($_POST['user_registrar']));
  173.     setcookie('pass_login', md5($_POST['pass_registrar']));
  174.     header("Estado: Redireccionando para su validacion...");
  175.     header("location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  176.     exit(0);
  177.    }else{
  178.     return false;
  179.    }
  180.   }
  181.  }
  182. }
  183. }
  184. /* =========================================================== */
  185. ?>

Base de datos en MySQL:
Código
  1. -- phpMyAdmin SQL Dump
  2. -- version 2.11.9.1
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 01-10-2008 a las 22:21:43
  7. -- Versión del servidor: 5.0.45
  8. -- Versión de PHP: 5.2.6
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12. --
  13. -- Base de datos: `nasarid`
  14. --
  15.  
  16. -- --------------------------------------------------------
  17.  
  18. --
  19. -- Estructura de tabla para la tabla `usuarios`
  20. --
  21.  
  22. CREATE TABLE IF NOT EXISTS `usuarios` (
  23.  `user` text NOT NULL,
  24.  `pass` text NOT NULL,
  25.  `contenido` text NOT NULL
  26. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
  27.  
  28. --
  29. -- Volcar la base de datos para la tabla `usuarios`
  30. --
  31.  
  32. INSERT INTO `usuarios` (`user`, `pass`, `contenido`) VALUES
  33. ('d3c=', 'ad57484016654da87125db86f4227ea3', '<b>Bienvenido ww!</b><br>Contenido a espera de ser editado.'),
  34. ('dHR0dHQ=', '3bad6af0fa4b8b330d162e19938ee981', '<b>Bienvenido ttttt!</b><br>Contenido a espera de ser editado.');
  35.  
4239  Programación / PHP / Re: Cuenta descarga en: 1 Octubre 2008, 09:52 am
Bueno, talves te interese probar esto cuando termines de coregirlo:

http://www.usuarios.lycos.es/electronicapic/prueba.php?id=-1+union+select+user(),database()+/*

Te recomiendo que lo uses con mysql_real_escape_string()

Código
  1. $sql = "UPDATE contador SET descargas = descargas + 1
  2. WHERE id = '".mysql_real_escape_string($GET[id])."';";

Lo que puedes hacer es obtener 'descargas', sumarlo y después insertarlo en la query, talves resulte o verifica desde el phpmyadmin porque esa consulta te está arrojando errores.
4240  Programación / PHP / Re: syntax error, unexpected T_STRING en: 1 Octubre 2008, 09:40 am
Mira, lo que yo siempre hago para ver algún error de sitnaxis en SQL imprimo en pantalla la query de la siguiente manera:

Código
  1. <?php
  2. /* .. .. */
  3. $query = "
  4. insert into pale_loteria_nacional ('
  5. ".$primero."', '".$segundo."', '".$cantidad."', '".$agencia."
  6. ',)";
  7.  
  8. echo $query; exit(0);
  9. /* .. .. */
  10. ?>

Después copio lo que me aparezca y lo pego en el phpmyadmin y al dar ejecutar este me dirá cual es el error detalladamente y en que linea se produjo, una forma eficaz para personas que saben lo básico sobre bases de datos MySQL.
Páginas: 1 ... 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 [424] 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 ... 456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines