shell bypass 403
package Razor2::Preproc::deQP;
#use MIME::QuotedPrint;
sub new {
return bless {}, shift;
}
sub isit {
my ( $self, $text ) = @_;
my ( $hdr, $body ) = split /\n\r*\n/, $$text, 2;
return $hdr =~ /^Content-Transfer-Encoding: quoted-printable/ism;
}
sub doit {
my ( $self, $text ) = @_;
my ( $hdr, $body ) = split /\n\r*\n/, $$text, 2;
# comment this out to be compatible with libpreproc.cc:qp_decode()
#$body =~ s/[ \t]+?(\r?\n)/$1/g; # rule #3 (trailing space must be deleted)
$body =~ s/=\r?\n//g; # rule #5 (soft line breaks)
$body =~ s/=([\da-fA-F]{2})/pack("C", hex($1))/ge;
$$text = "$hdr\n\n$body";
return $text;
}
sub extract_qp {
my ( $self, $text ) = @_;
if ( $$text =~ /Content-Transfer-Encoding: quoted-printable(.*)$/sim ) {
my $rhs = $1;
$rhs =~ /\r?\n\r?\n(.*)$/s;
return $1;
}
return undef;
}
1;