Documents/CLI/

SmartScanner Configuration File Guide

SmartScanner supports loading external JSON configuration files when running scans from the command line.
Use -c or --config to supply a file:

sms.exe -u https://example.com -c scan-config.json

A configuration file allows full control over tests, HTTP behavior, proxy usage, crawling depth, form-filling rules, authentication, attack vectors, technologies, and custom exclusions.

This page explains the structure of the JSON configuration file and the meaning of each section.
A sample file is available:
👉 Download sample configuration file

1. Tests

The tests array lists all vulnerability tests SmartScanner should run.

Example:

"tests": [
  "SQL Injection/?error&time",
  "OS Command Execution"
]

Test forms

SmartScanner supports two forms:

TypeExampleDescription
Simple test"OS Command Execution"Runs a single test
Test with options"SQL Injection/?error&time"Enables sub-checks or modes

2. HTTP Settings

Controls how SmartScanner performs HTTP requests.

"http": {
  "timeout": 60000,
  "maxParallelRequests": 4,
  "maxRequestsPerSecond": false,
  "headers": [],
  "cookies": [],
  "userAgent": "Mozilla/5.0 ..."
}
FieldTypeDescription
timeoutnumberMilliseconds before request times out
maxParallelRequestsnumberMax concurrent requests
maxRequestsPerSecondnumber/falseRate limit (false = unlimited)
headersarray of objectsExtra HTTP headers
cookiesarray of objectsCookies sent with every request
userAgentstringUser-Agent string

Header object format

FieldTypeDescription
namestringHeader name
valuestringHeader value
{"name": "Accept-Language", "value": "en-US"}
FieldType
namestring
valuestring

3. Crawler

Defines how SmartScanner discovers URLs.

"crawler": {
  "scope": {...},
  "evaluteJsWithChromium": true,
  "depth": false,
  "count": 70000,
  "fileExclusion": "*.zip,*.png,...",
  "urlExclusion": ["*logout*", "*.git/+", ...]
}
FieldTypeDescription
depthnumber/falseMax levels to crawl
countnumberMax URLs to crawl
fileExclusionstringComma-separated patterns
urlExclusionarray of stringsURL exclusion patterns
evaluteJsWithChromiumbooleanRender JS pages
scopeobjectCrawl boundaries

Scope object format

"scope": {
  "crawlStartDepth": 0,
  "type": "auto",
  "scanSubDomains": false,
  "scanAbovePath": false
}
FieldTypeDescription
typestringauto or manual
crawlStartDepthnumberStarting depth
scanSubDomainsbooleanInclude subdomains
scanAbovePathbooleanAllow navigating above base path

4. Proxy

Proxies are optional. If omitted, no proxy is used.

"proxy": {
  "type": "system",
  "host": "",
  "port": 0,
  "user": "",
  "pass": ""
}
FieldTypeDescription
typestringsystem, http, or socks
hoststringProxy host/IP
portnumberPort number
userstringUsername (optional)
passstringPassword (optional)

5. Authentication

Defines authentication modes.

"authentication": {
  "manualLogin": false,
  "http": []
}
FieldTypeDescription
manualLoginbooleanUI-only manual login mode
httparray of objectsHTTP Basic Auth credentials

HTTP authentication object

FieldType
userstring
passstring

6. Form Input Rules

SmartScanner can auto-fill forms using predefined input rules.

"form": { "inputs": [ ... ] }

Input rule format

Each element is a single string using SmartScanner’s rule syntax:

<urlPattern>;;<formPattern>;;<fieldPattern>;;<fieldType>;;<value>
ComponentMeaning
urlPatternWhich URLs it applies to
formPatternForm selector
fieldPatternField name pattern
fieldTypeField type (text/password/email/etc.)
valueValue SmartScanner will input

Example:

"inputs": [
  "*;;*;;email;;*;;[email protected]",
  "*;;*;;password;;*;;Password123"
]

7. Vectors

Defines where SmartScanner injects payloads.

"vector": {
  "vectors": ["GET", "POST", "Cookie", "Header", "Path"],
  "parameterExclusion": ["*;;PHPSESSID;;Any;;*"]
}

Type: Object

FieldTypeDescription
vectorsarray of stringsAttack surfaces (GET, POST, Path, Header, Cookie)
parameterExclusionarray of stringsParameters SmartScanner should not modify

parameterExclusion rule format

<urlPattern>;;<paramName>;;<method>;;<rule>

Example:

"parameterExclusion": ["*;;PHPSESSID;;Any;;*"]

8. Technologies

Used to optimize scanning for specific server/framework/CMS technologies.

"technologies": [ ... ]

Technology object format

FieldTypeDescription
namestringTechnology name (e.g., WordPress)
pathstringWhere it is used (“” = global)

Example:

"technologies": [
  {"name": "WordPress", "path": "/blog/"}
]

9. Target

Reserved for future features.

"target": {}

Minimal Example

{
  "tests": ["HTML Parser/?crawler", "XSS"],
  "http": {"timeout": 30000},
  "crawler": {"depth": 3},
  "proxy": {"type": "system"},
  "authentication": {"http": []},
  "form": {"inputs": []},
  "vector": {"vectors": ["GET", "POST"]},
  "technologies": [],
  "target": {}
}

⚠️ Note: Other command line options might overide configurations loaded from file.

Still need help? contact us Last updated on December 01, 2025

Need more information? Feel free to ask your questions!

Ask a question