Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

20.01.2008, 02:13
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме: 5939734
Репутация:
1917
|
|
ну да я немного не правильно выразился, изменять не массив _POST, а именно post-данные... т.е. в массиве $GLOBALS массивы _POST и _FILES это разные массивы
__________________
Карфаген должен быть разрушен...
|
|
|

20.01.2008, 04:21
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме: 5939734
Репутация:
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"] не будет существовать
__________________
Карфаген должен быть разрушен...
|
|
|

21.01.2008, 02:47
|
|
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме: 2872049
Репутация:
705
|
|
$_POST и $_FILES в скрипте это совершенно разные массивы и никак не пересекаются.
думаю ты ошибаешь или я не правильно понимаю, для загрузки файлов используется метод пост т.к. гет имеет макс длину 512 байт и следовательно не подходит для загрузки файлов. И при загрузке файлов объвляют тип file
<input type="file" name="example" />
2Scipio +1 почти раскусили трюки
|
|
|

21.01.2008, 03:03
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме: 5939734
Репутация:
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.02.2008, 17:38
|
|
Участник форума
Регистрация: 03.05.2006
Сообщений: 167
Провел на форуме: 125505
Репутация:
116
|
|
Баг с Null-байтом в Php 5 исправлен или нужно что-то самому думать?
|
|
|

01.05.2008, 02:27
|
|
Moderator - Level 7
Регистрация: 24.02.2006
Сообщений: 447
Провел на форуме: 2872049
Репутация:
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
|
|
|

14.06.2008, 14:49
|
|
Moderator - Level 7
Регистрация: 22.09.2006
Сообщений: 531
Провел на форуме: 3818187
Репутация:
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.06.2008, 00:20
|
|
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме: 3887520
Репутация:
2996
|
|
2gibson
сканер полное гавно... и вообще не в пер какого хера хюлит пакер поперся в ит.
|
|
|

04.06.2009, 02:17
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Сообщение от Евгений Минаев
Рассмотрим классический пример global overwrite , создав простой php скрипт с всего лишь одной строчкой кода.
PHP код:
php -> echo $GLOBALS['example'];
INDENT][/FONT]
ага,щас:
PHP код:
<?php
$killa = 5;
echo $GLOBALS['killa'];
?>
register_globals = On/off - побарабану.
echo $GLOBALS['killa'];
Согласен,работает,но это опять-таки при условии,что включен регистер глобалс.Или пофиксили это в пятой ветке пхп из последних,или...или или.По мне так просто переменная неопределена)
|
|
|

04.06.2009, 02:26
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Блин,напишите,что актуально из вышеприведённого для пхп 5.2.6-5.2.9.Или я кривой,или не работает ничерта...проверил пока пару-тройку *фич*.
|
|
|
|
 |
|
TEST QR: []
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|