Websites are getting more and more complex everyday and there are almost no static websites being built.
Today, the simplest website has at least a contact or newsletter form and many are built with CMS systems or it may be using 3rd party plugins, services, etc. that we don't have an exact control over.
Even if the website is 100% hand-coded, we trust what we created and think that it is safe, it is still possible that a special character is not sanitized or we are not aware of a new attacking technique.
So, it is really hard to say "my website is safe" without running tests over it. The good part is there are powerful and free web application security testing tools which can help you to identify any possible holes.
Before presenting them, let's remind the classic: "something can be secure as only as its weakest link" (which also tells us that it is not always the application and can still be the server it is hosted or that easy to remember FTP password).
Netsparker Community Edition (Windows)
This is the free-community edition of the powerful Netsparker which still comes with a bunch of features and also false-positive-free.
The application can detect SQL Injection + cross-site scripting issues.
Once a scan is complete, it displays the solutions besides the issues and enables you to see the browser view and HTTP request/response.
Websecurify (Windows, Linux, Mac OS X)
Websecurify is a very easy-to-use and open source tool which automatically identifies web application vulnerabilities by using advanced discovery and fuzzing technologies.
It can create simple reports (that can be exported into multiple formats) once ran.
The tool is also multilingual and extensible with the add-on support.
Wapiti (Windows, Linux, Mac OS X)
Wapiti is an open source and web-based tool that scans the web pages of the deployed web applications, looking for scripts and forms where it can inject data.
It is built with Python and can detect:
- File handling errors (Local and remote include/require, fopen, readfile…)
- Database, XSS, LDAP and CRLF injections (HTTP response splitting, session fixation…)
- Command execution detection (eval(), system(), passtru()…)
N-Stalker Free Version (Windows)
The free edition performs restricted-yet-still-powerful set of web security assessment checks compared to the paid versions of the application.
It can check up to 100 web pages at once including web server and cross-site scripting checks.
skipfish (Windows, Linux, Mac OS X)
skipfish is a fully automated and active web application security reconnaissance tool.
It is lightweight and pretty fast (can perform 2000 requests/second).
The application has automatic learning capabilities, on-the-fly wordlist creation and form autocompletion.
skipfish comes with low false positive, differential security checks which are capable of spotting a range of subtle flaws, including blind injection vectors.
Scrawlr (Windows)
Scrawlr is a free software for scanning SQL injection vulnerabilities on your web applications.
It is developed by HP Web Security Research Group in coordination with Microsoft Security Response Center.
Watcher (Windows)
It is a plugin for Fiddler (the awesome HTTP debugging proxy) and works as a passive-analysis tool for HTTP-based web applications.
Watcher runs silently in the background and interact with the web-application to apply 30+ tests (where new ones can be added) while you browse.
It will identify issues like cross-domain form POSTs, dangerous context-switching between HTTP and HTTPS, etc.
x5s (Windows)
x5s is again a plugin for Fiddler just like Watcher which is designed to find encoding and character transformation issues that can lead to XSS vulnerability.
It simply tests user-controlled input using special characters like <, >, ', and reviews how the output encodes the special characters.
Exploit-Me (Windows, Linux, Mac OS X)
Rather than using a proxy like most of the security testing tools, Exploit-Me directly integrates into Firefox.
It is a set of 3 add-ons:
- XSS-Me: for testing reflected XSS vulnerabilities
- SQL Inject Me: for testing SQL injection vulnerabilities
- Access-Me: for testing access vulnerabilities
They are all lightweight , work while you browse websites and simply inform you by adding extra styles to the objects with vulnerabilities
WebScarab (Windows, Linux, Mac OS X)
WebScarab is actually a proxy to sniff the HTTP(s) traffic and manipulate it.
However, it comes with features like "parameter fuzzer (for testing XSS and SQL injection vulnerabilities), or "CRLF injection (HTTP response splitting)" and more.
Acunetix Free Version (Windows)
This is the free and limited-featured version of a paid/pro product.
It performs a check on any website and identifies cross site scripting (XSS) vulnerabilities.
And, if you are looking to improve yourself in the area of web application security and need to play with an application legally, there is DVWA (damn vulnerable web app.) which is there for just this purpose.