HELP ME PLEASE! Надо вставить <??> в файл

Discussion in 'PHP' started by _gr34t, 13 May 2009.

  1. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    обход htmlspecialchars()! Надо вставить <??> в файл

    Привет всем! Я нашёл уязвимости на одном сайте, а именно я могупросматривать содержимое и писать в файлы и даже создавать .php файлы. Но вставка текста фильтруется так

    PHP:
    $text=htmlspecialchars(stripslashes($_GET['text']));
    Как это можно обойти подскажите.
     
    #1 _gr34t, 13 May 2009
    Last edited: 13 May 2009
  2. hors_de_prix

    hors_de_prix Banned

    Joined:
    10 May 2009
    Messages:
    36
    Likes Received:
    5
    Reputations:
    0
    ответ

    это кодирока означает
    от ввода html запроса (htmlspecialchars) а от ввода таких символов как /*-- union (stripslashes) тоисть они от взлома .
    обычно их часто используют перед запросом к mysql или для написания поиска сайта .



    если у тебя есть доступ к редактированию скриптов ,тогда найди вот такой тип кодировки .

    $addtext = stripslashes($addtext);
    $addtext = htmlspecialchars($addtext);
     
  3. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    не понял. я уже нашёл. Мне надо, чтобы в файл записалось
    PHP:
    <?phpinfo();?>
    а пишется
    PHP:
    &gl;phpinfo();&gt;
    именно из-за этой строчки: $text=htmlspecialchars(stripslashes($text));
    А редактировать скрипты я могу, но при сохранении они сами и проходят через этот же фильтр. ((((((
     
  4. D1mOn

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

    Joined:
    2 Oct 2005
    Messages:
    380
    Likes Received:
    144
    Reputations:
    29
    ну дык в любой существующий php файл впиши phpinfo();
     
  5. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    Объясняю: при сохранении любого файла символы < и > заменяются на &lt; и &gt;, т.к. весь текст проходит через фильтр $text=htmlspecialchars(stripslashes($text));
    Я думал есть способ как-нибудь это обойти.
     
  6. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    значит никак, т.е. попытавшись ПРОСТО отредактировать index.php тот же - ты фактически его убиваешь? Забавно
     
  7. pento

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

    Joined:
    3 Jul 2006
    Messages:
    126
    Likes Received:
    24
    Reputations:
    -1
    Опии более подробно как происходит запись в файл.
    Ну или хоть сырцы покажи.
     
  8. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    PHP:
    $textdb "templ/".$pagename.".tpl";
    //...
      
    if (isset($add)): 
      
    $textob=htmlspecialchars(stripslashes($textob)); 
      
    $textob=str_replace("\t"," ",$textob); 
      
    $fp = @fopen("$textdb","wb"); 
      @
    fputs($fp,$textob); 
      @
    fclose($fp); 
      
    chmod ($textdb0777); 
      endif;
    Также вот ещё что есть:
    PHP:
     if (file_exists("$textdb")): 
      
    $text_array file("$textdb"); 
      if (
    count($text_array) != 0): 
       foreach (
    $text_array as $i=>$string) { 
              
    $text_str=$text_array[$i]; 
              
    $text_str=str_replace("  ","  ",$text_str); 
              echo 
    "$text_str";
       }
    пробовал в файл $textdb писать это: `ls`, но ничего не выполняется, а просто выводится на экран. ((
     
  9. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    Pashkela, да если сохраню. Я только что прочитал что можно обойти htmlspecialchars() с помощью изменения кодировки, но как именно - неизвестно... (((
     
  10. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    если есть возможность загрузить файл без этих ограничений на содержимое но с ограничением к расширению( к примеру только jpg ), то стоит попробовать создать .htaccess чтоб их обрабатывал как php
     
  11. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    а какже перл?
    типо того чтонить

    #!/usr/bin/perl
    print "Content-Type: text/html\n\n";
    print `ls`;
     
  12. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    zeppe1in, идея класс, но после создания файла file.pl и попытки к нему обратиться, выдаётся ошибка 403 Forbidden, т.е. нет доступа.

    ShAnKaR, а то что ты предложил - это, наверное, единственный выход. Вобщем в папках кроме всего прочего валяются ещё такие файлы: pureftpd-upload.4a01289b.15.106fd.9ff82a4b и т.д. Это может как-нибудь помочь?
     
  13. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    попробуй ещо file.cgi и если можеш то в других директориях типо cgi и cgi-bin. если не поможет можеш ещо попрбовать положить .htaccess с таким содержанием:
    Options +ExecCGI
    может там ещо есть какието варианты с .htaccess и запуском перл скриптов. также ещо косяк может быть в пути #!/usr/bin/perl.
    Вобще попробуй может ты можеш найти офф сайт хостера, а там гденить в факе написано как запустить перл.
     
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Грузи .htaccess и не парь мозг:)

    <Files ~ "\.gif$">
    AddType application/x-httpd-php .gif
    </Files>

    Только не забудь его потом удалить. И вообще, всё надо делать очень быстро
     
  15. Solker

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Зачем gif?..
    Почему бы не взять любое другое расширение, что бы не портило картинки на сайте.
    Например .ph5
    И сохранить гифку в формате ph5.
     
  16. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    Solker, ну потому что чаще всего на сервер можно загружать без палева картинки аватары типо. и ph5 скорее всего не пропустят, хотя нужно смотреть по конкретной ситуации.
     
  17. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Это так, для примера было. Можно хоть png вставить. Загрузить, посмотреть что пропустит, дальше думать
     
  18. _gr34t

    _gr34t Member

    Joined:
    26 Oct 2008
    Messages:
    89
    Likes Received:
    13
    Reputations:
    5
    Всем спасибо за ответы!
    Pashkela, Так тоже не получится из-за тех же < и >.

    zeppe1in
    file.cgi - тоже самое (403 Forbidden), директория cgi-bin - только на чтение. После создания .htaccess - генерируется Internal Server Error.
    Заливать файлы нельзя. Ну ладно буду дальше искать

    А вообще интересно, когда ломаешь простой не коммерческий сайт, хватит ли такой защиты, как обычный веб-анонимайзер?
     
  19. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    блин там может нужно права на фаил выставлять, и тогда походу ты в пролёте. попробуй другие дыры поискать, ты вроде читаеш фаилы на сервере? посмотри там пароли какиенить в конфигах и прочее.
    а по поводу защиты, я считаю что её нехватит никогда). и что там за анонимайзер у тя? обычные прокси почему не юзаеш?
     
  20. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    можно загрузить в другую папку даже в темп или сессию с кодом создать и подключить с помощью php_value auto_prepend
    наверно можно даже логи с кодом таким макаром подключить
     
    #20 ShAnKaR, 13 May 2009
    Last edited: 13 May 2009