================================ Cross Site Scripting (XSS) атаки ================================ - Въведение * динамични уеб сайтове * данни получавани от потребители * данни показвани на сайтовете - Какво е Cross Site Scripting (XSS) - Защо XSS, а не CSS? * Най-просто казано - за да не се бърка с Cascading Style Sheets - Минимални изисквания за да се стартира XSS атака * Web приложение, което показва данни директно въведени от потребителите без необходимото филтриране или коректна трансформация * Ако атаката се провежда чрез JavaScript VBScript, ActiveX браузер, който поддържа някоя от тези технологии * HTML injection атака работи със всички браузери - До какво може да доведе една XSS атака * Крадене на акаунти, промяна на потребителски настройки, крадене на cookie-та, подправяне на cookie-та, непозволено рекламиране, Denial of Services атаки, използване на клиента като трамплин за атака на други сайтове и т.н. * Използване на FORM за крадене на информация (подвеждане на потребителя ако ползва SSL) * Добиване на достъп до данни до който атакуващият няма права * Единственото ограничение е въображението на атакуващият. - Специални символи в HTML < > & % - Адресни схеми - http:// - ftp:// - file: - javascript: - Примери за XSS атаки * Всяко приложението което не филтрира HTML тагове е уязвимо към вмъкване на фалшив HTML код (div + css). * Всяко приложение което позволява вмъкването на "> - Защити за потребителите Никоя от защити не е 100% ефективна. Някои от възможните защити са: * Same origin policy (работи винаги) * Изключване на JavaScript и ActiveX * В Mozilla - забрана за достъп до cookie от JS * В Mozilla - забрана за промяна на status bar * Избягване на безразборно кликане по връзки * За важните сайтове не разчитайте на връзки или bookmarks. Въвеждайте си ги на ръка в полето за адрес на броузера. - Защити приложени от програмистите на уеб приложения * Подсигуряване че динамично генерираните страници не съдържат потребителски данни, който не са проверени * твърдо оказване на character set-а, който ползва страницата * Използвайте POST, не GET във формите * Използване на HTTP ONLY cookie-та - Защити приложени от администраторите * обновяване на уеб сървърите, който позволяват XSS атаки да се провеждат през страниците за грешки на самите сървъри. - Връзки за повече информация: http://www.technicalinfo.net/papers/CSS.html http://www.technicalinfo.net/papers/URLEmbeddedAttacks.html http://www.cgisecurity.net/articles/xss-faq.shtml http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/cross-site-malicious-content.html