Skip to content

Commit 867b5a6

Browse files
committed
v1.1 - better sanitizing
1 parent 9142df2 commit 867b5a6

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

index.php

+16-15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
<?php
2+
/*
3+
* credits to:
4+
* c00kiemon5ter for various suggestions
5+
* HdkiLLeR(vpk) for security tips
6+
*/
7+
?>
18
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="el" xml:lang="el">
29
<head>
310
<META AUTHOR="Periklis Ntanasis a.k.a. Master_ex">
@@ -28,36 +35,30 @@
2835
<?php
2936
if(isset($_GET['submit']))
3037
{
38+
// use of escapeshellcmd - must be enabled
39+
// http://php.net/manual/en/function.escapeshellcmd.php
40+
// escapes #&;`|*?~<>^()[]{}$\, \x0A and \xFF. ' and "
41+
// are escaped only if they are not paired.
3142
$servise = trim($_GET['servise']);
3243
$address = trim($_GET['address']);
3344
if(
34-
(strpos($address,';')>0)
35-
|| (strpos($address,'|')>0)
36-
|| (strpos($address,'\\')>0)
37-
|| (strpos($address,'/')>0)
38-
|| (strpos($address,'>')>0)
39-
|| (strpos($address,'<')>0)
40-
|| (strpos($address,'|')===0)
41-
|| (strpos($address,';')===0)
42-
|| (strpos($address,'\\')===0)
43-
|| (strpos($address,'/')===0)
44-
|| (strpos($address,'>')===0)
45-
|| (strpos($address,'<')===0) )
45+
(strpos($address,'/')>0)
46+
|| (strpos($address,'/')===0) )
4647
{
4748
echo "Don't be naughty!";
4849
exit();
4950
}
5051
if($servise=="ping")
5152
{
52-
exec("ping ".$address." -c 4",$results);
53+
exec("ping '".escapeshellcmd($address)."' -c 4",$results);
5354
}
5455
if($servise=="traceroute")
5556
{
56-
exec("traceroute ".$address,$results);
57+
exec("traceroute '".escapeshellcmd($address)."'",$results);
5758
}
5859
if($servise=="nslookup")
5960
{
60-
exec("nslookup ".$address,$results);
61+
exec("nslookup '".escapeshellcmd($address)."'",$results);
6162
}
6263
foreach($results as $result)
6364
{

0 commit comments

Comments
 (0)