这个perl脚本在Wordpress网站上被发现(推测注入)。有人可以解释它正在做什么的基本概述吗?
更新 这些问题被标记为“太宽泛”,所以我应该问一下完全的脚本是什么,而不是要求“基本概述”?
#!/usr/bin/perl -w
use strict;
use warnings;
chomp(my @from=<DATA>);
require POSIX;
my %seen_dev_inode=();
# Fix path separators
(my $path_sep=POSIX::getcwd())=~s#^(?:\w+:)?(.).*#$1#;
sub du_r {
my ($f) = @_;
my @s=lstat($f);
unless(@s) {
warn "lstat() failed for $f: $!";
}
if($s[1] and $seen_dev_inode{$s[0]}{$s[1]}) {
return 0; # Already seen.
}
$seen_dev_inode{$s[0]}{$s[1]}=1;
my $size = $s[12] ? 512*$s[12] : $s[7];
$size||=0;
if(not(-l $f) and -d $f) {
my $owd = POSIX::getcwd();
my @dents;
if(opendir(DIR, "$f")) {
@dents = grep {!m/^(\.\.?)$/} readdir DIR;
closedir DIR;
}
$size+=du_r(join($path_sep, $f, $_)) for @dents;
}
return $size;
}
if($^X=~/[.]dll$/) {
print "HTTP/1.1 200 OK\r\n";
}
print "Content-Type: text/plain\r\n\r\n";
@from = map {s#/#$path_sep#g; $_} @from;
#
printf("%.0fM\n", du_r($_)/(1024*1024)) for @from;
close(DATA) and unlink($0);
__DATA__
../
答案 0 :(得分:3)
看起来它从../
遍历<DATA>
级,然后使用stat
并遍历计算文件大小。返回作为近似网页格式。然后删除自己。
所以可能更多的是“这种利用工作”的测试,而不是做任何直接有害的事情。