WordPress 2.8.4 е уязвим! от Casper
Вече съм сигурен, че WordPress 2.8.4 е податлив на SQL injection. Вчера, докато си преглеждах новите публикации из блоговете, които съм си добавил в Google Reader, забелязах нещо много интересно. Незнайно как в предпоследния пост на блог, който поддържам, се беше появил странен линк с руски текст – хехе, сещате се. В самият сайт това не се виждаше, но ето какво се беше намъкнало из кода на публикацията…
Умишлено съм го боднал в картинка. Познато, нали? Същите руски спамери на нов глас. Но сега ще ви кажа и най-интересното – откъде всъщност започнах да подозирам, че нещо не е както трябва…
Екплойтът е „умен“ и освен, че инжектира скрит код, допълнително променя месеца в датата на публикуване. В конкретният случай от септември на януари 2009 година. По този начин публикацията заминава назад в архивите и никой няма и да се сети да погледне… Добре стана, че се уцели предпоследен пост, та захапах за какво става дума. Бедна ми е фантазията, колко точно блогове са „почерпени“ с този бонус код, но до следващата stable версия на WordPress ще съм нащрек!
Има много начини да проверите дали са ви набутали нежелан код. Един от тях е да пуснете директни SELECT заявки, през phpMyAdmin или някакъв друг mySQL клиент, към таблицата с публикациите (по подразбиране wp_posts, ако не сте сложили друг префикс, както аз предвидливо направих в началото).
Примерна заявка:
SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%' UNION SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%' UNION SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
Друг начин е да експортирате wp_posts таблицата и да действате по метода Find & Replace с любим текстов/код редактор. За големи бази не препоръчвам стандартния Notepad, защото има проблеми с по-големи текстови файлове (Това май можеше да се оправи?!).
Трети начин е да ползвате WordPress плъгин за целта. Search and Replace ще ви свърши добра работа. Атанас Янев вече го е препоръчвал и е с добри впечатления от него.
Други материали, които е добре да прегледате
- How to Keep WordPress Secure – „The only thing that I can promise will keep your blog secure today and in the future is upgrading.“ – Matt Mullenweg
- Hardening WordPress – From WordPress Codex
- 16 Essential WordPress Plugins To Protect Your Blog From Hackers – Плъгини, с които да увеличите защитата на блога си.
- How To Completely Clean Your Hacked WordPress Installation – Как да изчистим WordPress от пораженията нанесени от хакери. Някои от стъпките са доста крайни. Чистка на ниско ниво, както се казва…
- Chorizo! – Web Application Security Scanner – Проверете сайта си за дупки в сигурността. Удобен инструмент. Прави много тестове, върна 0 броя възможни проблеми за WordPress 2.8.4, но не пречи и вие са се тествате.
- WordPress Permalink Hack – Малко информация по въпроса за хакването на permalink структурата.
- WordPress Permalink, RSS and Hidden Admin Problems – Още по темата, плюс премахване на скрит админ.
WordPress 2.8.2 от Casper
Открита Cross-site scripting (XSS) уязвимост в последния WordPress, форсира пускането на пачната версия 2.8.2, която както обичам често да казвам, ще ви помогне да бъдете с една идея по-спокойни. Проблемът не е малък и най-общо казано, може да позволи да бъдете пренасочени от администраторския панел към алтернативен сайт. Обновете до WordPress 2.8.2, като ако смятате, че имате нестабилен нет, по-добре се ориентирайте към offline (FTP) ъпдейт. Не забравяйте да си направите резервно копие на базата преди да предприемете нещо такова. Това е и първия път, когато използвам вградената функция за обновяване в този блог. В WordPress 2.8, се … още »
Великата чистка на акаунти от Casper
От много време, регистрацията в този блог е спряна. Спомням си, че предприех тази стъпка, основно в борбата си със спам ботовете, пък и не съм имал планове да развивам multi-author блог или нещо подобно. Въпреки това, Blog.Caspie.Net си стоеше месеци наред с близо 40 регистрирани потребителя. До днес… Помислих и реших, че е безсмислено в базата на блога да има акаунти, които не са обвързани с никакви действия (публикации, коментари, връзки) и няма никакъв изглед, че ще бъдат използвани и в бъдеще. Ако някой (от изтритите) реши, че е ощетен по някакъв начин, нека се свърже с … още »
WordPress 2.8.1 от Casper
Изненадващата поява на WordPress 2.8.1 ми създаде няколко минути допълнителна работа по обновяването на няколко блога. Всичко мина гладко и с усмивка мога да ви споделя, че и двата основни начина за ъпгрейд, автоматичен и през FTP, работят както трябва. Най-съществената промяна в 2.8.1 е оптимизирания администраторски панел и по-конкретно намаления разход на памет. Ще ви дам бърз пример. В момента, този блог е с 20 активирани разширения. Според WP-Memory-Usage, зареждането на Таблото (Dashboard) под WordPress 2.8 консумираше почти 29 MB памет или 45% от заделените 64 MB. Стойностите в 2.8.1 са далеч по-приятни, съответно 25 MB или … още »
WordPress 2.8.1 RC 1 от Casper
Последната спирка преди финална 2.8.1 версия е release candidate 1. Ако сте обновили от Beta 2 към RC 1 и сте се чудели, защо версията в Таблото (Dashboard) не се е променила, не се стряскайте. Просто някой беше забравил да Bump-не версиите в trunk-а. Днес всичко изглежда наред. Пуснете още един Tools → Upgrade. Все още няма пускова дата за WordPress 2.8.1, но при положение, че имаме RC, тази дата наближава. Промените след Beta 2 разгледайте тук. Силно впечатление прави изключването на синтактичното оцветяване на theme и plugin редакторите – CodePress. Вземете участие в запитването: WordPress 2.9 Media … още »
WordPress 2.8.1 Beta 2 от Casper
Плътната програма през почивните дни и спряния достъп до Интернет ми попречиха да обявя навреме WordPress 2.8.1 Beta 2 от 26 юни 2009 г. За всички вас, които следите изкъсо развитието на WordPress, предлагам да прегледате промените от първата бета на 2.8.1 насам. В публикацията на dev блога се споменава, че е препоръчително авторите на разширения (plugins) да тестват творбите си с новата Beta 2 и да пуснат по една обратна връзка при забелязани проблеми. Отличителни промени в Beta 2: Translation of role names fixed wp_page_menu() defaults to sorting by the user specified menu order rather than the … още »