{ "info": { "author": "Sebastian Lopienski", "author_email": "sebastian.lopienski@cern.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: Security" ], "description": "WAD - Web application detector\n==============================\n\n|Build Status| |PyPI|\n\nWAD lets you analyze given URL(s) and detect technologies used by web\napplication behind that URL, from the OS and web server level, to the\nprogramming platform and frameworks, as well as server- and client-side\napplications, tools and libraries.\n\nFor example, results of scan of server might include:\n\n- OS: Windows, Linux...\n- Web server: Apache, Nginx, IIS...\n- Programming platform: PHP, Python, Ruby, Java...\n- Content management systems: Drupal, WordPress...\n- Frameworks: AngularJS, Ruby on Rails, Django...\n- various databases, analytics tools, javascript libaries, CDNs,\n comment systems, search engines and many others.\n\nHow it works\n------------\n\nWAD is built as a standalone application, using\n`Wappalyzer `__'s detection\nrules. It sends a GET request to the given URL and analyzes both HTTP\nresponse header and body (HTML page), looking for indications to\ndiscover web technologies used.\n\nDetection results may include information about versions of technologies\nused, for example Linux distro or Apache version. Results are\ncategorized depending on type of technology (whether it is CMS or\ndatabase etc.). There are now over 700 technologies that can be\ndiscovered using WAD.\n\nInstallation\n------------\n\n`WAD is available via PyPI `__, so in\norder to install it, you simply need to run following command:\n\n``pip install wad``\n\nUsage\n-----\n\nUse ``wad -h`` to print help text. JSON is used by default for\nformatting output data, but you can also use other formats with -f\noption. ### Example usage scenario Command:\n``wad -u https://pypi.python.org/``\n\nOutput:\n\n::\n\n {\n \"https://pypi.python.org/pypi\": [\n {\n \"type\": \"cache-tools\", \n \"app\": \"Varnish\", \n \"ver\": null\n }, \n {\n \"type\": \"web-servers\", \n \"app\": \"Nginx\", \n \"ver\": \"1.6.2\"\n }\n ]\n }\n\nDifferences between WAD and Wappalyzer\n--------------------------------------\n\nAlthough most of the rules matching functionality is simply a Python\nport of Wappalyzer's javascript implementation, there are some key\ndifferences between projects.\n\nFirst of all, Wappalyzer (as an extension) runs on top of web browser,\nwhich means that the scripts on scanned site were ran, so variables and\nobjects are created and accessible. Unfortunately, this isn't and won't\nbe a case for WAD. WAD parses raw site content (as delivered by HTTP\nresponse), without running it in browser context. The consequences of\nthat are simple - we can't use Wappalyzer's rules, that search for\nvariables and objects in Javascript environment.\n\nSecondly, the project has and will continue to naturally diverge from\nWappalyzer's codebase. We don't aim to make one-to-one port of\nWappalyzer project and with intention to move to BeautifulSoup as DOM\ninspector (instead of blindly parsing the website with regex), we won't\nbe able to assure same behaviour in every case.\n\nFinally, additional features added into WAD project aren't ported into\nWappalyzer at the same time.\n\nChangelog\n---------\n\n0.3.4 (2015-08-25)\n~~~~~~~~~~~~~~~~~~\n\n- Added additional\\_checks method, that allows further customization of\n Detector class\n\n0.3.3 (2015-08-17)\n~~~~~~~~~~~~~~~~~~\n\n- Fixed bug causing crash on SSL certificate mismatch in Python >=\n 2.7.9\n\n0.3.2 (2015-08-17)\n~~~~~~~~~~~~~~~~~~\n\n- Fixed bug causing detection of Perl if the website had Polish (.pl)\n top-level domain\n- Tests refactoring (duplicate code into method)\n\n0.3.1 (2015-08-17)\n~~~~~~~~~~~~~~~~~~\n\n- Package should be thread-safe now\n- Minor changes to HumanReadableOutput\n\n0.3.0 (2015-08-13)\n~~~~~~~~~~~~~~~~~~\n\n- Added results grouping functionality\n\n0.2.0 (2015-08-10)\n~~~~~~~~~~~~~~~~~~\n\n- Multiple output formats (added Human readable text, CSV)\n- Some methods extracted from Detector's detect method.\n- Minor bugfixes\n\n.. |Build Status| image:: https://travis-ci.org/CERN-CERT/WAD.svg?branch=master\n :target: https://travis-ci.org/CERN-CERT/WAD\n.. |PyPI| image:: https://img.shields.io/pypi/v/wad.svg\n :target: https://pypi.python.org/pypi/wad\n\n\nAuthors\n~~~~~~~\n\n(Hopefully complete) list of people who contributed to this project:\n\n- Sebastian \u0141opie\u0144ski\n- Piotr Lizo\u0144czyk\n- Vincent Brillaut\n- Farzaneh Moghaddam\n- Antonio Perez Perez\n- Dame Jovanoski\n\nSpecial thanks to Elbert Alias, the author of Wappalyzer.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CERN-CERT/WAD", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "wad", "package_url": "https://pypi.org/project/wad/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/wad/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/CERN-CERT/WAD" }, "release_url": "https://pypi.org/project/wad/0.3.4/", "requires_dist": null, "requires_python": null, "summary": "A tool for detecting technologies used by web applications.", "version": "0.3.4" }, "last_serial": 1692674, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "83467a2c9362709de010ac61d88817e2", "sha256": "550b2ec88c3f33ea2ca06e66f7d1e61c0ff0feedfedb21a06b72dce86bb3e65c" }, "downloads": -1, "filename": "wad-0.1.1.tar.gz", "has_sig": false, "md5_digest": "83467a2c9362709de010ac61d88817e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64023, "upload_time": "2015-08-04T13:44:21", "url": "https://files.pythonhosted.org/packages/5b/b3/acb8ca51de97b1b3bac67cacf96e7942fc502f0bc8b829ea337a9fbd52de/wad-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "8f266b5b006009899bf36ae8ddcfecba", "sha256": "a40d03630dc2b19f794183465699377cc45afcf4f48ef530332bb5edc32917c5" }, "downloads": -1, "filename": "wad-0.1.2.tar.gz", "has_sig": false, "md5_digest": "8f266b5b006009899bf36ae8ddcfecba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64473, "upload_time": "2015-08-05T12:47:28", "url": "https://files.pythonhosted.org/packages/37/3c/2f9d4098f62cd6e46c5fdb5678b179a3e64f58a550b168df70a414bb6479/wad-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9a6f1b663f29839b8dccc1d40175aea5", "sha256": "9b8f0f29f0e62351ba4f65716583b9d133a224346e9d5c80527538744ec4d797" }, "downloads": -1, "filename": "wad-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9a6f1b663f29839b8dccc1d40175aea5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67859, "upload_time": "2015-08-10T14:41:37", "url": "https://files.pythonhosted.org/packages/a7/dd/82a247d3252afbd440dfcdf462ff92e43989fff766623d75a65a74aa2670/wad-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "631dc94dd4e1c65c5d7e9a3911155078", "sha256": "573e14cad49b15efd926a6072c2e24711fc474160d49c0120a5fd03268e039c6" }, "downloads": -1, "filename": "wad-0.3.0.tar.gz", "has_sig": false, "md5_digest": "631dc94dd4e1c65c5d7e9a3911155078", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69128, "upload_time": "2015-08-13T11:46:56", "url": "https://files.pythonhosted.org/packages/af/ac/a27a5c97878053536c2acacfae858b75154e6b7476eb81a50d9d7be0e396/wad-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b2967f9955fedd5ccf08728fea38e1d0", "sha256": "19101823b90e99ce23c7cb2a3066b2b1bbd46a26685905a6829e6adc6499f1f3" }, "downloads": -1, "filename": "wad-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b2967f9955fedd5ccf08728fea38e1d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69235, "upload_time": "2015-08-17T13:19:14", "url": "https://files.pythonhosted.org/packages/07/ae/93f74a6e59048fe7b386850bd466f6621144f6fa0cc7d5e4a15e149c3114/wad-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "2cf811a314ea3f8b21c55e029123257c", "sha256": "1b60b5be88ed5dab45e36fbd19782bc36db29847fb5ca2f14792924478a251f0" }, "downloads": -1, "filename": "wad-0.3.2.tar.gz", "has_sig": false, "md5_digest": "2cf811a314ea3f8b21c55e029123257c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69666, "upload_time": "2015-08-17T15:03:41", "url": "https://files.pythonhosted.org/packages/41/53/6c61c182a0498f50c29276cd949270ad7d48893b6013cfed3bad293ebc02/wad-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "5d26b12f02f85fe9095d8062357bc3e7", "sha256": "cf8b9c1b850c926310a6d75c567f7e98f31be47a7afdfe78e14a9642826f9b7a" }, "downloads": -1, "filename": "wad-0.3.3.tar.gz", "has_sig": false, "md5_digest": "5d26b12f02f85fe9095d8062357bc3e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69781, "upload_time": "2015-08-17T15:25:37", "url": "https://files.pythonhosted.org/packages/7f/e6/d278220316e0e4407c3ebb07abfab6aa263215f549fd65b938b91b9af2e9/wad-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "35ae5868aff5a2ed2816311f6b5529ae", "sha256": "4903c5c546293534f67b4c989a9b5ed82814facf3f6c262a2188862692f72b2f" }, "downloads": -1, "filename": "wad-0.3.4.tar.gz", "has_sig": false, "md5_digest": "35ae5868aff5a2ed2816311f6b5529ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69979, "upload_time": "2015-08-25T10:15:46", "url": "https://files.pythonhosted.org/packages/ec/ca/4e3c5a9d60347c85b94bdad564019a992120445a2bed91b0c691aeb02310/wad-0.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "35ae5868aff5a2ed2816311f6b5529ae", "sha256": "4903c5c546293534f67b4c989a9b5ed82814facf3f6c262a2188862692f72b2f" }, "downloads": -1, "filename": "wad-0.3.4.tar.gz", "has_sig": false, "md5_digest": "35ae5868aff5a2ed2816311f6b5529ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69979, "upload_time": "2015-08-25T10:15:46", "url": "https://files.pythonhosted.org/packages/ec/ca/4e3c5a9d60347c85b94bdad564019a992120445a2bed91b0c691aeb02310/wad-0.3.4.tar.gz" } ] }