/ / Spoof IP mit Perl LWP - Perl, Testen, Networking, IP, Spoofing

Spoof IP mit Perl LWP - Perl, Testen, Netzwerk, IP, Spoofing

Ich muss ein kleines Stück Code schreiben, um den Datenverkehr von verschiedenen Quell-IP-Adressen zu simulieren, und ich frage mich, ob dies durch Spoofing der Adressen mit Perl möglich ist.

Ich habe Net :: RAWIP ausprobiert und das hat funktioniert, aber ich muss etwas komplexeren HTTP-Verkehr senden (nämlich POST-Daten) und konnte dies mit RAWIP nicht tun

Mit LWP habe ich versucht, ua-> local_address zu verwenden, aber ich bekomme diese Antwort:

Can"t connect to 10.x.x.x:8080

LWP::Protocol::http::Socket: Cannot assign requested address at /usr/lib/perl5/site_perl/5.10.0/LWP/Protocol/http.pm line 51.

Dies ist der Code, den ich verwende:

#!/usr/bin/perl -w

use strict ;
use warnings ;
use LWP::UserAgent ;
use URI::URL ;

my $path = "http://142.133.114.130:8080" ;
my $url = new URI::URL $path;
my $ua       = LWP::UserAgent->new();

$ua->local_address("10.121.132.112");
$ua->env_proxy ;
my $effing = "blaj.jpg" ;
my $response = $ua->post( $url,
"Content-Type" => "multipart/form-data",
"Content" => [ userfile => ["$effing" ]],
"Connection" => "keep-alive" ) ;
print $response->decoded_content();

Antworten:

2 für die Antwort № 1

Sie können keine Antwort erhalten, wenn Sie von einem sendenAdresse, die nicht Ihnen gehört. Das bedeutet, dass Sie nur die Anfrage senden können. Sie haben angegeben, dass Sie die Sendung durchführen können. Sie müssen also nur die Anfrage senden. Das ist einfach.

use strict;
use warnings;

use HTTP::Request::Common qw( POST );

my $req = POST("http://www.example.org/",
"Content-Type" => "multipart/form-data",
"Content"      => [ userfile => [ $0 ]],
"Connection"   => "keep-alive",
);

print $req->as_string();

Ausgabe:

POST http://www.example.org/
Connection: keep-alive
Content-Length: 376
Content-Type: multipart/form-data; boundary=xYzZY

--xYzZY
Content-Disposition: form-data; name="userfile"; filename="x.pl"
Content-Type: text/plain

use strict;
use warnings;

use HTTP::Request::Common qw( POST );

my $req = POST("http://www.example.org/",
"Content-Type" => "multipart/form-data",
"Content"      => [ userfile => [ $0 ]],
"Connection"   => "keep-alive",
);

print $req->as_string();

--xYzZY--