关于WWWGrep
WWWGrep是一款针对HTML安全的工具,该工具基于快速搜索“grepping”机制实现其功能,并且可以按照类型检查HTML元素,并允许执行单个、多个或递归搜索。Header名称和值同样也可以通过这种方式实现递归搜索。
功能介绍
- 使用递归选项在目标站点上搜索名为“username”或“password”的输入字段,快速定位登录页面。
- 快速检查Header以了解特定技术的使用情况。
- 通过搜索响应Header快速定位Cookie和JWT令牌。
- 与代理工具一起使用可通过一组链接快速自动执行递归。
- 通过搜索输入字段和参数处理符号,找到页面(或站点)上的所有输入接收器。
- 在页面上找到所有开发人员注释,以识别注释掉的代码(或待办事项)。
- 快速查找网页中存在的易受攻击的JavaScript代码。
- 识别页面代码中存在的API令牌和访问密钥。
- 快速测试管理下的多个站点是否使用了易受攻击的代码。
- 快速测试管理下的多个站点是否使用了易受攻击的框架/技术。
- 查找可能共享公共代码库的站点,以确定缺陷/漏洞的影响。
- 查找共享公共身份验证令牌(Header身份验证令牌)的站点。
- 其它功能...
工具安装
广大研究人员可以使用下列命令将该项目源码克隆至本地,并安装好相关的依赖组件:
- git clone https://github.com/OWASP/wwwgrep.git
- pip3 install -r requirements.txt
- python3 wwwgrep.py <arguments and parameters>
依赖组件(pip3 install -r requirements.txt)
- - Python 3.5+
- - BeautifulSoup 4
- - UrlLib.parse
- - requests_html
- - argparse
- - requests
- - re
- - os.path
命令行选项
- wwwgrep.py [target/file] [search_string] [search params/criteria/recursion etc]
- Search Inputs
- search_string 指定要搜索的字符串,或者为搜索参数中指定类型的所有对象指定“”
- -t --target 指定单个URL作为搜索的目标
- -f --file 指定包含要搜索的URL列表的文件
- Recursion
- -rr --recurse-root 将URL递归限制到目标中提供的域
- -ra --recurse-any 允许递归扩展到目标域之外
- Matching Criteria
- -i --ignore-case 执行不区分大小写的匹配(默认为按大小写)
- -d --dedupe 允许每页有重复的结果(默认为消除重复的结果)
- -r --no-redirects 不允许重定向(默认为允许重定向)
- -b --no-base-url 从输出中省略匹配的URL(默认情况下包括URL)
- -x --regex 允许使用正则表达式匹配项(搜索字符串被视为正则表达式,默认值为off)
- -e --separator 指定和输出说明符(默认值为:)
- -j --java-render 打开页面对象和文本的JavaScript呈现(默认为关闭)
- -p --linked-js-on 打开链接(脚本src标记)Java脚本的搜索功能(默认为关闭)
- Request Parameters
- -ps --https-proxy 以“https://<ip>:<port>”格式指定HTTPS协议的代理
- -pp --http-proxy 以“https://<ip>:<port>”格式指定HTTP协议的代理
- -hu --user-agent 指定在请求中用作用户代理的字符串
- -ha --auth-header 指定要在请求Header中使用的承载令牌或其他身份验证字符串
- Search Parameters
- -s --all 在所有页面HTML和脚本中搜索匹配的术语
- -sr --relative 搜索匹配相对URL页面链接
- -sa --absolute 搜索匹配绝对URL页面链接
- -si --input-fields 在页面中搜索匹配的输入字段
- -ss --scripts 搜索与搜索规范匹配的脚本标记
- -st --text 搜索页面上与搜索规范匹配的可见文本
- -sc --comments 搜索页面上与搜索规范匹配的注释
- -sm --meta 在页面元数据中搜索与搜索规范的匹配项
- -sf --hidden 在隐藏字段中搜索与搜索规范的特定匹配项
- -sh --header-name 搜索响应Header以查找与搜索规范的特定匹配项
- -sv --header-value 搜索响应Header值以查找与搜索规范的特定匹配项
工具使用样例
递归查找站点上名为login的所有输入字段,匹配不区分大小写:
- wwwgrep.py -t https://www.target.com -i -si “login” -rr
在网站的所有页面上查找包含“待办事项(to do)”一词的所有注释:
- wwwgrep.py -t https://www.target.com -i -sc “to do” -rr
查找特定网页上的所有注释:
- wwwgrep.py -t https://www.target.com/some_page -i -sc “”
使用站点递归方式查找input.txt文件中包含的web应用程序列表中的所有隐藏字段:
- wwwgrep.py -f input.txt -sf “” -rr
项目地址
WWWGrep:【GitHub传送门】