Использование PHP строка синтаксических особенности обход

0x01 обходного Введение

Мы знаем , что строки PHP запроса (в тексте или URL) на внутренний $_GETили ассоциативный массив $_POST. Например: /?foo=barчтобы стать Array([foo] => “bar”). Стоит отметить , что, удалить или заменить строку запроса разбора подчеркнута в процессе превращения некоторых символов. Например, /?%20news[id%00=42он будет преобразован в Array([news_id] => 42). Если один IDS/IPSили WAFсуществует правило , что , когда news_idзначение параметра не является числовым значением перехвата, то можно обойти со следующим утверждением:
/news.php?%20news[id%00=42"+AND+1=0--

0x02 PHP синтаксический функций, представленных

PHP необходимо преобразовать все параметры действительного имени переменной, поэтому при разборе строки запроса, он будет делать две вещи:

  • Удаление пробельных символов

  • Для того, чтобы преобразовать некоторые символы подчеркивания (включая пробелы)

Например:

Пользовательский ввод декодированного PHP имя переменной
20foo_bar% 00% foo_bar foo_bar
Foo% 20bar% 00 Foo бар foo_bar
Foo% 5bbar Foo [бар foo_bar

Приведенные выше результаты мы можем размывают
скрипт следующим образом :

<?php
    foreach(
        [
            "{chr}foo_bar",
            "foo{chr}bar",
            "foo_bar{chr}"
        ] as $k => $arg) {
            for($i=0;$i<=255;$i++) {
                echo "\033[999D\033[K\r";
                echo "[".$arg."] check ".bin2hex(chr($i))."";
                parse_str(str_replace("{chr}",chr($i),$arg)."=bla",$o);
                /* yes... I've added a sleep time on each loop just for 
                the scenic effect :)
  like that movie with unrealistic 
                brute-force where the password are obtained 
                one byte at a time (∩`-´)⊃━☆゚.*・。゚ 
                */
                usleep(5000);
                if(isset($o["foo_bar"])) {
                    echo "\033[999D\033[K\r";
                    echo $arg." -> ".bin2hex(chr($i))." (".chr($i).")\n";
                }
            }
            echo "\033[999D\033[K\r";
            echo "\n";
    }

Here Вставка рисунка Описание

0x03 Ссылки Ссылки

ссылка

Опубликовано 47 оригинальных статей · вона похвала 2 · Просмотров 3133

рекомендация

отblog.csdn.net/a3320315/article/details/102993752