Итак, я изучаю некоторую защиту PHP, используя DVWA (http://www.dvwa.co.uk/). Сейчас я нахожусь в упражнении, когда автор пытается научить нас выполнять команды в уязвимых приложениях. На этом уровне, it adds a very simple blacklist which removes important characters:Обход PHP str_replace() при замене одного символа
$substitutions = array(
'&&' => '',
';' => '',
);
я, очевидно, можно использовать некоторые другие символы еще получить код исполняется (как |
, ||
, &
и т.д.), но я хотел бы знать, как я обойти замещение один символ «;
». Я видел несколько примеров, по которым дураки заменяют кодом типа «<scr<script>ipt>
», и я пробовал такие вещи, как «;;;
»; пытался кодировать в hex и base64, но это не сработало.
Есть ли способ уклониться от str_replace()
, когда он ищет единственного персонажа? Это PHP 5.5.3.
Вы можете заменить regex? –
Что вы делаете с входящей строкой? Почему вы используете 'str_replace'? Большинство функций имеют свою собственную функцию «выхода», которую вы должны использовать. (например, 'mysql_real_escape_string' и' escapeshellcmd') –
Что вы подразумеваете под «уклоняться от замещения»? Что это значит? Какие примеры вы видели? –