Second-Order is a Scans web applications for second-order subdomain takeover by crawling the app, and collecting URLs (and other data) that match certain rules, or respond in a certain way.
Download a prebuilt binary from the releases page and unzip it.
Go version 1.17 is recommended
go install -v github.com/mhmdiaa/second-order@latest
Docker
docker pull mhmdiaa/second-order
Command line options
-target string
Target URL
-config string
Configuration file (default “config.json”)
-depth int
Depth to crawl (default 1)
-header value
Header name and value separated by a colon ‘Name: Value’ (can be used more than once)
-insecure
Accept untrusted SSL/TLS certificates
-output string
Directory to save results in (default “output”)
-threads int
Number of threads (default 10)
Configuration File
Example configuration files are in config
LogQueries: A map of tag-attribute queries that will be searched for in crawled pages. For example, "a": "href" means log every href attribute of every a tag.LogNon200Queries: A map of tag-attribute queries that will be searched for in crawled pages, and logged only if they contain a valid URL that doesn’t return a 200 status code.LogInline: A list of tags whose inline content (between the opening and closing tags) will be logged, like title and scriptAll results are saved in JSON files that specify what and where data was found
LogQueries are saved in attributes.json{
“https://example.com/”: {
“input[name]”: [
“user”,
“id”,
“debug”
]
}
}
The results of LogNon200Queries are saved in non-200-url-attributes.json
{
“https://example.com/”: {
“script[src]”: [
“https://cdn.old_abandoned_domain.com/app.js”,
]
}
}
The results of LogInline are saved in inline.json
{
“https://example.com/”: {
“title”: [
“Example – Home”
]
},
“https://example.com/login”: {
“title”: [
“Example – login”
]
}
}
Usage Ideas
This is a list of tips and ideas (not necessarily related to second-order subdomain takeover) on what to use Second Order for.
<input> names to build a tailored parameter bruteforcing wordlist: parameters.json.phpMyAdmin is a free, open-source PHP application that provides a browser-based interface for managing MySQL and…
Zabbix is a mature open-source infrastructure monitoring platform that collects metrics from network devices, servers, virtual…
Gradle is a powerful open-source build automation tool used primarily for Java, Kotlin, Groovy, and Android…
TeamViewer is a proprietary cross-platform remote access application for remote control, desktop sharing, file transfer, and online meetings. It is one of the most widely used remote support tools in the world, available for Windows, macOS, Linux, iOS, and Android. TeamViewer is not included in the Ubuntu repositories because it is proprietary software. This guide covers how to install TeamViewer on Ubuntu 18.04 using the official .deb package. The same steps apply to Ubuntu 16.04, Debian, Linux Mint, and Elementary OS. <strong>Prerequisite:</strong> You need sudo access. Install TeamViewer on Ubuntu: Download the .deb Package Download the official TeamViewer .deb package. The _amd64.deb suffix indicates this package is for 64-bit x86-64 systems. For ARM-based machines, download the appropriate package from the TeamViewer Linux downloads page: bashwget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb Install the package using apt. The ./ prefix tells apt this is a local file path, not a package name from the repositories:…
Nagios is one of the most widely used open-source infrastructure monitoring systems in the world. It…
Laravel is an open-source PHP web application framework built around an expressive, developer-friendly syntax. It is…