HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 20.01.2008, 02:13
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

ну да я немного не правильно выразился, изменять не массив _POST, а именно post-данные... т.е. в массиве $GLOBALS массивы _POST и _FILES это разные массивы
__________________
Карфаген должен быть разрушен...
 
Ответить с цитированием

  #12  
Старый 20.01.2008, 04:21
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

сейчас внимательней посмотрел статью и понял, почему код:
PHP код:
 <form method="post" action="example.php" encode="multipart/form-data"> 
       <input type="file" name="example" /> 
       <input type="submit" name="submit" /> 
    </form> 
     
    <?php 
    
if(isset($_FILES["example"]))  
    { 
     
        
copy($_FILES["filename"]["tmp_name"],'/'); 
         
    } 
     echo 
$GLOBALS['example']; 
    
?>
работает правильно, и почему у gibson`а он работает, даже со строчкой unset($GLOBALS["example"]); смысл в том, что isset($_FILES["example"]) всегда возвратит false из-за
Код:
encode="multipart/form-data"
просто если делать форму с этой (непонятной) строчкой, то данные пойдут в массив _POST, причем не содержимое файла, а только его имя (в осле с полным путем до файла), а массив _FILES останется пустым, а поскольку какие то данные все же передаются, то при REGISTER_GLOBALS ON переменная example создастся и код выполнится, для того чтобы данные передавались в _FILE, надо чтоб была строчка
Код:
enctype="multipart/form-data"
но при таком раскладе в переменной example, будет временное имя файла (покрайней мере в php => 5) плюс в данном коде будет ошибка, потому что $_FILES["filename"] не будет существовать
__________________
Карфаген должен быть разрушен...
 
Ответить с цитированием

  #13  
Старый 21.01.2008, 02:47
gibson
Постоянный
Регистрация: 24.02.2006
Сообщений: 447
С нами: 10636106

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

Цитата:
$_POST и $_FILES в скрипте это совершенно разные массивы и никак не пересекаются.
думаю ты ошибаешь или я не правильно понимаю, для загрузки файлов используется метод пост т.к. гет имеет макс длину 512 байт и следовательно не подходит для загрузки файлов. И при загрузке файлов объвляют тип file
<input type="file" name="example" />
2Scipio +1 почти раскусили трюки
 
Ответить с цитированием

  #14  
Старый 21.01.2008, 03:03
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

2gibson еще раз объясняю, файлы передаются методом пост, но данные заносятся в разные массивы, вот код уже пользуемого примера:
PHP код:
<form method="post" action="example.php" encode="multipart/form-data">  
       <input type="file" name="example" />  
       <input type="submit" name="submit" />  
    </form>  
      
    <?php  
    
if(isset($_FILES["example"]))   
    {  
      
        
copy($_FILES["filename"]["tmp_name"],'/');  
          
    }  
     echo 
$GLOBALS['example'];
     
print_r ($GLOBALS);
    
?>
этот код покажет тебе весь массив GLOBALS, посмотри его и обрати внимание на подмассивы _POST и _FILES, данные будут в массиве _POST, а массив _FILES останется пустым, атеперь посмотри на массив GLOBALS в этом примере:
PHP код:
<form method="post" action="example.php" enctype="multipart/form-data">  
       <input type="file" name="example" />  
       <input type="submit" name="submit" />  
    </form>  
      
    <?php  
    
if(isset($_FILES["example"]))   
    {  
      
        
copy($_FILES["example"]["tmp_name"],'1111.txt');  
          
    }  
     echo 
$GLOBALS['example'];
     
print_r ($GLOBALS);
    
?>
чуешь разницу, теперь _POST пустой
__________________
Карфаген должен быть разрушен...
 
Ответить с цитированием

  #15  
Старый 15.02.2008, 17:38
Developer
Участник форума
Регистрация: 03.05.2006
Сообщений: 167
С нами: 10537698

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

Баг с Null-байтом в Php 5 исправлен или нужно что-то самому думать?
 
Ответить с цитированием

  #16  
Старый 01.05.2008, 02:27
gibson
Постоянный
Регистрация: 24.02.2006
Сообщений: 447
С нами: 10636106

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

Цитата:
Сообщение от zerling  
Как считать ключи для переменных с другими именами?!
HP Bug Scanner

Возможности:

* возможность сканирования либо множества файлов либо одного скрипта
* система пресетов: вы можете добавлять новые функции, изменять или удалять их
* возможность загрузки и сохранения своих пресетов
* 7 специальных пресетов, сгруппированных по категориям:
code execution
command execution
directory traversal
globals overwrite
include
sql injection
miscellaneous
* сохранение и загрузка результатов
* сортировка результата по имени скрипта, номеру строки или функции, которая была найдена
* быстрый обзор скрипта с подсветкой кода и пронумерованными строками
* вычисление хэшей Zend_hash_del_key_or_index
* String 2 chr() converter - представление строки в виде ASCII-символов в соответствии с синтаксисом PHP
_http://jzweb.ru/2007/11/15/php_bug_scanner.html

Роковые ошибки Php Оригинал Sep 6 2006
http://www.criticalsecurity.net/index.php?showtopic=16281
 
Ответить с цитированием

  #17  
Старый 14.06.2008, 14:49
satana8920
Постоянный
Регистрация: 22.09.2006
Сообщений: 531
С нами: 10333826

Репутация: 369


По умолчанию

статья хороша
в принуипе хотел спросить будет уязвим ли такой код
PHP код:
if ($_POST['mode'] == 'add')
        
$db->query('INSERT INTO '.$db->prefix.'bans (username, ip, email, message, expire) VALUES('.$ban_user.', '.$ban_ip.', '.$ban_email.', '.$ban_message.', '.$ban_expire.')') or error('Unable to add ban'__FILE____LINE__$db->error());
    else
        
$db->query('UPDATE '.$db->prefix.'bans SET username='.$ban_user.', ip='.$ban_ip.', email='.$ban_email.', message='.$ban_message.', expire='.$ban_expire.' WHERE id='.intval($_POST['ban_id'])) or error('Unable to update ban'__FILE____LINE__$db->error()); 
инетресно стало очень

Последний раз редактировалось satana8920; 14.06.2008 в 15:02..
 
Ответить с цитированием

  #18  
Старый 18.06.2008, 00:20
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
С нами: 10459106

Репутация: 2996


По умолчанию

2gibson
сканер полное гавно... и вообще не в пер какого хера хюлит пакер поперся в ит.
 
Ответить с цитированием

  #19  
Старый 04.06.2009, 02:17
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
С нами: 10470131

Репутация: 142


По умолчанию

Цитата:
Сообщение от Евгений Минаев  

Рассмотрим классический пример global overwrite , создав простой php скрипт с всего лишь одной строчкой кода.

PHP код:
php -> echo $GLOBALS
INDENT][/FONT]
ага,щас:

PHP код:

<?php

$killa 
5;

echo 
$GLOBALS['killa'];

?>
register_globals = On/off - побарабану.

echo $GLOBALS['killa'];

Согласен,работает,но это опять-таки при условии,что включен регистер глобалс.Или пофиксили это в пятой ветке пхп из последних,или...или или.По мне так просто переменная неопределена)
 
Ответить с цитированием

  #20  
Старый 04.06.2009, 02:26
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
С нами: 10470131

Репутация: 142


По умолчанию

Блин,напишите,что актуально из вышеприведённого для пхп 5.2.6-5.2.9.Или я кривой,или не работает ничерта...проверил пока пару-тройку *фич*.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP 186 21.02.2010 02:41



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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...