{ "info": { "author": "Alexandre D'Hondt", "author_email": "alexandre.dhondt@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Security", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "[![PyPi](https://img.shields.io/pypi/v/webgrep-tool.svg)](https://pypi.python.org/pypi/webgrep-tool/)\n![Platform](https://img.shields.io/badge/platform-linux-yellow.svg)\n[![Read The Docs](https://readthedocs.org/projects/webgrep/badge/?version=latest)](http://webgrep.readthedocs.io/en/latest/?badge=latest)\n[![Known Vulnerabilities](https://snyk.io/test/github/dhondta/webgrep/badge.svg?targetFile=requirements.txt)](https://snyk.io/test/github/dhondta/webgrep?targetFile=requirements.txt)\n[![License](https://img.shields.io/pypi/l/webgrep-tool.svg)](https://pypi.python.org/pypi/webgrep-tool/)\n\n\n## Table of Contents\n\n * [Introduction](#introduction)\n * [System Requirements](#system-requirements)\n * [Installation](#installation)\n * [Quick Start](#quick-start)\n * [Design Principles](#design-principles)\n * [Resource *Handlers*](#resource-handlers)\n * [Issues management](#issues-management)\n\n\n## Introduction\n\nThis self-contained tool relies on the well-known `grep` tool for grepping Web pages. It binds nearly every option of the original tool and also provides additional features like deobfuscating Javascript or appyling OCR on images before grepping downloaded resources.\n\n\n## System Requirements\n\nThis script was tested on an Ubuntu 16.04 with Python 2.7 and Python 3.5.\n\nIts Python logic mostly uses standard built-in modules but also some particular tool- or preprocessor-related modules. It makes calls to `grep`.\n\n\n## Installation\n\n ```session\n $ sudo pip install webgrep-tool\n ```\n\n > **Behind a proxy ?**\n > \n > Do not forget to add option `--proxy=http://[user]:[pwd]@[host]:[port]` to your pip command.\n\n\n## Quick Start\n\n1. Help\n\n ```session\n $ webgrep --help\nusage: webgrep [OPTION]... PATTERN [URL]...\n\nSearch for PATTERN in each input URL and its related resources\n (images, scripts and style sheets).\nBy default,\n - resources are NOT downloaded\n - response HTTP headers are NOT included in grepping ; use '--include-headers'\n - PATTERN is a basic regular expression (BRE) ; use '-E' for extended (ERE)\nImportant note: webgrep does not handle recursion (in other words, it does not\n spider additional web pages).\nExamples:\n webgrep example http://www.example.com # will only grep on HTML code\n webgrep -r example http://www.example.com # will only grep on LOCAL images, ...\n webgrep -R example http://www.example.com # will only grep on ALL images, ...\n\nRegexp selection and interpretation:\n -e REGEXP, --regexp REGEXP\n use PATTERN for matching\n -f FILE, --file FILE obtain PATTERN from FILE\n -E, --extended-regexp\n PATTERN is an extended regular expression (ERE)\n -F, --fixed-strings PATTERN is a set of newline-separated fixed strings\n -G, --basic-regexp PATTERN is a basic regular expression (BRE)\n -P, --perl-regexp PATTERN is a Perl regular expression\n -i, --ignore-case ignore case distinctions\n -w, --word-regexp force PATTERN to match only whole words\n -x, --line-regexp force PATTERN to match only whole lines\n -z, --null-data a data line ends in 0 byte, not newline\n\nMiscellaneous:\n -s, --no-messages suppress error messages\n -v, --invert-match select non-matching lines\n -V, --version print version information and exit\n --help display this help and exit\n --verbose verbose mode\n --keep-files keep temporary files in the temporary directory\n --temp-dir TMP define the temporary directory (default: /tmp/webgrep)\n\nOutput control:\n -m NUM, --max-count NUM\n stop after NUM matches\n -b, --byte-offset print the byte offset with output lines\n -n, --line-number print line number with output lines\n --line-buffered flush output on every line\n -H, --with-filename print the file name for each match\n -h, --no-filename suppress the file name prefix on output\n --label LABEL use LABEL as the standard input filename prefix\n -o, --only-matching show only the part of a line matching PATTERN\n -q, --quiet, --silent\n suppress all normal output\n --binary-files TYPE assume that binary files are TYPE;\n TYPE is 'binary', 'text', or 'without-match'\n -a, --text equivalent to --binary-files=text\n -I equivalent to --binary-files=without-match\n -L, --files-without-match\n print only names of FILEs containing no match\n -l, --files-with-match\n print only names of FILEs containing matches\n -c, --count print only a count of matching lines per FILE\n -T, --initial-tab make tabs line up (if needed)\n -Z, --null print 0 byte after FILE name\n\nContext control:\n -B NUM, --before-context NUM\n print NUM lines of leading context\n -A NUM, --after-context NUM\n print NUM lines of trailing context\n -C NUM, --context NUM\n print NUM lines of output context\n\nWeb options:\n -r, --local-resources\n also grep local resources (same-origin)\n -R, --all-resources also grep all resources (even non-same-origin)\n --include-headers also grep HTTP headers\n --cookie COOKIE use a session cookie in the HTTP headers\n --referer REFERER provide the referer in the HTTP headers\n\nProxy settings (by default, system proxy settings are used):\n -d, --disable-proxy manually disable proxy\n --http-proxy HTTP manually set the HTTP proxy\n --https-proxy HTTPS manually set the HTTPS proxy\n\nPlease report bugs on GitHub: https://github.com/dhondta/webgrep\n\n ```\n \n2. Example\n\n ```session\n $ ./webgrep -R Welcome https://github.com\n Welcome home,
developers\n \n ```\n\n\n## Design principles:\n\n- Maximum use of Python-builtin modules.\n- For non-standard imports ;\n - trigger exit if not installed and display the command for installing these\n - do not trigger exit if not installed, display the command for installing these and continue execution without the related functionality\n- No modularity (principle of self-contained tool) so that it can simply be copied in `/usr/bin` with dependencies other than the non-standard imports.\n\n\n## Resource *Handlers*\n\n**Definitions**:\n- *Resource* (what is being processed): Web page, images, Javascript, CSS\n- *Handler* (how a resource is processed): CSS unminifying, OCR, deobfuscation, EXIF data retrieval, ...\n\nThe handlers are defined in the `# --...-- HANDLERS SECTION --...--` of the code. Currently available handlers :\n1. Images\n - EXIF: using `exiftool`\n - Steganography: using `steghide` (with a blank password)\n - Strings: using `strings`\n - OCR: using `tesseract`\n2. Scripts\n - Javascript beautifying and deobfuscation: using `jsbeautifier`\n3. Styles\n - Unminifying: using regular expressions\n\nNote: images found in the CSS files are also processed.\n\n\n## Issues management\n\nPlease [open an Issue](https://github.com/dhondta/webgrep/issues/new) if you want to contribute or submit suggestions. \n\nIf you want to build and submit new handlers, please open a Pull Request.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dhondta/webgrep", "keywords": "grep,webpage,js-deobfuscator,css-unminifier,exif-metadata,ocr,steghide", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "webgrep-tool", "package_url": "https://pypi.org/project/webgrep-tool/", "platform": "", "project_url": "https://pypi.org/project/webgrep-tool/", "project_urls": { "Homepage": "https://github.com/dhondta/webgrep" }, "release_url": "https://pypi.org/project/webgrep-tool/1.13/", "requires_dist": null, "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,<4", "summary": "Web page Grep-like tool with additional features like JS deobfuscation and easy extensibility", "version": "1.13" }, "last_serial": 4550404, "releases": { "1.10": [ { "comment_text": "", "digests": { "md5": "6ee0889e070a6626d63f19e2ba1112c0", "sha256": "fbbe629d2bd763a322c212dceb8a227073b5c281a58f86edb8af9d2b703e31c4" }, "downloads": -1, "filename": "webgrep-tool-1.10.tar.gz", "has_sig": false, "md5_digest": "6ee0889e070a6626d63f19e2ba1112c0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25662, "upload_time": "2018-03-04T14:16:45", "url": "https://files.pythonhosted.org/packages/7d/f1/eaa6419a177a34900625d2332cba298bced5041d9ab8e808cee291f2b262/webgrep-tool-1.10.tar.gz" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "26c163044b4e1a45bb9988a618859244", "sha256": "e4955c6774f5089c3af79b4e36e803f9e35616f8353dcf470fd6ae8d5eef7a20" }, "downloads": -1, "filename": "webgrep-tool-1.11.tar.gz", "has_sig": false, "md5_digest": "26c163044b4e1a45bb9988a618859244", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 26024, "upload_time": "2018-03-04T16:40:40", "url": "https://files.pythonhosted.org/packages/f9/de/453c3e9808b5c52845661f09bdfe21735dfdeaaaa2543e0c612c4f5c607a/webgrep-tool-1.11.tar.gz" } ], "1.12": [ { "comment_text": "", "digests": { "md5": "317d3a8da5499f0e741becd60429e173", "sha256": "814193b9db0f10de28a239698fb7acaebb1f6d32139130a5c51b1825d3ff5534" }, "downloads": -1, "filename": "webgrep-tool-1.12.tar.gz", "has_sig": false, "md5_digest": "317d3a8da5499f0e741becd60429e173", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 26115, "upload_time": "2018-03-04T17:36:14", "url": "https://files.pythonhosted.org/packages/18/57/53c0ea90da06b9264aba3436f59869e4ede592788e0bc6107f36304f71e7/webgrep-tool-1.12.tar.gz" } ], "1.13": [ { "comment_text": "", "digests": { "md5": "81d468d95cefe28497a6d72bfea9fea4", "sha256": "c8190ab838f118d273d9ccecd7ab3847fe08f3d929f777a19005128e60bf0b54" }, "downloads": -1, "filename": "webgrep-tool-1.13.tar.gz", "has_sig": false, "md5_digest": "81d468d95cefe28497a6d72bfea9fea4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,<4", "size": 29656, "upload_time": "2018-12-01T14:41:00", "url": "https://files.pythonhosted.org/packages/41/d1/4c0ee59b9a624a2b544e279d48d77f99aeedc1406cd5e3531b8ea47aee1c/webgrep-tool-1.13.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "ce0f4c99da8a486f4be31ce90103d86b", "sha256": "ebfc215b2d639d9b62dfdc2ea609ec6dc007e9213c02d9521f1b15ecbac6868f" }, "downloads": -1, "filename": "webgrep-tool-1.2.tar.gz", "has_sig": false, "md5_digest": "ce0f4c99da8a486f4be31ce90103d86b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 24380, "upload_time": "2017-11-20T22:22:38", "url": "https://files.pythonhosted.org/packages/53/17/02a686568a3b46829cfd967d6893575c767acf0bcea1c45aa6e1f54ea649/webgrep-tool-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "00d3aa3a2d31bf95a0eb83801ff3d77b", "sha256": "9bd7539fb2a68588e084441ab37a0c49f46523463a8d8e391dd0bf843d810969" }, "downloads": -1, "filename": "webgrep-tool-1.3.tar.gz", "has_sig": false, "md5_digest": "00d3aa3a2d31bf95a0eb83801ff3d77b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25165, "upload_time": "2018-02-10T14:49:07", "url": "https://files.pythonhosted.org/packages/e4/62/4f10fd4387bf62f60a6caa06a25e97a1359b7cf0025ac60d4ca7efa4988e/webgrep-tool-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "7baa2b7f191dc986566d5748ae91def1", "sha256": "3402bba67e15f16c3378522b0705bbe91dbcfbd90f02eab0ef0510a13d09d106" }, "downloads": -1, "filename": "webgrep-tool-1.4.tar.gz", "has_sig": false, "md5_digest": "7baa2b7f191dc986566d5748ae91def1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25159, "upload_time": "2018-02-10T15:05:47", "url": "https://files.pythonhosted.org/packages/bb/66/6c86b1ac13e7955bf823f1785887b183dacf70fa11f03fb504bf927d51a0/webgrep-tool-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "9f121e47fd224b6c46dacb1accf62d34", "sha256": "294c2f6d1ac96f825273c9462c83fa4afcdb62fbbddc4d05efa876abb083735c" }, "downloads": -1, "filename": "webgrep-tool-1.5.tar.gz", "has_sig": false, "md5_digest": "9f121e47fd224b6c46dacb1accf62d34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25149, "upload_time": "2018-02-10T15:15:36", "url": "https://files.pythonhosted.org/packages/e3/d8/5d2a2cf87105e988aae632704ea1d3637ee3e253d4be218480281e4a617b/webgrep-tool-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "a314cbc0114d8cd875530f01d7dfc593", "sha256": "f410a9e9d612f4e901835d42721481aca9fcd76a30fd423cd9201bcdb01e7262" }, "downloads": -1, "filename": "webgrep-tool-1.6.tar.gz", "has_sig": false, "md5_digest": "a314cbc0114d8cd875530f01d7dfc593", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25160, "upload_time": "2018-02-10T15:29:59", "url": "https://files.pythonhosted.org/packages/e2/d8/cdad2ba2a5ff7f4f255096d88f2ec46e4572ff8a3fd5da6bd22e8ad7d96f/webgrep-tool-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "6aa8f80a550ea482fe60ba23fc8864c9", "sha256": "32d6b654aaa9eed2bacb50756a159a5eaa7d7905b94d015a0a101d2354cb1a2b" }, "downloads": -1, "filename": "webgrep-tool-1.7.tar.gz", "has_sig": false, "md5_digest": "6aa8f80a550ea482fe60ba23fc8864c9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25419, "upload_time": "2018-03-03T17:53:06", "url": "https://files.pythonhosted.org/packages/8d/93/dce4d29c7b97578760c6ca56700349465019627265a4103a9a0133f1379a/webgrep-tool-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "c5c9ddb5c9d1ec918c504025aad65a49", "sha256": "f1798ce7e89c27ba4318df011919694b3f5547cb698bd285990f62b7759f8567" }, "downloads": -1, "filename": "webgrep-tool-1.8.tar.gz", "has_sig": false, "md5_digest": "c5c9ddb5c9d1ec918c504025aad65a49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25458, "upload_time": "2018-03-04T10:45:07", "url": "https://files.pythonhosted.org/packages/e6/01/a4159cf30cd85f492bf06be2734546c2dc9f41159355ea24599b27d9d9a0/webgrep-tool-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "aaa51412db62b1e1e795f45df1626569", "sha256": "dba03fa19e412de3e442c683a9fe4155dfc07051dda07089798834a67beae4e6" }, "downloads": -1, "filename": "webgrep-tool-1.9.tar.gz", "has_sig": false, "md5_digest": "aaa51412db62b1e1e795f45df1626569", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4", "size": 25452, "upload_time": "2018-03-04T11:08:00", "url": "https://files.pythonhosted.org/packages/76/d3/22ba493950be0c619e3dd4974d73bc35f7ceee93ff923c9a203681eea1f3/webgrep-tool-1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "81d468d95cefe28497a6d72bfea9fea4", "sha256": "c8190ab838f118d273d9ccecd7ab3847fe08f3d929f777a19005128e60bf0b54" }, "downloads": -1, "filename": "webgrep-tool-1.13.tar.gz", "has_sig": false, "md5_digest": "81d468d95cefe28497a6d72bfea9fea4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,<4", "size": 29656, "upload_time": "2018-12-01T14:41:00", "url": "https://files.pythonhosted.org/packages/41/d1/4c0ee59b9a624a2b544e279d48d77f99aeedc1406cd5e3531b8ea47aee1c/webgrep-tool-1.13.tar.gz" } ] }