Configure Custom Multi-Step Authentication

If you need to create a custom authentication flow consisting of multiple stages, you should use the custom multi-step authentication method.

Prerequisites

  • You are an active user in the NeuraLegion App.
  • Your application and authenticated resources are accessible to the NeuraLegion engine, either directly from the Internet or via a Repeater.

Step-by-Step Guide

  1. Go to the NeuraLegion App.
  2. In the left pane, select Authentications.
  1. On the My Authentications page, click + Create Authentication.
  1. In the CREATE & TEST AUTHENTICATION dialog box, complete the fields of the following configuration sections.

Authentication Details

In this section, specify the details of the authentication object you want to create.

Field Guidelines
Authentication name Enter the authentication object name.
Description (Optional) Enter the authentication object description. For example, you can specify the application type or other information that helps you distinguish your created object.
Authentication type From the Authentication type drop-down list, select Custom multi-step Authentication.

Authentication Flow Setup

In this section, build the authentication flow. You can create a single-stage flow or add as many stages as the NeuraLegion engine should pass through to access the authenticated resource.

Start the setup with creating the first stage. In the Name field, enter the stage name that can be used further for creation of interpolation expressions.

Request

In this section, set up a valid authentication request to be sent to the end-point API. For that, complete the Authentication Setup fields.

Field Guidelines
Protocol From the drop-down list, select the HTTPS or WebSockets protocol to be used for authentication.
Method Enter the HTTP method of the relevant API end-point.
URL Enter the URL of the relevant API end-point. The URL can contain an interpolation string that you can create using the String Interpolation Syntax.
Headers Enter an additional header that you need to use for each request and specify its value. You can interpolate the header name and value using the String Interpolation Syntax.
To replace or append the specified header to each request, select the relative button below.

Body Enter the HTTP request body to use it with the request sent to the API end-point, for example: {“user”: “foo”, “pass”: “bar”}’. You can interpolate the body using the String Interpolation Syntax.
Maximum number of redirects to follow Enter the maximum number of redirections that Nexploit should follow during the authentication process.

Pro Tips: Select the checkbox Change redirected method to get for the redirects with code 302, where the server expects the following methods to always be GET during redirects and not the original method that triggered the redirect.
  • For some parameters, you can add more fields by clicking at the upper-right of the relevant setup section.
  • To delete a parameter, click next to the relevant Value field.

Valid Authentication Response

In this section, select the options you want to use during the application scanning to determine that the authenticated resource has been reached. The options define how the application responds in case a full authentication flow passes successfully.

Field Guidelines
Detect using response status Enter the HTTP response that will tell you about the authentication success.
Detect using header pattern Enter the header and Regex pattern that will tell about the authentication success.
Detect using body pattern Enter the body pattern that will tell you about the authentication success.

To add another stage required for authentication, click + ADD ANOTHER STAGE.

Authorized Requests Setup

In this section, specify the values to be appended to each request sent to an authenticated resource.

Field Guidelines
Headers Specify the name and expected value template of an additional header to be appended to each request. To create the value template, use the String Interpolation Syntax.
Content-Type Specify the content type of the request body.
Note: Currently only application/json is supported.
XPath to parameter Specify the exact location of the parameter in the object sent with the requests to the target.
Value Specify the template of the expected value (interpolation string) to be embedded into the target parameter. To create the value template, use the String Interpolation Syntax.
  • For some parameters, you can add more fields by clicking at the upper-right of the relevant setup section.
  • To delete a parameter, click to the left of the relevant field.

Authentication Triggers

In this section, select the options you want to use during the application scanning to determine if the authentication flow is no longer valid and the authenticated resources cannot be reached. The options define how the application responds in case the authentication flow fails.

Field Guidelines
Detect using response status Enter the HTTP response that will tell you about the authentication failure.
Detect using header pattern Enter the header and Regex pattern that will tell about the authentication failure.
Detect using body pattern Enter the body pattern that will tell you about the authentication failure.

Valid Session Tester

The preliminary testing helps you verify if the authentication object has been configured correctly.

Field Guidelines
Protocol From the drop-down list, select the HTTPS or WebSockets protocol to be used for authentication.
Method Select the HTTP method of an active tester end-point (authenticated resource).
Validation URL Enter the URL of the authenticated (protected) resource to test if the authentication scenario is configured correctly. The validation URL should be different from the authentication URL.
Header name Select an additional header to be appended to the request sent to the tester end-point.
Header value Enter the template of the expected value (interpolation string) created using the String Interpolation Syntax.
Body Enter the HTTP request body to be appended to the request sent to the tester end-point, for example: {“user”: “foo”, “pass”: “bar”}’. You can interpolate the body using the String Interpolation Syntax.
Maximum number of redirects to follow Enter the maximum number of redirections that Nexploit should follow during the authentication process.

Pro Tips: Select the checkbox Change redirected method to get for the redirects with code 302, where the server expects the following methods to always be GET during redirects and not the original method that triggered the redirect.
Repeater If you use a local Repeater to reach the scan target, select it from the drop-down list to connect it to the scan.

Once you have completed the Valid Session Tester fields, click Test Authentication.

  • A valid authentication object returns three success messages indicated in the relevant Test Results sections:
    • Test Authentication Triggers
    • Authentication call for each stage
    • Access Protected Resource

In this case, you can save the configured object and add it to your scans.

  • If the test results include a failure message, go back to the object configurations and verify their correctness. Use the test request/response data to find a certain failure and fix it.

Did this page help you?