Недко разказва: За сайта на МОН, МВР, НАП, OFFNEWS.bg XSS атаките и OWASP

Днес за пореден път се доказа твърдението, че добрия програмист не пише само функционалност, която да работи, а такава, която е съобразена с множество фактори – скорост, сигурност, логичност. Този път сайтовете са Министерството на Образованието и Науката и Министерство на Вътрешните Работи и новинарския сайт OFFNEWS.BG бяха мишената използвайки очевидно една и съща търсачка. И да ви кажа честно – срам е, че някой не си е escape–нал параметрите за да предтврати един прост XSS, които потребителя подава. Това е нещо тривиално, нещо, което всеки, който пише код трябва да знае и използва. Защото знаете – когато пишем никога не трябва да имаме доверие на потребителите. Ни-ко-га.

В случая уязвимия параметър е при търсене – search****** (при offnews е qstr) и там в комбинация с HTML атрибута <img src , който се използва за зареждане на images, можем да заредим ресурс от отдалечен източник.

Целия линк изглежда така:

http://www.mon.bg/?go=search&search******= %3Cimg+src%3D%22http%3A%2F%2Fs13.postimg.org%2Fm07bzeoqv% 2F12631342_506075736263709_3144604934906137506_n.jpg%22+%2F%3E

Използвайки URL Decode tool го показвам по-прегледно:

http://www.mon.bg/?go=search&search******= <img src=”http://s13.postimg.org/m07bzeoqv/12631342_506075736263709_3144604934906137506_n.jpg” />

Атаката се нарича Cross-Site Scripting и дефинирана накратко – може да заредите злонамерен код от друг източник. Така например аз мога да модифицирам горния линк и вместо image да подкани браузъра да зареди някакъв JS, който да ви открадне cookie-тата като на всичкото отгоре вие като потребители ще видите, че е нещо от сайта на МОН и шанса да го отворите е доста голям.

А защо се казва XSS като определено съкращението трябва да е CSS? Е – вече си отговорихте :) CSS е било заето много по-отдавна и са си го избрали такова. Пък и XSS звучи яко.

Ако вие интересно в OWASP.org има статия за това какво представлява XSS, има и доста полезни линкове (както за програмисти така и за QA), а тук можете да намерите и списък с най-честите XSS атаки.

 

Темата е супер интересна и ако някой иска да разпиша повече за нея може да пишете в коментарите по-долу.

 

А един от първите ми XSS анализи беше преди няколко години като преглеждах от любопитство (и с разрешение, че да не ям бой после :) ) сайта на мой приятел, който се занимава с уеб дизайн и изработка на сайтове – SEO-Uslugi и там доста си поиграх. Намерихме 1-2 малки неща и се оказа, че XSS не е чак толкова рядко срещано явление колкото си мислих.

Note – поради факта, че бъга не е фикснат съм скрил параметъра. Не злуопотребявайте. Или го правете. Но на ваша отговорност :)

Note2 – Току-що оправиха проблема така, че върнах обратно цензурираните стрингове :)

Note3 – Много note* станаха :) Намери се същя проблем в сайта на МВР така, че пак крия стринга и повече няма да го показвам. Ъпдейтвам и статията.

1 Comment

  1. Най-добрият ред досега, „добрият програмист не пише само функционалност, която работи, но и такава, която е в съответствие с много фактори – скорост, сигурност, логика“. И благодаря за обяснението на кръстосания скрипт на сайта. Малката небрежност на програмиста може да доведе до опустошителни щети за бизнеса. За това са нужни години, за да бъдат възстановени отново.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.