Wapiti is a web application security auditor. This version requires Python 2.4 or superior with the urllib2 module. The cookielib module is required if you want to use cookies. Wapiti works as a black box vulnerability scanner, that means it won't study the source code of web applications but will work like a fuzzer, scanning the pages of the deployed web application, extracting links and forms and attacking the scripts looking for error messages or some special strings. It supports the following attacks : + Database Injection (PHP/ASP/JSP SQL Injections and XPath Injections) + Cross Site Scripting (XSS) + Bad File Handling detection (local and remote include, require, fopen, readfile...) + LDAP Injection + Command Execution detection (eval(), system(), passtru()...) + CRLF Injection It support both GET and POST HTTP methods, warns when an upload form is found and make the difference beetween permanent and pontual XSS vulnerabilities. A warning is also issued when a HTTP 500 code is returned (useful for ASP/IIS) You can use cookies to access members areas. You can exclude urls from the scan. Wapiti use a web spider library I made called lswww. Wapiti and lswww use the Python programming language with its common modules. The HTMLParser module from Python only works with well formated html pages. It's VERY IMPORTANT you keep that in mind. A lot of webapps and websites use bad html code, making lswww useless. BUT we can use the Tidy library to clean up the html so the scan will be far more efficient. Wapiti will give very good results if you install the following applications : Tidy - http://tidy.sourceforge.net/ ctypes - http://starship.python.net/crew/theller/ctypes/ uTidyLib - http://utidylib.berlios.de/ On Debian Etch can be done like this : aptitude install tidy python-utidylib python-ctypes python-pullparser python-clientcookie python-urlgrabber French people can go to the following page for more information : http://devloop.lyua.org/blog/index.php?2006/04/26/246-howto-faire-fonctionner-efficacement-lswww Since version 1.1.6, Wapiti comes with BeautifulSoup. It's not as powerful as tidy but it's good to have it. To find more vulnerabilities you can modify your PHP configuration to : safe_mode = Off display_errors = On (recommended) magic_quotes_gpc = Off allow_url_fopen = On Files : wapiti.py - fuzzer lswww.py - webspider getcookie.py - interactive tool to send data to a login page and get the cookie cookie.py - command line tool to send data to a form and get the cookie BeautifulSoup.py - a Python HTML/XML parser To get help : python wapiti.py -h http://wapiti.sourceforge.net/ An article about PHP Upload security (in french) : http://devloop.lyua.org/blog/index.php?2006/07/19/289-php-les-dangers-des-scripts-dupload