Skip to main content

Tools for web analysis

Here are some of my favorite tools I use to analyse web applications and their security.

Wappalyzer

Wappalyzer is great tool to identify used technologies on websites. There are many options how to use this tool. The easiest way is to use their browser extension for wide range of browsers.

Check out their list of extensions to find the extension for your favorite browser.

Moz://a HTTP Observatory

HTTP Observatory is an online tool developed by Mozilla to test the state of security for websites on public internet.

You can access it publicly on project website: observatory.mozilla.org.

This tool can help you analyse raw headers and gives you recommendation for hardening your webserver using various directives. While it's great tool to find vulnerabilities of your webserver, it's advised to be cautious and perform extensive testing when implementing some of the headers, since it can break some of the functionality of the website.

CSP Evaluator

If you decide to harden your webserver using Content-Security-Policy (CSP) header tag, you can find CSP Evaluator useful. This tool can help you check and evaluate CSP as well as find some examples of safe settings.

The tool is free and it is available at csp-evaluator.withgoogle.com

SSL Test

Great tool for testing quality and security of your site's certificate and configuration is SSL Server Test from Qualys SSL Labs.

You can access this tool online on ssllabs.com/ssltest/.

This tool will give you certificate rating as well as some recommendation to improve the security of your website if necessary.

DNSSEC Analyzer

Another free useful tool for analysing security of website, most precisely of the DNS settings, is DNSSEC Analyzer by VeriSign.

The tool can be easily accessed via browser on dnssec-debugger.verisignlabs.com.

Just type in your domain name and hit enter to see if the DNSSEC chain is fully working on your domain. If not, consult your setting with your domain registrat to set up DNSSEC for your domain correctly.

PageSpeed Insights

Following tool is not focused on security but rather on website's performance. You can access the tool via website pagespeed.web.dev or in Chromium based browser it's integrated in development tools under the name Lighthouse.

I prefer to use the website tool, since it checks desktop and mobile version of the website simultaneously. But with Lighthouse you can make some adjustments of the test setting so it can be convenient to use it while developing new website.

CURL

CURL is powerful terminal utility which main purpose is to non-interactively download files and/or access APIs from terminal. Tool have many options to interact with website. Here will be discussed how to use it for headers analysis and health check.

How to install it

First of all, to use this tool you need to install it. It is available for most of the common Linux/Unix distros as well MacOS and Windows.

To install it on debian-based distribution use command: apt-get install curl

To install it on RPM-based distribution use command: yum install curl

To install it on MacOS use brew.sh: brew install curl

If you are on Windows 10, version 1803 or later, your OS ships with a copy of curl, already set up and ready to use.

How to use it

Basic command structure is following:

Usage: curl [options...] <url>
-d, --data <data> HTTP POST data
-f, --fail Fail fast with no output on HTTP errors
-h, --help <category> Get help for commands
-i, --include Include protocol response headers in the output
-o, --output <file> Write to file instead of stdout
-O, --remote-name Write output to a file named as the remote file
-s, --silent Silent mode
-T, --upload-file <file> Transfer local FILE to destination
-u, --user <user:password> Server user and password
-A, --user-agent <name> Send User-Agent <name> to server
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit

To check all headers we can use the command with following options:

curl -Is https://bndkt.info

If we want to use it only for health check we can omit most of the headers:

curl -Is https://bndkt.info | head -n 1