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 – Още по темата, плюс премахване на скрит админ.