Фаза Detect

Область действия фазы

Фаза является обязательной для работы любого типа расширения (в YAML-файле должна присутствовать соответствующая секция detect).

Подробную информацию о типах расширений FAST вы можете получить здесь.

Синтаксис описания элементов запроса

При создании расширения FAST вам необходимо понимать структуру запроса к приложению и ответа от приложения, чтобы корректно описывать элементы запроса, с которыми необходимо работать, с помощью point'ов.

Более подробная информация о синтаксисе описания элементов запроса доступна здесь.

Эта фаза позволяет задать правила, по которым будет определяться срабатывание тестовых запросов, что эквивалентно обнаружению уязвимостей в целевом приложении.

Секция detect имеет следующую структуру:

detect:
  - oob:
    - dns
  - response:
    - status:
      - value 1
      - …
      - value S
    - headers:
      - header 1: 
        - value 1
        - …
        - value T
      - header …
      - header N:
        - value 1
        - …
        - value U
    - body:
      - html:
        - tag:
          - value 1
          - …
          - value V
        - attr:
          - value 1
          - …
          - value W
        - attribute:
          - value 1
          - …
          - value X
        - js:
          - value 1
          - …
          - value Y
        - href:
          - value 1
          - …
          - value Z

Секция включает в себя набор из нескольких параметров. Каждый такой параметр описывает один из элементов ответа. Некоторые параметры могут принимать в качестве допустимых значений массив других параметров, образуя иерархию.

Параметр может:

  • Являться опциональным (параметр может как присутствовать, так и отсутствовать в запросе). Это верно для всех параметров в секции detect.

    Необходимость наличия параметра в секции detect

    Несмотря на то, что параметры oob и response являются опциональными, в секции detect обязательно должен присутствовать хотя бы один из них, иначе фаза Detect не будет работать. Также в секции detect могут присутствовать оба параметра.

  • Не иметь заданного значения.

    Пример.
    - response
    

  • Принимать единичное значение, заданное в виде строки или числа.

    Пример.
    - status: 500
    

  • Принимать одно из нескольких значений, заданных в виде массива строк или чисел.

    Пример.
        - status: 
            - 404
            - 500
    

  • Содержать другие параметры в качестве значения (параметры передаются в виде массива).

    Пример.
        - headers: 
            - "Cookie": "example"
            - "User-Agent":
                - "Mozilla"
                - "Chrome"
    

Описания возможных значений параметров в секции detect:

results matching ""

    No results matching ""