这个注入perl脚本做了什么?

时间:2015-02-26 10:43:38

标签: perl

这个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__
../

1 个答案:

答案 0 :(得分:3)

看起来它从../遍历<DATA>级,然后使用stat并遍历计算文件大小。返回作为近似网页格式。然后删除自己。

所以可能更多的是“这种利用工作”的测试,而不是做任何直接有害的事情。