обход htmlspecialchars()! Надо вставить <??> в файл Привет всем! Я нашёл уязвимости на одном сайте, а именно я могупросматривать содержимое и писать в файлы и даже создавать .php файлы. Но вставка текста фильтруется так PHP: $text=htmlspecialchars(stripslashes($_GET['text'])); Как это можно обойти подскажите.
ответ это кодирока означает от ввода html запроса (htmlspecialchars) а от ввода таких символов как /*-- union (stripslashes) тоисть они от взлома . обычно их часто используют перед запросом к mysql или для написания поиска сайта . если у тебя есть доступ к редактированию скриптов ,тогда найди вот такой тип кодировки . $addtext = stripslashes($addtext); $addtext = htmlspecialchars($addtext);
не понял. я уже нашёл. Мне надо, чтобы в файл записалось PHP: <?phpinfo();?> а пишется PHP: ≷phpinfo();> именно из-за этой строчки: $text=htmlspecialchars(stripslashes($text)); А редактировать скрипты я могу, но при сохранении они сами и проходят через этот же фильтр. ((((((
Объясняю: при сохранении любого файла символы < и > заменяются на < и >, т.к. весь текст проходит через фильтр $text=htmlspecialchars(stripslashes($text)); Я думал есть способ как-нибудь это обойти.
значит никак, т.е. попытавшись ПРОСТО отредактировать index.php тот же - ты фактически его убиваешь? Забавно
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 ($textdb, 0777); 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`, но ничего не выполняется, а просто выводится на экран. ((
Pashkela, да если сохраню. Я только что прочитал что можно обойти htmlspecialchars() с помощью изменения кодировки, но как именно - неизвестно... (((
если есть возможность загрузить файл без этих ограничений на содержимое но с ограничением к расширению( к примеру только jpg ), то стоит попробовать создать .htaccess чтоб их обрабатывал как php
zeppe1in, идея класс, но после создания файла file.pl и попытки к нему обратиться, выдаётся ошибка 403 Forbidden, т.е. нет доступа. ShAnKaR, а то что ты предложил - это, наверное, единственный выход. Вобщем в папках кроме всего прочего валяются ещё такие файлы: pureftpd-upload.4a01289b.15.106fd.9ff82a4b и т.д. Это может как-нибудь помочь?
попробуй ещо file.cgi и если можеш то в других директориях типо cgi и cgi-bin. если не поможет можеш ещо попрбовать положить .htaccess с таким содержанием: Options +ExecCGI может там ещо есть какието варианты с .htaccess и запуском перл скриптов. также ещо косяк может быть в пути #!/usr/bin/perl. Вобще попробуй может ты можеш найти офф сайт хостера, а там гденить в факе написано как запустить перл.
Грузи .htaccess и не парь мозг <Files ~ "\.gif$"> AddType application/x-httpd-php .gif </Files> Только не забудь его потом удалить. И вообще, всё надо делать очень быстро
Зачем gif?.. Почему бы не взять любое другое расширение, что бы не портило картинки на сайте. Например .ph5 И сохранить гифку в формате ph5.
Solker, ну потому что чаще всего на сервер можно загружать без палева картинки аватары типо. и ph5 скорее всего не пропустят, хотя нужно смотреть по конкретной ситуации.
Это так, для примера было. Можно хоть png вставить. Загрузить, посмотреть что пропустит, дальше думать
Всем спасибо за ответы! Pashkela, Так тоже не получится из-за тех же < и >. zeppe1in file.cgi - тоже самое (403 Forbidden), директория cgi-bin - только на чтение. После создания .htaccess - генерируется Internal Server Error. Заливать файлы нельзя. Ну ладно буду дальше искать А вообще интересно, когда ломаешь простой не коммерческий сайт, хватит ли такой защиты, как обычный веб-анонимайзер?
блин там может нужно права на фаил выставлять, и тогда походу ты в пролёте. попробуй другие дыры поискать, ты вроде читаеш фаилы на сервере? посмотри там пароли какиенить в конфигах и прочее. а по поводу защиты, я считаю что её нехватит никогда). и что там за анонимайзер у тя? обычные прокси почему не юзаеш?
можно загрузить в другую папку даже в темп или сессию с кодом создать и подключить с помощью php_value auto_prepend наверно можно даже логи с кодом таким макаром подключить