WordPress Plugin check
Publicado por Perfil removido (última atualização em 14/10/2013)
[ Hits: 6.953 ]
Esse script gera a lista completa de plugins que existem no WordPress usando o repositório SVN do CMS, e também verifica quais plugins estão instalados em um site.
#!/usr/bin/perl
# By MMxM
use WWW::Mechanize;
use Getopt::Std;
use strict;
use threads;
use threads::shared;
use warnings;
our(%opts,@aa);
my($ini,$fin,@threads,$i,$arq,@a);
getopts('lf:p:t:s:o:', \%opts);
if($opts{'l'} && $opts{'f'}){
print "\n\n[*] Making plugin list\n[+] Using wordpress svn repository\n\n";
&list;
exit(0);
}
if(!$opts{'s'} || !$opts{'o'} || !$opts{'t'} || !$opts{'p'}){
&help;
}
open($arq,'<'.$opts{'p'}) || die($!);
@a = <$arq>;
close($arq);
@aa = grep { !/^$/ } @a;
my $stop :shared = 0;
$ini = 0;
$fin = $opts{'t'} - 1;
open(our $output,'>>'.$opts{'o'}) || die("failed to save plugins in file => ".$opts{'o'}."\n");
print "\n\n[*] Starting plugin check\n[*] Number of plugins to check => ".scalar(@aa)."\n\t[.K33p C4lm Br0.]\n\n";
while(1){
@threads = ();
for($i=$ini;$i<=$fin;$i++){
push(@threads,$i);
}
foreach(@threads){
$_ = threads->create(\&check);
}
foreach(@threads){
$_->join();
}
print("\n\n [+] 100% complete\n[*] Plugins found are here => ".$opts{'o'}."\n") if $stop;
close($output) if $stop;
exit(0) if $stop;
$ini = $fin + 1;
$fin = $fin + $opts{'t'};
}
sub help {
print '
[*] WP Plugin Checker By MMxM
[+] Options:
-l => Generate plugin list
-f => Output file to save plugin list
-p => plugin list to test
-t => threads number
-s => Site
-o => Output file to save found plugins
[+] Examples of use:
./wp-check.pl -l -f /tmp/plugins.txt
./wp-check.pl -p /tmp/plugins.txt -s localhost/wp/ -o plugins-founds.txt -t 50
';
exit(1);
}
sub check {
my $id = threads->tid();
$id--;
if(defined($aa[$id])){
chomp($aa[$id]);
my $mech = WWW::Mechanize->new( autocheck => 0 );
my $site;
if($opts{'s'} !~ /^(http|https):\/\//){
$site = 'http://'.$opts{'s'};
} else {
$site = $opts{'s'};
}
if($site !~ /\/$/){
$site = $site.'/';
}
$mech->get($site.$aa[$id]);
my $n = $id+1;
print "\rNumber of plugins checked => ".$n;
if($mech->status() =~ /40[0-9]/){
return;
} else {
print $output $site.$aa[$id]."\n";
}
} else {
$stop = 1;
return;
}
}
sub list {
my $mech = WWW::Mechanize->new();
$mech->get('http://plugins.svn.wordpress.org/');
my @plugins;
@plugins = $mech->links;
my $del = scalar(@plugins);
delete $plugins[$del-1];
open(my $out,'>>'.$opts{'f'}) || die($!);
print $out $_->text."\n" foreach(@plugins);
close($out);
$del--;
print '[+] '.$del.' Saved plugins in '.$opts{'f'}."\n";
}
Pesquisar palavras no Diário Oficial da União
VimeoTheSapo -Baixe videos do Vimeo e do sapo
Synner Novo Sys(TCP) Flooder em Perl
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Atualizações de Segurança Automáticas no Debian
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Alguém tem que acabar com ANATEL!!! (1)
Reflexão sobre a sobrevivência do Gentoo Linux (0)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (4)









