* Как така още не са хакнати?
Публикувано на 08 май 2013 в раздел ОСУП.
Мои познати имат уеб сайт, който е правен преди няколко години и от тогава не е пипан. Напоследък всякакви ботове им задръстват формата за коментари със спам. Помолиха ме да им сложа Captcha.
Аз Captcha сложих, но нещата, които "между другого" поправих, направо ме потресоха:
- Всички коментари се появяват директно без какъвто и да е филтър. Съответно XSS атаки могат да се правят всякакви;
- От менюто информацията за това на коя страница се намираш се предава с GET, а после се прави директно include на стойността на този параметър. Съответно спокойно успявах да си добавям всякакви файлчета, при това не само от текущата, а и от всякакви директории на текущия потребител на уеб сървъра;
- Подстраници (content) от административния панел не правеха проверка дали потребителя е влязъл в системата;
- Имаше SQL Injection на формата за коментари при правенето на INSERT заявката;
- Формата за изпращане на e-mail можеше да бъде тотално зарината със спам. Беше я спасило случайна грешка на програмиста, от която тя... просто не работеше...
Естествено веднага проверих и административния панел за SQL Injection. Най-накрая някаква приятна изненада - точно там нямаше, използваха mysql_real_escape_string на потребителското име. Тръгнах да гледам как пазят паролата - има в таблицата в базата от данни колона "passhash", до нея някакъв "secret" - явно има SALT и е хеширана. Търсих, търсих, търсих да видя как точно се хешира, но интересното е, че никъде в кода нямаше и помен от такова нещо. Паролата от формата за вход се подаваше към една функция "userlogin()" и... вътре не се използваше никъде. Не се използваше и в SQL заявката, която проверява за вярност на име и парола. И познайте какво - установих, че в административния панел може да се влезе с каквато и да е парола, стига да знаете потребителското име. От там може да се редактира всичко по сайта. Отделно в самия административен панел е пълно с всякакви XSS и SQL Injection уязвимости.
Мислите, че не може да бъде по-зле? Бъркате! Веднага отидох на сайта на това "дизайн студио", което беше направило сайта. Самият техен сайт е направен на същата платформа, но явно са пооправили кода през годините, които са минали. По-грубите пропуски бяха поправени. Интересното стана когато отидох да им гледам сайтовете от портфолио - такива, които са правили за различни клиенти. Оказа се, че по-старите им клиенти са в почти същото положение. Черешката на тортата обаче беше когато попаднах (случайно, не съм преглеждал всичките им клиенти - много са) на един сайт на пицария, на който когато напишеш домейна/admin... направо влизаш вътре без да те пита за име и парола. От там може да се редактира менюто, да се променят цени и какво ли още не :)
Интересно, но факт - виждал съм доста хакнати сайтове и при повечето хакерите бяха използвали доста сложни схеми, за да пробият защитите. А в същото време продължават да съществуват стотици сайтове като споменатите, на които "портите им са широко отворени" и никой не иска да ги хаква.
Името на "дизайн студиото" и адреси на техните сайтове по обясними причини няма да ги спомена.
Това го прочетох за "Добро утро" и да Ви кажа, че беше по-добре от сутрешно кафе на работа :D
Иначе, съвсем сериозно, останах потресен!
И бая пари взимат да ви кажа.
Наскоро мой приятел купи хостинга на голямо количество сайтове от подобно студио за уеб дизайн, което беше фалирало. Стотици сайтове, всички писани на един CMS с различни версии. Що годе приличен беше CMS-а (оправяхме само "deprecated" проблеми, почти нищо свързано със сигурността), но сървърите бяха в безобразно състояние. Не бяха виждали ъпдейт на каквото и да е от деня в който са били инсталирани.
Най-весело беше с Windows 2000 сървъра. Оказа се, че няма никакъв лимит за това колко e-mail съобщения на ден може да изпраща потребител. Естествено имаше такива, които изпращаха стотици хиляди :)
Покъртително, ама света е пълен с такива професионалисти, които даже и пари взимат да правят такива неща.
На какъв CMS беше сайта?
Custom