skipfish
一款谷歌的轻量级WEB扫描器
命令格式
skipfish [options] --output output-directory [ start-url | @url-file [ start-url2 ... ]]参数
访问
| 参数 | 说明 | 备注 |
|---|---|---|
| –host | 设置欲扫描网站的域名或IP | 不是url |
| –header | 设置HTTP请求头 | 一次指定一个头参数, 多个参数可多次使用–header |
| –user-agent | 设置User-Agent | |
| –max-request-total | 设置最大发送请求数 | |
| –max-crawl-depth | 设置最大爬取网页深度 | |
| –crawl-probability | 设置爬取完整度(填1~100) | 随机忽略某些页面以提高速度 |
| –include-string | 只扫描包含指定字符串的url | |
| –exclude-string | 忽略指定字符串的url | |
| –skip-parameter | 设置不进行fuzz的参数 | |
| –no-html-parsing | 不解析html | 即不爬取网页,仅使用字典 |
认证
| 参数 | 说明 | 备注 |
|---|---|---|
| –auth | 使用HTTP基本认证并设置用户名密码 | 格式:用户名:密码 |
| –auth-form | 使用表单认证并设置提交url | |
| –auth-user | 设置表单的用户名 | |
| –auth-pass | 设置表单的密码 | |
| –auth-verify-url | 设置验证登录是否成功的url | 即登录成功才可访问的url |
| –cookie | 设置Cookie | |
| –reject-cookies | 不接受任何Cookie | 常用于保证自己设置的Cookie不被覆盖 |
字典
| 参数 | 说明 | 备注 |
|---|---|---|
| –wordlist | 设置字典 | |
| –no-extension-brute | 关闭目录猜测功能 | |
| –rw-wordlist | 设置字典(学习) | 将爬取到的目录作为字典记录下来 |
| –no-keyword-learning | 关闭学习功能 | - |
报告
| 参数 | 说明 | 备注 |
|---|---|---|
| –output | 设置输出的目录 | 生成一堆html报告,使用浏览器打开 |
| –verbose | 运行时输出报告 | - |
性能
| 参数 | 说明 | 备注 |
|---|---|---|
| –max-request-rate | 设置每秒最大请求数量 | 防止触发站点的告警机制 |
| –max-connections | 设置同时连接的最大数量 | 应该是线程数 |
| –request-timeout | 设置请求超时时间 | |
| –response-size | 设置解析响应的最大大小 | 不解析过大的响应,以节省内存 |
| –discard-binary | 不解析二进制文件 | |
| –flush-to-disk | 将缓存设在硬盘而不是内存 | 内存不够大时使用 |
实例
# 快速扫描
skipfish --output ./output/ http://example.com
# 使用字典扫描
skipfish --wordlist dictionaries/complete.wl --output ./output/ http://example.com
# 非暴力扫描
skipfish --no-extension-brute --no-keyword-learning http://example.com
# 使用HTTP基本身份认证
skipfish --auth username:password http://example.com
# 带Cookie扫描(使用--exclude-string跳过访问登出页面以免Cookie失效)
skipfish --cookie jsession=myauthcookiehere --exclude-string /logout http://example.com
# 脆弱主机扫描(--idle-timeout:指定空闲HTTP连接的超时时间)
skipfish --max-request-rate 5 --max-connections 2 --request-timeout 30 --idle-timeout 15 http://example.com