CGI-IDS
view release on metacpan or search on metacpan
lib/CGI/IDS.pm view on Meta::CPAN
# strip out concatenations
my $converted = preg_replace(\@pattern, '', $compare);
# strip object traversal
$converted = preg_replace(qr/\w(\.\w\()/, '$1', $converted);
# normalize obfuscated method calls
$converted = preg_replace(qr/\)\s*\+/, ')', $converted);
# convert JS special numbers
$converted = preg_replace(qr/(?:\(*[.\d]e[+-]*[^a-z\W]+\)*)|(?:NaN|Infinity)\W/ims, 1, $converted);
if ($converted && ($compare ne $converted)) {
$value .= "\n" . $converted;
}
return $value;
}
#****if* IDS/_convert_from_proprietary_encodings
# NAME
7 => 'setTimeout//
(name//
,0)//',
8 => 'a=/ev/
.source
a+=/al/
.source,a = a[a]
a(name)',
9 => 'a=eval,b=(name);a(b)',
10 => 'a=eval,b= [ referrer ] ;a(b)',
11 => "URL = ! isNaN(1) ? 'javascriptz:zalertz(1)z' [/replace/ [ 'source' ] ]
(/z/g, [] ) : 0",
12 => "if(0){} else eval(new Array + ('eva') + new Array + ('l(n') + new Array + ('ame) + new Array') + new Array)
'foo bar foo bar foo'",
13 => "switch('foo bar foo bar foo bar') {case eval(new Array + ('eva') + new Array + ('l(n') + new Array + ('ame) + new Array') + new Array):}",
14 => "xxx='javascr',xxx+=('ipt:eva'),xxx+=('l(n'),xxx+=('ame),y')
Cen:tri:fug:eBy:pas:sTe:xt:do location=(xxx)
while(0)
",
15 => '-parent(1)',
16 => "//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf//asdf\@asdf.asdf
( run in 0.236 second using v1.01-cache-2.11-cpan-4d50c553e7e )