XSS, клуб на хакерите
Знаете ли всичко за персоналните компютри?
Ето още един дългоочакван урок! Следващите уроци ще обхващат много по-сложни теми от предишните, така че без малко въведение в темата „уязвимост“ (те ще бъдат под нашето голямо внимание в следващите уроци), няма да работи. И така, какво еуязвимост? Това е някакъв вид несъвършенство, липса на каквото и да е приложение, което позволява при определени условия да се получат повишени привилегии. Това е общото значение на термина. Сега нека разгледаме подробно всичките му компоненти. Уязвимо приложение може да бъде или програма, инсталирана на компютър (включително драйвери и операционна система), или всяко уеб приложение, като например уебсайт или форумна машина (известна още катоCMS -C contentM managementS system, система за управление на съдържание). Определени условия не означават обичайното ежедневно използване на приложението по предназначение, а умишленото използване на уязвимост (бъг). Повишените привилегии могат да бъдат: получаване на достъп до някои данни, получаване на достъп до уязвим компонент на системата, получаване на достъп до цялата система, нарушаване на системата и др. Под „повишен“ се има предвид, че при нормални условия и според намерението на разработчика потребителят не би трябвало да получи тези привилегии и възможности. Надявам се, че го обясних достъпно и същността на понятието уязвимост е ясна. Техниката за използване на уязвимости в общи линии е проста: намерете и приложете уязвимост. Ето какво ще направим сега с примера на XSS уязвимост. ЗЫ схемата, чрез която ще бъде описана тази уязвимост, ще бъде допълнително приложена за описание на всички други грешки.
XSS -C rossS teS криптиране (CSS вечезаетиC аскадниS стиловиS листове). Уязвимост, която възниква поради недостатъчно филтриране на данните, въведени от потребителите и впоследствие показани на страниците на сайта. Позволява ви да поставите произволен html код директно на страниците на сайта (съответно кодът ще бъде изпълнен за всички потребители, които посещават страницата). Нека помислим какво означават тези възможности за нас. Какво може да се направи с html. Е, първо, можете просто да бъдете глупави: покажете надпис с огромен размер (да, всякакви възможности за форматиране на текст в html) или поставете пренасочване към друг сайт (на фалшив, разбира се). Пренасочването, ако има такова, се прави по следния начин:
За да откриете xss, трябва да проверите за наличието му всички потенциално уязвими елементи на сайта. В случая това са полетата за въвеждане на текст, които по-късно ще се показват на страниците на сайта (полетата за печат). Това могат да бъдат полета за изпращане на съобщение, тема на съобщението и др. Всяко такова поле трябва да бъде проверено за уязвимост. За да направим това, ние последователно произвеждаме всичко, описано по-долу, докато не видим подобно съобщение:
И така, нека започнем да търсим - заместваме следния код във всички полета за печат:
Нищо? Добре, нека опитаме това:
Пак нищо!? > ние търсим това, което сме въвели там). намерени? Вижте какво се случи с нашия код. Най-вероятно специалните знаци са били филтрирани. Кодът няма да работи без тях, разбира се... Убиха скрипта! Негодници! xD Филтрирането на тези знаци означава едно нещо:active xss не е тук. Но не се отчайвайте, все още има опция сpassive xss и дори има възможност да заобиколите филтрирането! Но повече за това по-късно (вижте допълненията). Ако все пак сте успели да видите съобщението, значи сте открили уязвимо поле! Ура, другари!
(СЗОтой знае как, все пак погледнете набързо, може би ще разберете нещо ново =) ) Така че отидете на сайта, където се намира вашият снифър. Запознаваме се с интерфейса: има дата и час по някаква причина нашия ip. Зад тях има бутон за актуализиране на журнала. И има такова нещо като снифър снимка. Името му в моето събрание еs.gif Чрез извиквания към тази картина снифърът улавя всички заявки. Отворете същата снимка (yourhost.com/s.gif) и актуализирайте дневника. Вижте новия запис? Разполагаме с часа на заявката, ip-то на лицето, което е осъществило достъп до изображението, празен низ за заявка (QUERY), референта (от кой сайт е осъществен достъп до изображението) и агента (т.е. браузъра) на потребителя. Сега опитайте да добавите нещо към връзката към картината след знака „?“. Например така:
Нека опресним един момент от основната част на урока:
Когато търсите XSS,гарантирано ще срещнете подобно филтриране. Освен това могат да се филтрират не само символи, но и много други, които са не по-малко важни за извършване на атака (въвеждане на работещ код). Между тях:
Просто поставяме всички знаци, от които се нуждаем, в полето за печат и след това ги търсим в изходния код на страницата. За да улесните търсенето, можете да добавите и някоя дума в средата, например. XSS е само за справка. Намерихте го? Вижте какво е останало на място и какво е "осакатено" от филтъра. Веднага ще кажа, че ако тези символи (поне някои от тези, от които се нуждаем, с изключение на ) бъдат заменени с нещо друго или бъдат изтрити, спрете всичките си безполезни опити да инжектирате кода! Ако символите са просто изтрити, можете да опитате да поставитетаг (така се наричат тези скоби и ключовите думи в тях) и филтърът или ще пропусне и няма да го изтрие (защото сега тагът не е празен), или ще го филтрира като забранен таг. Ако сте го пропуснали - всичко е прекрасно, тръгвайтеза да вмъкнем необходимия ни код (снифър код за кражба на бисквитки, помните ли?). И ако сте го изтрили глупаво, вместо това го заменете с нещо подобно:
Поставяме след = първо първия скрипт, натискаме enter, изчакваме страницата да приключи зареждането. И така сортираме, докато не видим желания прозорец за предупреждение (снимката беше по-горе). Ако замяната не даде нищо, ние пушим, заобикаляйки филтрите (вижте добавка 1).
Ще добавя още малко ... IMHO дайте на потребителите (и още повече на администраторите) тези връзки
на открито е твърде бледо ... не мислите ли? Сега да ги скрием!Метод 1: стъпете на tinyurl.com и поставете нашата връзка там. В резултат на това получаваме друг ... кратък и мистериозен 😉 И резултатът от нейната работа е същият :banana:Метод 2: ще бъде криптиран в база 64. Отиваме тук и поставяме нашата връзка в полето. Натиснете "Кодиране" и вземете:
Метод 3: кодирайте отровната част от връзката в URL адреса. Можете да кодирате тук. Получаваме връзка като тази:
И в 3-те случая резултатът от работата и методът на прилагане на връзката е един и същ. Не забравяйте, че все още е необходимо да приложите правилно SI, така че жертвата да следва връзката, докато е на атакувания сайт!
Мисля, че не са необходими много обяснения, ето самият код (той е в моя снифър сборка):
Освен това, ако сте използвали легендата „код за потвърждение“, можете да добавите нещо подобно в края на този скрипт (за да успокоите притеснения потребител):
Защо SI обърна толкова много внимание на тази част? Да, защото в случай на самодостатъчен xss има малко по-малко технически трудности от нихрома и най-важното е ненатрапчиво, но ясно и убедително да обясни на жертвата къде и как да вмъкне кода. Е, нека да отидем на услугите за анонимна поща и да изпратим нашия код! xD
Върнах се и реших да опиша още няколкометоди за вмъкване на xss код! *адски смях* Много сайтове имат възможността да качват снимки, а понякога дори и флаш анимации(!) директно на страниците на сайта (или форум или блог). И не говоря за това, което видяхме във VKontakte, когато снимките се качват на сървъра и след това се обработват там, преди да бъдат добавени към страниците, а когато посочим връзка към изображението и то директно се вмъква в страницата. Жалко е да не се възползвате от тази възможност! Номерът е, че можете да вмъкнете снифър кода в картинката и кода и по този начин ще получим активни xss (които по очевидни причини са по-ценни и по-ефективни от пасивите), защото всеки, който види снимката в сайта, ще бъде атакуван.
Тук всичко е просто. Създайте файл със съдържанието под формата на код за пасив:
И го запазете с разширение.gif Сега го качете на някой хостинг за да получите директен линк към снимката без никакви промени. Сега можете да поставите снимка във форуми, блогове, книги за гости и навсякъде, където има вмъкване на снимки. Между другото, този трик може да се направи не само с вмъкване на снимки, но и с всякакви други файлове, в случаите, когато файлът може да бъде качен на сайта и акосъдържанието му ще бъде показано на страницата на сайта.