App-DubiousHTTP
view release on metacpan or search on metacpan
lib/App/DubiousHTTP/Tests.pm view on Meta::CPAN
innocent JavaScript payload</a></p>
<a name=img>
<h2>Bulk test with innocent Image</h2>
</a>
<p>
This bulk test will use "img" tags to download an innocent image to check which
uncommon responses can be used to load images.
</p>
<p id=test_js class=runtest><a href="/autoimg/all/ok.png">Run Test with
innocent image payload</a></p>
<a name=iframe>
<h2>Bulk test with innocent Iframe</h2>
</a>
<p>
This bulk test will use "iframe" tags to download an innocent HTML to check which
uncommon responses can be used to load iframes. <b>Warning!</b>: IE and Edge seem
to have serious problems with some test cases here and will render the page
lib/App/DubiousHTTP/Tests.pm view on Meta::CPAN
return "HTTP/1.0 200 ok\r\n".
"Content-type: text/html\r\n".
"Content-length: ".length($html)."\r\n".
"ETag: ".App::DubiousHTTP->VERSION."\r\n".
"\r\n".
$html;
}
sub auto_img {
my ($self,$cat) = @_;
_auto_imgjshtml($cat, 'Browser behavior test with img tag', 'ok.png', sub {
my ($url,$id) = @_;
return "<img id='$id' src='$url' onload='set_success(\"$id\",\"img\");' onerror='set_fail(\"$id\",\"img\");' />";
});
}
sub auto_js {
my ($self,$cat) = @_;
_auto_imgjshtml($cat, 'Browser behavior test with script tag', 'set_success.js', sub {
my ($url,$id) = @_;
#return "<script id='$id' src='$url' onload='set_load(\"$id\",\"js\");' onerror='set_fail(\"$id\",\"js\");' onreadystatechange='set_load(\"$id\",\"js\");'></script>";
lib/App/DubiousHTTP/Tests/Common.pm view on Meta::CPAN
"Content-disposition: attachment; filename=\"download.zip\"\r\n",
decode_base64('UEsDBBQAAAAIAE1900g2ai/1SAAAAEwAAAAJABwAZWljYXIuY29tVVQJAANCoWZXQqFmV3V4CwABBOkDAAAE6QMAAA3JsRGAMAgF0N4pvpVdprCxzQaoaHKCeIEm25vy3VvtXQI7g65G9UQYxOwBBaJUh7I73ZywBQYP0084WDoKNZWxCZlJpM/TD1BLAQIeAxQAAAAIAE1900g2ai/1SAAAAEwAAAAJABgAAAAAAA...
],
# zipped eicar.com
'eicar.zip' => [
"Content-type: application/octet-stream\r\n".
"Content-disposition: attachment; filename=\"download.zip\"\r\n",
decode_base64('UEsDBBQAAgAIABFKjkk8z1FoRgAAAEQAAAAJAAAAZWljYXIuY29tizD1VwxQdXAMiDaJCYiKMDXRCIjTNHd21jSvVXH1dHYM0g0OcfRzcQxy0XX0C/EM8wwKDdYNcQ0O0XXz9HFVVPHQ9tACAFBLAQIUAxQAAgAIABFKjkk8z1FoRgAAAEQAAAAJAAAAAAAAAAAAAAC2gQAAAABlaWNhci5jb21QSwUGAAAAAAEAAQ...
'EICAR test virus as zip file',
],
'warn.png' => [ "Content-type: image/png\r\n", decode_base64( <<'IMAGE' ) ],
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAIAAABLixI0AAAAI0lEQVQ4y2N8fkObgUqAiYF6YNSs
UbNGzRo1a9SsUbOGi1kA82oCHFP7+koAAAAASUVORK5CYII=
IMAGE
'ok.png' => [ "Content-type: image/png\r\n", decode_base64( <<'IMAGE' ) ],
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAIAAABLixI0AAAAIklEQVQ4y2Nk+MZALcDEwDBq1qhZ
o2aNmjVq1qhZo2ahAQDhPQEogMYUlwAAAABJRU5ErkJggg==
IMAGE
'bad.png' => [ "Content-type: image/png\r\n", decode_base64( <<'IMAGE' ) ],
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAIAAABLixI0AAAAI0lEQVQ4y2N8zKfDQCXAxEA9MGrW
qFmjZo2aNWrWqFnDxSwAAzgBT9lsF30AAAAASUVORK5CYII=
IMAGE
'chunked.gif' => [ "Content-type: image/gif\r\n", decode_base64( <<'IMAGE' ) ],
R0lGODlhFAAUAKUrAAAAAAQEBAUFBQsLCxMTExYWFhcXFxwcHB0dHSAgICEhISwsLDExMTMzMzY2
Njo6OkFBQUJCQkZGRkhISGhoaGlpaZiYmJmZmZqamp6enqCgoKKiosfHx9bW1tfX19/f3+Dg4OTk
5Obm5ujo6Onp6erq6vX19fb29vn5+fr6+vv7+///////////////////////////////////////
/////////////////////////////////////////////yH5BAEKAD8ALAAAAAAUABQAAAZgwJVw
SCwaj8ikcslEqjQTg2CwoHCUIgdgy90mUw3AwfJJmTqYRxIDSJCawwhgAx8SAKO6MABQ6Vd3eXoQ
c38XAAoleigMAAgXICknHmlKIWFdXEspGRIFAVQVV3+kpUpBADs=
lib/App/DubiousHTTP/Tests/Common.pm view on Meta::CPAN
and my $brotli = do { local $/; <$fh> }) {
# remove optional header
$brotli =~s{\A((?:\w+(?:-\w*)*:.*\r?\n){1,10})\r?\n}{};
bro_compress($data,$brotli);
}
} else {
$hdr =
$page =~m{\.js$} ? "Content-type: application/javascript\r\n" :
$page =~m{\.css$} ? "Content-type: text/css\r\n" :
$page =~m{\.html?$} ? "Content-type: text/html\r\n" :
$page =~m{\.(gif|png|jpeg)$} ? "Content-type: image/$1\r\n" :
"Content-type: application/octet-stream\r\n";
}
$cache{$page} = [ $hdr,$data,$bad ];
return ($hdr,$data,$bad);
}
if ( my $builtin = $builtin{$page} ) {
$builtin = $builtin->($spec,"/$page") if ref($builtin) eq 'CODE';
return @$builtin;
}
return;
lib/App/DubiousHTTP/Tests/Common.pm view on Meta::CPAN
for my $test (@tests) {
if (!blessed($test)) {
$body .= "<tr><td colspan=6><h2>$test->[0]</h2></td></tr>";
next;
}
my $valid = $test->VALID;
my $base = $valid>0 ? 'ok' : $valid<0 ? 'warn' : 'bad';
my $bg = $valid>0 ? '#e30e2c' : $valid<0 ? '#d0cfd1' : '#00e800';
$body .= "<tr>";
$body .= "<td>". html_escape($test->DESCRIPTION) ."</td>";
$body .= "<td><div style='height: 2em; border-style: solid; border-width: 1px; width: 6em; text-align: center; background: $bg url(\"".$test->url("$base.png"). "\");'><span style='vertical-align: middle;'>IMAGE</span></div></td>";
$body .= "<td><div id='".$test->LONG_ID."' style='height: 2em; border-style: solid; border-width: 1px; width: 6em; text-align: center; background: $bg'><span style='vertical-align: middle;'>SCRIPT</span></div></td>";
$body .= "<td><iframe seamless=seamless scrolling=no style='border-style: solid; border-width: 1px; width: 6em; height: 2em; overflow: hidden;' src=". $test->url("$base.html"). "></iframe></td>";
$body .= "<td> <a class=button download='eicar.com' href=". $test->url('eicar.txt').">load EICAR</a> </td>";
$body .= "<td> <a class=button download='eicar.zip' href=". $test->url('eicar.zip').">load eicar.zip</a> </td>";
$body .= "</tr>";
$body .= "<script src=".$test->url("$base.js")."></script>";
$body .= "<tr><td colspan=5><hr></td></tr>";
}
$body .= "</table>";
$body .= "</body></html>";
( run in 0.414 second using v1.01-cache-2.11-cpan-df04353d9ac )