↑
В каждом плагине WP должен идти файлик readme.txt в котором есть обязательные атрибуты, к примеру:
_ttp://garden.bnp.co.il/wp-content/plugins/contact-form-7/readme.txt тут в качестве атрибута или контрольного слова я в своем примере использовал Contributors
Под него и пишем скриптик, переписал свою старую наработку на перл под данный случай
Вот собственно и сам код:
Код:
#!/usr/bin/perl
use LWP::UserAgent;
#use HTTP::Request::Common qw(GET);
use LWP::Simple;
$ua = LWP::UserAgent->new();
$ua->agent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Ubuntu/10.10 Chromium/12.0.703.0 Chrome/12.0.703.0 Safari/534.24");
#$ua->timeout(30);
my $url = $ARGV[0];
my $plugin = $ARGV[1];
&help unless @ARGV==2;
open(ifile, ";
close("ifile");
&fun_cheak;
sub trim {
my($string)=@_;
for ($string) {
s/^\s+//;
s/\s+$//;
}
return $string;
}
sub help{
print "Usage:\n";
print "cms.pl || cms.pl list.txt contact-form-7\n";
print "";
exit;
}
sub fun_cheak{
print "..::START::..\n";
print "--------------\n";
foreach my $urls(@dirs){
my $query=trim($urls)."/wp-content/plugins/$plugin/readme.txt";
my $resp = $ua->get($query);
#print "$query\n";
#parsing
if($resp->content =~ /Contributors/){ #Контрольное слово
print "[$plugin]::$urls\n";
open(TXTS,"+>>good.txt");
print TXTS $urls;
close(TXTS);
}
}
print "\n--------------\n";
print "..::FINISH::..";
}
Спасибо большое за скрипт) Уже реализовал немножечко по другому
↑
Собсно, вопросец такой:
Есть пак доменов, нужно это дело отсканить на наличие нужного плагина
Как пример:
Плагин WP. Как вообще можно понять что он установлен на сайте? По косвенным признакам?
Есть там WPScan, но он не работает со списком доменов.
Есть ли такой софт в природе(паблике), или нужно писать?
Можно с помощью любого скриптового языка сделать из файла выборку доменов нужных и по ним сгенерить цикл, где каждый домен будет wpscan проверятся.
Примерно так
Код:
foreach($domains as $domain)
{
system("wpscan -u $domain >> result.txt");
}