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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 408 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 ... 455
4221  Programación / PHP / Re: [Proyecto] GreenCode-Coder V1.1.1 en: 13 Octubre 2008, 09:08 am
Hola IngAmc, gracias, ya lo puse.  ;D

También pienso crear dentro del mismo conversor un conversor de XSS  :P por ejemplo en buffer das lo siguiente:

Citar
<a href="http://$xss">test</a>

El sistema intentará escapar y te dará el resultado:

Citar
$xss = ">[XSS]

 :P Básico pero útil para gente que comienza en esto.
4222  Programación / PHP / Re: Pequeños trucos en PHP en: 13 Octubre 2008, 09:04 am
Transformación de Strings en múltiples formas

Código
  1. // Powered by GreenCode - WHK
  2. function codifica_base64_gz($buffer){
  3. $buffer = bin2hex(base64_encode(gzcompress($_POST['buffer'])));
  4. $separador = 16; // Editable, separador de 16 bytes.
  5. $separa = 0;
  6. for($cuenta=0;$cuenta<strlen($buffer);$cuenta+=2){
  7.  if($separa == 0){
  8.   $dump .= '"';
  9.  }
  10.  $dump .= '\x'.$buffer[$cuenta].$buffer[$cuenta+1];
  11.  $separa++;
  12.  if($separa == $separador){
  13.   $dump .= '"';
  14.   if($cuenta != (strlen($buffer))-2){
  15.    $dump .= '.'."\n";
  16.   }
  17.   $separa = 0;
  18.  }
  19. }
  20. if($dump[strlen($dump)-1] != '"'){
  21.  $dump .= '"';
  22. }
  23. return
  24. "\x3c\x3fphp\n// ...\n\n/* El retorno es tu buffer */".
  25. "\$str = gzuncompress(base64_decode(\n$dump\n));\n\n// ...\n\x3f\x3e";
  26. }
  27.  
  28. function ascii_a_png($buffer){
  29. return
  30. "\x3c\x3fphp\n// ...\n\n".
  31. "/* El retorno es una imagen */\n".
  32. "\$handle_img = imagecreate(".(int)(strlen($buffer) * 9).", 30);\n".
  33. "\$fondo = imagecolorallocate(\$handle_img, 255, 255, 255);\n".
  34. "\$color_texto = imagecolorallocate(\$handle_img, 0, 0, 255);\n".
  35. "imagestring(\$handle_img, 5, 0, 0, base64_decode(\"".base64_encode($buffer)."\"), \$color_texto);\n".
  36. "header(\"Content-type: image/png\");\n".
  37. "imagepng(\$handle_img);\n\n".
  38. "// ...\n\x3f\x3e";
  39. }
  40.  
  41. function sqlchr($buffer){
  42. for($cuenta=0;$cuenta<strlen($buffer);$cuenta++){
  43.  $dump .= 'char('.ord($buffer[$cuenta]).')';
  44.  if((strlen($buffer) - 1) != $cuenta){
  45.   $dump .= ',';
  46.  }
  47. }
  48. return $dump;
  49. }
  50.  
  51. function sqldword($buffer){
  52. return 'funcion(0x'.bin2hex($buffer).')';
  53. }
  54.  
  55. function urlencode_total($buffer){
  56. $buffer = bin2hex($buffer);
  57. for($cuenta=0;$cuenta<strlen($buffer);$cuenta+=2){
  58.  $dump .= '%'.$buffer[$cuenta].$buffer[$cuenta+1];
  59. }
  60. return $dump;
  61. }
  62.  
  63. function unescape_javascript($buffer){
  64. return '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">
  65. document.write(unescape("'.urlencode_total($buffer).'"));
  66. </SCRIPT>';
  67. }
  68.  
  69. function php_encode($buffer){
  70. $buffer = bin2hex(base64_encode(gzcompress($_POST['buffer'])));
  71. $separador = 16; // Editable, separador de 16 bytes.
  72. $separa = 0;
  73. for($cuenta=0;$cuenta<strlen($buffer);$cuenta+=2){
  74.  if($separa == 0){
  75.   $dump .= '"';
  76.  }
  77.  $dump .= '\x'.$buffer[$cuenta].$buffer[$cuenta+1];
  78.  $separa++;
  79.  if($separa == $separador){
  80.   $dump .= '"';
  81.   if($cuenta != (strlen($buffer))-2){
  82.    $dump .= '.'."\n";
  83.   }
  84.   $separa = 0;
  85.  }
  86. }
  87. if($dump[strlen($dump)-1] != '"'){
  88.  $dump .= '"';
  89. }
  90. return
  91. "\x3c\x3fphp\n// ...\n".
  92. "/*\nRecuerda que no debes anteponer '\x3c\x3f' ni terminar con '\x3f\x3e'".
  93. "Elimina este comentario.\n*/\n".
  94. "eval(gzuncompress(base64_decode(\n$dump\n)));\n\n// ...\n\x3f\x3e";
  95. }
  96.  
  97. function decodifica_base64_gz($buffer){
  98. $buffer1 = str_replace('"',' ',$buffer);
  99. $buffer1 = str_replace('.',' ',$buffer);
  100. $buffer1 = explode('\x',$buffer);
  101. $buffer1[0] = '';
  102. for($cuenta=0;$cuenta<count($buffer1);$cuenta++){
  103.  if(strlen($buffer1[$cuenta]) == '2'){
  104.   $buffer2 .= ' '.$buffer1[$cuenta];
  105.   $procesando = true;
  106.  }else{
  107.   if($procesando){
  108.    $buffer2 .= ' '.$buffer1[$cuenta][0].$buffer1[$cuenta][1];
  109.   }
  110.  }
  111. }
  112. $buffer2 = explode(' ',$buffer2);
  113. for($cuenta=0;$cuenta<count($buffer2);$cuenta++){
  114.  if(strlen($buffer2[$cuenta]) == '2'){
  115.   $buffer3 .= $buffer2[$cuenta];
  116.  }
  117. }
  118. return gzuncompress(base64_decode(hexa_a_str($buffer3)));
  119. }
  120.  
  121. function ascii_a_sha1($buffer){
  122. return sha1($buffer);
  123. }
  124.  
  125. function hexa_a_str($buffer){
  126. $buffer = preg_replace("/[^a-zA-Z0-9s]/", "", str_replace('\x',' ',$buffer));
  127. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  128.  $dump .= chr(hexdec($buffer[$cuenta].$buffer[($cuenta+1)]));
  129. }
  130. return $dump;
  131. }
  132.  
  133. function ascii_a_decimal($buffer){
  134. for($cuenta=0;$cuenta<strlen($buffer);$cuenta++){
  135.  $dump .= ord($buffer[$cuenta]).' ';
  136. }
  137. return $dump;
  138. }
  139.  
  140. function ascii_a_html_sin_s($buffer){
  141. $buffer = bin2hex($buffer);
  142. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  143.  $dump .= '&#38;#'.hexdec($buffer[$cuenta].$buffer[$cuenta+1]);
  144. }
  145. return $dump;
  146. }
  147.  
  148. function ascii_a_html_con_s($buffer){
  149. $buffer = bin2hex($buffer);
  150. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  151.  $dump .= '&#38;#x'.$buffer[$cuenta].$buffer[$cuenta+1].';';
  152. }
  153. return $dump;
  154. }
  155.  
  156. function generar_htpasswd_sha($user,$pass){
  157. return $user.':{SHA}'.base64_encode(sha1($pass, TRUE));
  158. }
  159.  
  160. function generar_htpasswd_md5($user,$realm,$pass){
  161. return $user.':'.md5($user.':'.$realm.':'.$pass);
  162. }
  163.  
  164. function hexadecimal_a_decimal($buffer){
  165. $buffer = preg_replace("/[^a-zA-Z0-9s]/", "", str_replace('\x',' ',$buffer));
  166. for($cuenta=0; $cuenta<strlen($buffer); $cuenta++){
  167.  if(ctype_xdigit($buffer[$cuenta].$buffer[$cuenta+1])){
  168.   $dump .= hexdec($buffer[$cuenta].$buffer[$cuenta+1]).' ';
  169.   $cuenta++;
  170.  }
  171. }
  172. return $dump;
  173. }
  174.  
  175. function octal_a_decimal($buffer){
  176. $buffer = preg_replace("/[^0-9 s]/", "", $buffer);
  177. $buffer = explode(' ',$buffer);
  178. for($cuenta=0; $cuenta<(count($buffer)-1); $cuenta++){
  179.  $dump .= octdec($buffer[$cuenta]).' ';
  180. }
  181. return $dump;
  182. }
  183.  
  184. function ascii_a_hexadecimal($buffer){
  185. return chunk_split(bin2hex($buffer),2,' ');
  186. }
  187.  
  188. function ascii_a_octal($buffer){
  189. $buffer = bin2hex($buffer);
  190. for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  191.  $dump .= hexdec($buffer[$cuenta].$buffer[$cuenta+1]).' ';
  192. }
  193. $dump3 = explode(' ',$dump);
  194. for($cuenta=0; $cuenta<(count($dump3)-1); $cuenta++){
  195.  $dump2 .= decoct($dump3[$cuenta]).' ';
  196. }
  197. return $dump2;
  198. }
  199.  
  200. function debugger(){
  201. global $dump;
  202. if($dump){
  203.  echo htmlspecialchars($dump,ENT_QUOTES);
  204. }else{
  205.  if($_POST['buffer'] and $_POST['algoritmo']){
  206.  echo "No hay datos que devolver";
  207.  }
  208. }
  209. }
  210.  

Uso:

Código
  1. <?php
  2. // .. ..
  3. $dump = ascii_a_png('Hola Elhacker.net'); // Procesa el String.
  4. debugger(); // Imprime en pantalla el resultado evitando un XSS.
  5. // .. ..
  6. ?>

Debido a una incompatibilidad de SMF con carácteres HTML como & y # las dos funciones
ascii_a_html_sin_s()
ascii_a_html_con_s()
No se ven como debieran. Deben aparecer de la siguiente manera:

function ascii_a_html_sin_s($buffer){
 $buffer = bin2hex($buffer);
 for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  $dump .= '&#'.hexdec($buffer[$cuenta].$buffer[$cuenta+1]);
 }
 return $dump;
}

function ascii_a_html_con_s($buffer){
 $buffer = bin2hex($buffer);
 for($cuenta=0; $cuenta<strlen($buffer); $cuenta+=2){
  $dump .= '&#x'.$buffer[$cuenta].$buffer[$cuenta+1].';';
 }
 return $dump;
}
4223  Programación / PHP / Re: XAMPP 1.6.3 como usarlo? en: 12 Octubre 2008, 20:36 pm
Xampp o Lampp es un pack donde vienen los servidores (apache, mysql, etc), el vbulletin es un sistema de foros en php, no tiene nada que ver.

Si quieres aprender a instalar vbulletin debes buscar vbulletin en google y encontrarás la web proncipal de ese sistema y por ahi debe aparecer como instalarse.
4224  Programación / PHP / Re: saber en que fila seleccione en: 12 Octubre 2008, 20:28 pm
Creo que ya estubo mas que claro en las primeras dos respuestas,

Citar
Pon el id en el link del boton y en tu php de eliminación haz un query delete where id=numero.
Citar
<?
while($row = mysql_fetch_array($que))
{
?>
<input type='button' value='eliminar' onclick="javascript:document.location.href='elimina.php?id=<? echo $row['codigo]']; ?>';">
<?
}
?>

Utilizar javascript no tiene nada de inseguro, la seguridad depende del programador para validar esa entrada, por ejemplo se supone que solo tu tendrás acceso a modificar aquellas filas o a quien tu designes con algún tipo de sesión, etc. Si quieres evitar alguna inyección de tipo SQL podrías establecer que la variable sea solo numérico (int)$id, el javascript que expuso haddes lo único que hace es una pequeña redirección para validar la entrada en metodo GET elimina.php?id=[id] y si alguien decide modificar ese ID podrá hacerlo desde el formulario de todas formas, la idea no es restringir desde el explorador sino desde el servidor si es que quieres evitar problemas de seguridad, todo esta en la buena programación php accediendo a eliminar la fila solamente si el usuario es permitido y/o el id realmente existe para evitar devolver valores nulos.

Piendo que lo que buscas está mas ayá de lo que expones.


Código
  1. <?php
  2. // .. ..
  3.  
  4. if($_GET['borrar']){
  5. $referer = @explode("?",$_SERVER[HTTP_REFERER]);
  6. if($_POST and !eregi($referer[0], "http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF])){
  7.  header("Ataque-detenido: XSRF");
  8.  header("location: http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  9.  exit(1);
  10. }
  11. if(verifica_eliminar()){
  12.  header('Estado: Columna eliminada');
  13.  header('location: http://'.$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  14.  exit(0);
  15. }else{
  16.  header('Estado: Sin acciones');
  17.  header('location: http://'.$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]);
  18. exit(1);
  19. }
  20. }else{
  21. include('formulario.php');
  22. exit(0);
  23. }
  24.  
  25. function verifica_eliminar(){
  26. if($_SESSION['es_admin']){
  27.  $sql = 'DELETE FROM `database` WHERE `tabla`.`id` = \''.(int)$_GET['borrar'].'\';';
  28.  if(mysql_query($sql,$conectar_sql)){
  29.   return true;
  30.  }else{
  31.   return false;
  32.  }
  33. }else{
  34.   return false;
  35. }
  36. }
  37.  
  38. // .. ..
  39. ?>
4225  Programación / PHP / Re: XAMPP 1.6.3 como usarlo? en: 12 Octubre 2008, 20:05 pm
Busca xampp en google, el primer resultado te da la web del autor con el manual y todo:

http://www.apachefriends.org/en/xampp-linux.html

Citar
Pictures of XAMPP for Linux

Installation in 4 Steps

Step 1: Download
Step 2: Installation
Step 3: Start
Step 4: Test

Si no entiendes ingles usa el traductor de google:

http://translate.google.cl/translate?u=http%3A%2F%2Fwww.apachefriends.org%2Fen%2Fxampp-linux.html&sl=en&tl=es&hl=es&ie=UTF-8

Citar
Fotos de XAMPP para Linux

Instalación en 4 pasos

Paso 1: Descargar
Paso 2: Instalación
Paso 3: Inicie
Paso 4: Test
4226  Programación / PHP / Re: Sistema de usuarios con logueos unicos en: 12 Octubre 2008, 20:02 pm
Un par de post mas abajo aparece alguien con la misma duda y con la respuesta incluida:

http://foro.elhacker.net/php/tutorial_crear_area_restringida_con_php_en_nuestra_web-t229893.0.html
4227  Programación / PHP / Re: [Proyecto] Codificador de múltiples algoritmos en: 11 Octubre 2008, 02:55 am
Listo  ;D

Código
  1. <?php
  2. // .. ..
  3. function decodifica_base64_gz($buffer){
  4. $buffer1 = str_replace('"',' ',$buffer);
  5. $buffer1 = str_replace('.',' ',$buffer);
  6. $buffer1 = explode('\x',$buffer);
  7. $buffer1[0] = '';
  8. for($cuenta=0;$cuenta<count($buffer1);$cuenta++){
  9.  if(strlen($buffer1[$cuenta]) == '2'){
  10.   $buffer2 .= ' '.$buffer1[$cuenta];
  11.   $procesando = true;
  12.  }else{
  13.   if($procesando){
  14.    $buffer2 .= ' '.$buffer1[$cuenta][0].$buffer1[$cuenta][1];
  15.   }
  16.  }
  17. }
  18. $buffer2 = explode(' ',$buffer2);
  19. for($cuenta=0;$cuenta<count($buffer2);$cuenta++){
  20.  if(strlen($buffer2[$cuenta]) == '2'){
  21.   $buffer3 .= $buffer2[$cuenta];
  22.  }
  23. }
  24. return gzuncompress(base64_decode(hexa_a_str($buffer3)));
  25. }
  26. // .. ..
  27. ?>

Si alguien intenta enviar datos inválidos entonces la función de base64 o gzuncompress devolverá un estado false por lo tanto devolverá el mensaje "No hay datos que devolver".

También se eliminó todo el buffer de salida con carácteres de escape html con htmlspecialchars y se procesó una sola ves en la función debugger()

Sistema actualizado.
4228  Programación / PHP / Re: [Proyecto] Codificador de múltiples algoritmos en: 8 Octubre 2008, 23:35 pm
Si lo habia pensado pero como deberías insertarlo en la pagina? talves el script pueda tomar desde el primer carácter '\x' hasta el último mas 2 carácteres para abarcar el último decimal y eliminar todo lo que no sea letra, número o '\' y a eso hacerle un explode por cada '\x' y con un for strlen($buffer) decodificar cada carácter y devolverlo en htmlspecialchars.

Lo malo es que como controlo si alguien no ingresa ese tipo de conversión pero tampoco ingresa la función completa sino solamente los carácteres de escape en hexadecimal... bueno ahi lo pienso.

Gracias.
4229  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?¿?
4230  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.
Páginas: 1 ... 408 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 ... 455
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines