PDA

Просмотр полной версии : [Обзор] Уязвимостей \ Багов вконтакте.ру


Shawn1x
24.03.2008, 23:14
[Обзор] Уязвимостей \ Багов вконтакте.ру
Сайт: http://www.vkontakte.ru
Разработчик: Павел Дуров

ВКонтакте.ру - сетевой проект, который поможет Вам узнать больше о людях,
которые Вас окружают,а также найти потерянных друзей и поддерживать с ними связь.
Вы сможете делиться информацией, ограничивая круг лиц, которым она будет доступна.
На данный момент является самым посещаемым ресурсам и имеет более 10 000 пользователей

[Введение]
В этой статье будет рассказано о хитростях, багах, и уязвимостях сервиса вконтакте.ру

[Смотреть закрытые Профили \ Фото \ Видео]

Смотреть информацию закрытого профиля(фотографии, видео, заметки и т.д.) следующим оброзом:
1) Нужно знать ID человека
2) Наведите курсор "Друзья xxx" и строке появится примерно следующиq текст:
http://vkontakte.ru/friend.php?act=add&id=12345678 , где последние цифры как раз и есть ID
Потом нужно вставить этот ID в строки:
Фотографии:
http://vkontakte.ru/photos.php?act=user&id=ID ( В нашем случае 12345678 )
Фотоальбомы:
http://vkontakte.ru/photos.php?id=ID ( В нашем случае 12345678 )
Видеозаписи:
http://vkontakte.ru/video.php?id=ID ( В нашем случае 12345678 )
Заметки:
http://vkontakte.ru/notes.php?id=ID ( В нашем случае 12345678 )
В некоторых местах можно оставлять комментарии

Но этот способ не всегда действует, так как информация может быть защищена настройками приватности
(скрытые фотографии).
Так что рассмотрим еще один способ:
Возьмем возьмем фотографию Дурова с подругой ( http://vkontakte.ru/photos.php?act=show&id=13780_39723&uid=1 ), но как мы видем фотография скрыта,
но мы можем взять ее "preview" ( http://cs01.vkontakte.ru/u13780/5273/m_1c6b8d221d.jpg ). смотрим в свойства рисунка и меняем букву “m” в имени рисунка
на букву “х” без кавычек. теперь мы получаем ссылку и смотрим на фотографию Дурова ( http://cs01.vkontakte.ru/u13780/5273/x_1c6b8d221d.jpg )


[Улучшенный просмотр фотографий]
http://citex.ru/vk/vkalbphoto.js
Данный скрипт создаёт иконку над фотографиями при нажатие на которую открывается сама фотография, а не страница с комментариями!
Для этого нужно дождаться полной загрузки страницы альбома

[Загрузка Музыки \ Видео на компьютер]
1) Рассмотрим вариант с музыкой, ее можно загрузить с помощью программ и скриптов!
Скрипты:
http://img362.imageshack.us/my.php?image=vkmusic2gv4.png
Описание:

Скрипт для GreaseMonkey или браузера Opera
Добавляет около кнопок прослушивания музыки ссылку для скачивания и ссылку для быстрого поиска слов песни.
Для работы нужен Firefox с установленным дополнением GreaseMonkey или Opera.
Если вы используете Opera, то полученный файл надо будет сохранить в тот каталог,
который выбран в “Tools > Preferences > Advanced > Content > JavaScript option > User JavaScript files”


// ==UserScript==
// @name vkontakte music download
// @namespace http://vkontakte.net.ru
// @description Music download for vkontakte.ru
// @include http://vkontakte.ru/*
// ==/UserScript==


function addDownload(img) {
var str="";
if (img.wrappedJSObject) {
str=img.wrappedJSObject.onclick.toString();
} else {
str=img.onclick.toString(); //opera workaround
}
var re=/operate\((\d+)[^0-9]+(\d+)[^0-9]+(\d+),[^0-9a-zA-Z]+([0-9a-zA-Z]+)/;
var arr=re.exec(str);
//operate(209145,1044,362847,'db5a6cba31',194);
//http://cs1044.vkontakte.ru/u362847/audio/db5a6cba31.mp3
var td=img.parentNode;
var addon=document.createElement("a");
var user=arr[3];
if (user<100000) {
user=parseInt(user)+100000;
user=(user.toString()).substr(1);
}
addon.setAttribute("href","http://cs"+arr[2]+".vkontakte.ru/u"+user+"/audio/"+arr[4]+".mp3");
addon.innerHTML="download";
td.appendChild(addon);
}

function addDownloads() {
var imgs=document.getElementsByTagName("img");

for (var i=0;i<imgs.length;i++) {
if (imgs[i].className=="playimg") {
addDownload(imgs[i]);
}
}
}

function addLyric(span) {
var title=span.innerHTML;
if (span.getElementsByTagName("a").length>0) {
title=span.getElementsByTagName("a")[0].innerHTML;
}
var parent=span.parentNode;
var artb=parent.getElementsByTagName("b")[0];
var artist=artb.innerHTML;
if (artb.getElementsByTagName("a").length>0) {
artist=artb.getElementsByTagName("a")[0].innerHTML;
}
var newdiv=document.createElement("div");
var addon=document.createElement("a");
// addon.setAttribute("href","http://lyrc.com.ar/en/tema1en.php?artist="+artist+"&songname="+title);
addon.setAttribute("href","http://www.lyricsplugin.com/wmplayer03/plugin/?artist="+encodeURIComponent(artist)+"&title="+encodeURIComponent(title));
addon.setAttribute("target","_blank");
addon.innerHTML="lyrics";
newdiv.appendChild(addon);
newdiv.className="duration";
parent.parentNode.appendChild(newdiv);
}

function addLyrics() {
var spans= document.getElementsByTagName("span");
re=/title\d+/;
for (var i=0;i<spans.length;i++) {
if (re.test(spans[i].id)) {
addLyric(spans[i]);
}
}
}

addLyrics();
addDownloads();

Сохранить в vkontakte.music.js

Грабер музыки с вконтакта:


<html>
<body>
<center>
<form action="graber.php" name="main" method="post">
<input type="text" name="link" size="80">
<input type="submit" value="Грабить!">
<form>


<?php
set_time_limit(0); //убираем ограничение времени выполнения скрипта
if(@$_POST['link']!=""){

$link = $_POST['link']; //Указываем ссылку

$toparse="";

preg_match("/^(http:\/\/)?([^\/]+)/i",$link,$host); //Отделяем доменное имя

$req = "GET ".$link." HTTP/1.1\r\n"; //Формирование заголовка запроса
$req .="Host: ".$host[2]."\r\n"; //
$req .="Cookie: audio_vol=80;remixchk=5;remixemail=;remixmid=;remi xpass=;#10\r\n"; //Передача кукис
$req .="Connection: Close\r\n\r\n"; //


$socket = fsockopen($host[2],80); //Открываем сокет на 80й порт серва

fwrite($socket,$req); //Отправляем запрос

while(!feof($socket)){ //
$toparse.=fgets($socket,128); //Получаем тело страницы по 128 байт
} //

fclose($socket); //Затрываем сокет

$mask_link =array('return operate(',');'); //Маска

preg_match_all("/(".$mask_link[0].")(.*)(".$mask_link[1].")/i",$toparse,$parsed_links); //Выбираем ссылки



foreach($parsed_links[3] as $link_str){ //Берем каждый елемент масива в переменную $link_str

$pattern=array("(",")","'"); //Что заменяем
$replace=array("","",""); //Чем заменяем

$replaced=str_replace($pattern,$replace,$link_str) ; //Убираем скобки
$link_mas=explode(",",$replaced); //Преобразуем строку где разделитель запятая в масив

echo "<a href=\"http://cs".$link_mas[1].".vkontakte.ru/u".$link_mas[2]."/audio/".$link_mas[3].".mp3\">"; //Начало ссылки

$mask_name=array($link_mas[0],'<\/span>'); //Маска поиска Имени

preg_match_all("/(".$mask_name[0].")(.*)(".$mask_name[1].")/i",$toparse,$parsed_names); // Выбираем имена

$pattern=array("\">","</b>","<span id=\"title$link_mas[0]"); //Что заменяем
$replace=array("","",""); //Чем заменяем

$replaced=str_replace($pattern,$replace,$parsed_na mes[2][0]); //Убираем мусор


echo $replaced."</a><br>"; //Конец ссылки
}
}
?>


</center>
</body>
</html>

Еще один скрипт:
javascript:function operate(konfuze,loves,you,all_,xP){you=you.toStrin g(10);while(you.length<5){you='0'+you;}document.getElementById('audio'+ko nfuze).innerHTML='<div><a href="http://cs'+loves+'.vkontakte.'+'ru/u'+you+'/audio/'+all_+'.mp3">Cкачать '+document.getElementById('performer'+konfuze).inn erHTML+' - '+document.getElementById('title'+konfuze).innerHT ML+'</a></div><br />';}



2) Рассмотрит вариант для скачивания видео, на данный момент самая актуальная программа это VKMusic - которая
позволяет автоматизировать поиск аудиозаписей в контакте и скачивание их на ваш компьютер. Авторизации не требуется(Но для более удобного и быстрого
скачивания рекомендуется).
http://img219.imageshack.us/my.php?image=22474150hs4.jpg

Скачать \ Download (http://rapidshare.com/files/76957958/VKMPRO07.rar)
Так же имеются скрипты для скачивания видео:
Для FireFox :
http://www.mgupp.ru/2729/files?get=unplugvkontakte.xpi
http://www.mgupp.ru/2729/files?get=vk.xpi

Для Opera:
http://www.mgupp.ru/2729/files?get=vk2u.js

[Вступить во все группы данного пользователя]
1)Сам скрипт:

<form id="param">
<table width="500" height="101" border="0">
<tr>
<td width="112">with</td>
<td width="378"><input name="minZn" type="text" value="1"></td>
</tr>
<tr>
<td>to</td>
<td><input name="maxZn" type="text" value="999999"></td>
</tr>
<tr>
<td>adress</td>
<td><input name="adress" type="text" value="http://vkontakte.ru/groups.php?act=enter&gid=" size="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="button" type="button" onClick="GoHack()" value="Vkontakte must die!!(Go hack)">
<input name="button2" type="button" onClick="StopHack()" value="STOP"></td>
</tr>
</table>
</form>
<script language="javascript">
function StopHack()
{
hackwindow.close();
}

function HackWindowNewlocation(start, end, current)
{
var time=4000;
var domen=document.getElementById("param").adress.value;
var url="";
start2=start;
current2=current;
end2=end;
if(current2==start2){hackwindow=window.open("http://google.ru","hack");}
if ((current2-1)==end2) {return ;}
current2++;
url=domen+current.toString();
window.hackwindow.location=url.toString();
setTimeout("HackWindowNewlocation(start2, end2, current2)",time);
}

function GoHack()
{
var start=document.getElementById("param").minZn.value;
var end=document.getElementById("param").maxZn.value;
var current=start;
HackWindowNewlocation(start,end,current);
}
</script>

2) Его реализаци. можно посмотреть здесь: http://blog.folone.org.ua/MOCK=130

Shawn1x
24.03.2008, 23:16
[Подмена граффити на рисунок на стенах пользователей]
1)Скрипт
Его реализация:
http://www.x3k.ru/vkontakte/
Исходник:

<?
function send_png($url,$filename,$cookie) {
$url_info=parse_url($url);
$port = isset($url_info['port']) ? $url_info['port'] : 80;
$fp=fsockopen($url_info['host'], $port, $errno, $errstr, 30);
if($fp) {
$head = "POST ".@$url_info['path']."?".@$url_info['query']." HTTP/1.1\r\n";
if (!empty($url_info['port'])) {
$head .= "Host: ".@$url_info['host'].":".$url_info['port']."\r\n";
} else {
$head .= "Host: ".@$url_info['host']."\r\n";
}
$head .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive\r\n";
$head .= "Cookie: $cookie\r\n";
$head .= "Referer: http://vkontakte.ru/swf/Graffiti.swf?12\r\n";
$head .= "Content-type: multipart/form-data; boundary=--OLEG-ANDREEV-PAVEL-DUROV-GRAFFITI-POST\r\n";




$head2 ="----OLEG-ANDREEV-PAVEL-DUROV-GRAFFITI-POST
Content-Disposition: form-data; name=\"Signature\"\r\n\r\n";
$head2 .=md5(substr(base64_encode(file_get_contents($file name)), 0, 1024));
$head2 .="\r\n";
$head2 .= "----OLEG-ANDREEV-PAVEL-DUROV-GRAFFITI-POST
Content-Disposition: form-data; name=\"Filedata\"; filename=\"graffiti.png\"
Content-Type: image/png\r\n\r\n";
$head2 .= file_get_contents($filename);
$head2 .= "----OLEG-ANDREEV-PAVEL-DUROV-GRAFFITI-POST
Content-Disposition: form-data; name=\"Upload\"

Submit Query
----OLEG-ANDREEV-PAVEL-DUROV-GRAFFITI-POST--";
$head .= "Content-length: ".strlen($head2)."\r\n";
$head .= "\r\n";
$head .= $head2;

fputs($fp, $head);
while(!feof($fp) or ($eoheader==true)) {
if($header=fgets($fp, 1024)) {
if ($header == "\r\n") {
$eoheader = true;
break;
} else {
$header = trim($header);
}
$format=0;
if($format == 1) {
$key = array_shift(explode(':',$header));
if($key == $header) {
$headers[] = $header;
} else {
$headers[$key]=substr($header,strlen($key)+2);
}
unset($key);
} else {
$headers[] = $header;
}
}
}
return $headers;

} else {
return false;
}
}
if(isset($_POST['to_id'],$_POST['group_id'],$_POST['cook'],$_FILES["Filedata"])){
if($_POST['to_id']==""){
$_POST['to_id']='0';
}
if($_POST['group_id']==""){
$_POST['group_id']='0';
}
copy($_FILES['Filedata']['tmp_name'], "tmpfile_");
send_png("http://vkontakte.ru/graffiti.php?to_id={$_POST['to_id']}&group_id={$_POST['group_id']}","tmpfile_",$_POST['cook']);
header("Location: http://vkontakte.ru/graffiti.php?act=last");

}else{
?>
<html>
<head>


<title>Подмена граффити на картинку vkontakte.ru</title>

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<style>
body
{
margin: 0;
padding: 0;
}

#form
{
background: url( 'http://vkontakte.ru/images/xhead2.gif' ) no-repeat left top;
text-align: left;
width: 400px;
padding: 50px;
padding-bottom: 10px;
font-family: Verdana;
font-size: 12px;
border: 1px solid #ebebeb;
}

#counter
{
font-family: Arial;
font-size: 12px;
}

#bandwidth
{
font-family: Arial;
font-size: 11px;
/*display: none;*/
}

</style>
</head>



<center>
<div id="form">
<br />


<form action="<?=basename($_SERVER['SCRIPT_FILENAME'])?>" name="form" enctype="multipart/form-data" method=POST >


Укажи ID стены и .png/.jpg картинку, которую ты хочешь закачать:<br /><br />


ID человека:
<input type="text" name="to_id" size="10" /> <b><u>или</u></b>

ID группы:
<input type="text" name="group_id" size="10" /><br /><br />


<b style="color: red">Теперь картинки автоматом растягиваются до размера 272х136 пикселей: <a href="http://mypictr.com/?size=272x136">сервис уменьшения картинок</a></b><br /><br />



Файл<small>*</small>:
<input type="file" name="Filedata"><br />
<br />


<small>* - максимум <b>300Кб</b></small>
<br />
<br />


<b style="color: red">ВНИМАНИЕ!!! Следующий ШАГ обязателен! </b><br /><br />




Заходим на страницу Контакта, в строке браузера вводим: <b><i>javascript:document.write(document.cookie);</i></b><br>

<br>Скопируйте сюда, что получили<small>**</small>:<br>
Эта информация нигде не записывается + в куках прячется IP зафированный<br>

<textarea cols=47 rows=10 name="cook"></textarea><br><br>

<small>** - это конфиденциальная информация. Вы не должны показывать её третьим лицам.</small>
<br />
<br />
<input type="submit" name="Upload" value=" Далее ">
</form>
<br />

<p style="text-align: center;">



<b>Powered by:</b><Br>
<a href="http://vkontakte.ru/id15070">Олег Максимов</a>
</p>
</div>
<?php
}
echo "<pre>";
//print_r(send_png("http://vkontakte.ru/graffiti.php?to_id=[ИД_Человека или 0 если отправляем на стену группы]&group_id=[ИД_Группы или 0 если отправляем на стену человека]","имя картинки.png","ваши куки вытянутые из броузера"));
echo "</pre>";
?>

2) Программы
Vkonpic
http://3po.ru/img/th.jpg
Программа для загрузки картинок на стены друзей на сайте «ВКонтакте.ру».
Распространяется бесплатно и с открытыми исходными кодами.
http://rapidshare.com/files/102042311/VkontaktePicture_1__1_.2.rar.html

[Прочие уязвимости]

Чтобы выложить на стене чужую фотку:

http://vkontakte.ru/wall.php? ... &message=[[photo11111_22222]]

где 11111 ID юзера
22222 - ID его фотографии


[Copyritez]
Shawnix

PS Завтра можеь выложу активную XSS

Lancellot
24.03.2008, 23:35
+1 не плохо было бы создать отдельную ветку форума vkontakte.ru
или antichat.vkontakte.ru

desTiny
24.03.2008, 23:46
сорри, но
а) где здесь уязвимости?
б) где здесь баги?
в) а не является ли сие повторением Isis'овских Tips and Tricks?

desTiny
24.03.2008, 23:54
что-то непонял,это типа скопировал все баги,вставил в тему и красивенько оформил?)
просто все что тут есть,давно было сказано на форуме

что ты понимаеш под копирайтом?
Новое оформление, видимо...

CaNNabi$
24.03.2008, 23:56
Произошла ошибка безопасности при попытке добавить пользователя в друзья.
=(
хотел сделать вот это
Наведите курсор "Друзья xxx" и строке появится примерно следующиq текст:
http://vkontakte.ru/friend.php?act=add&id=12345678

iddqd
25.03.2008, 00:12
Мля, вчера еще грозился обзор написать... Я думал, реально уязвимости будут...
Лажа

BlackCats
27.03.2008, 00:19
бредятина, с фотками - как из превьюхи в норм посмотреть - непашет, точнее пашет только у дурова.

Shawn1x
12.04.2008, 17:25
Там Xss активка в группах ;)

Foxtrot1
12.04.2008, 23:26
эти уязвимости - лажа нет ниче нового ...

КИНГ
14.04.2008, 15:31
Shawnix+++

что-то я очень сомневаюсь

Petr
20.04.2008, 02:11
Для скачки видео и мп3 с сайта вконтакте и многих других
http://videosaver.ru/

Zhan
01.05.2008, 13:54
С фото все работает, можно альбомы просматривать, проверено. id Можно узнать при попытке добавить человека в друзья, там будет что-то вроде http://vkontakte.ru/friend.php?act=add&id=24377&h=d248ef42, где 24377 его id.

ToniKapuchon
01.05.2008, 14:05
а исходники для прожки, которая на стене картинку рисует, та которая не на php - есть??!!

.acme
01.05.2008, 15:13
http://vkontakte.ru/swf/Graffiti.swf
Вскроешь любым SWF Decompiler'ом.

cR4FTeR
20.05.2008, 03:49
...половина скриптов уже не работает - пофиксил паша дуроФ

X-Venom
20.05.2008, 15:05
Недавно слышал что вконтакте распространяется вирус под видом фото

Solide Snake
22.05.2008, 12:45
Чтобы пригласить всех своих друзей в группу

1. Скопируйте следующий текст:

javascript:function addall(){var butt_all='<b onclick=\'';var chtulhu=document.getElementsByTagName("input");for(var azatoth=0;azatoth<chtulhu.length;azatoth++){ if (chtulhu[azatoth].type=="checkbox"){ butt_all+='addToInvite('+chtulhu[azatoth].name+');'; }}butt_all+='\'>ДОБАВИТЬ ВСЕХ</b> '; j=0; var div_s=document.getElementsByTagName("div");for(var i=0;i<div_s.length;i++){ if (div_s[i].className=="pad"){ j++; if(j==2){ div_s[i].innerHTML=butt_all+div_s[i].innerHTML; }}} } addall();

2. Нажмите на кнопку "пригласить в группу".
3. В адресной строке (где пишется адрес сайта) вместо того, что там было, вставьте целиком скопированный текст.
4. Нажмите "Еnter".
5. Нажмите на надпись "ДОБАВИТЬ ВСЕХ" (перед словами "Пригласите друзей").
6. Нажмите внизу "выслать приглашения".

И все Ваши друзья будут приглашены.

gyunter
22.05.2008, 20:58
А как удалить всех друзей сразу? (из вкладки Друзья) А то по одному бывает очень долго...

MaTpOc
24.05.2008, 22:13
Для скачки видео и мп3 с сайта вконтакте и многих других
http://videosaver.ru/

жалко что када вводишь сылку на видео пользователя, который поставил что видео могу смотреть только его друзья, то видео не скачивается((((((

k0lbasa
25.05.2008, 11:32
Недавно слышал что вконтакте распространяется вирус под видом фото
http://www.rian.ru/society/20080516/107610576.html

Илюшка
31.07.2008, 17:05
У некоторых хакеров вконтакте.ру видели отрицательный рейтинг -5 или -30.
Данную поебень можно сделать так:

Нужно получить от админов и модеров вконтакте.ру надпись вверху страницы
"Информация на данной странице может не соответствовать действительности.". Но при этом страница должна быть заполнена на 100%
Потом начинаем удалять информацию со страницы и у нас становиться рейтинг -5% (при условии что он у нас раньше был 100%), и если удалить фотографию/аватар, то рейтинг станет -30% (при условии что он у нас раньше был 100%).

Чтобы получить адпись вверху страницы
"Информация на данной странице может не соответствовать действительности." Нужно написть в профиле что вы Тимати и отписать в какой-нибудь группе где есть админы или написать им что они дурочки.

(c)Шавникс

zooomer
01.08.2008, 11:08
Такое ощущение будто обычный (с) собранный из нескольких статей...