Skipfish扫描原理解读

Skipfish分析

1. Skipfish简介

Skipfish由谷歌制作,于2010年对外发布。Skipfish被描述是一个高效的Web应用程序的安全性检测工具,它不仅仅是一款检测工具。它是一款完整的漏洞扫描工具。它有以下特点:

1) 高速:它可以达到每秒400多个请求,在高速局域网下可以到达每秒2000多个请求;
2) 它的命令行选项简单易用;
3) 它可以检测出各种各样的漏洞问题,从简单的目录遍历和信息泄露到不同类型的SQL注入和XML注入;
Skipfish的主要缺点是自从2012年以来就没有更新过。对于一些新兴的技术它并不适用于此。
skipfish是一种活动的Web应用程序安全侦察工具。它通过执行递归爬网和基于字典的探针来为目标站点准备一个交互式站点地图。然后,使用来自多个活动(但希望是非破坏性)安全检查的输出对结果映射进行注释。该工具生成的最终报告旨在作为专业Web应用程序安全评估的基础。

2. skipfish原理

该工具会首先尽可能获取所有网站路径,进行访问,然后根据返回的内容,检测是否存在漏洞。该工具采用字典爆破和网页爬行两种方式获取网站。一旦获取网页内容,该工具会自动分析网页内容,扩充字典,从而提高爆破效率。同时,该工具提供特征码文件,对网页内容进行分析,以发现潜在漏洞。用户可以根据需要,扩充预置的特征文件,加强扫描功能。

3. skipfish使用

在这里插入图片描述
该工具会首先尽可能获取该网址下的所有路径,进行访问,然后根据返回的内容,检测是否存在漏洞。
在这里插入图片描述
在这里插入图片描述
扫描完成后会生成一个index.html文件,如下图所示:
在这里插入图片描述
在这里插入图片描述

4. payload的生成原理

Payload的生成方式是在/src/http_client.c源码文件中。

4.1. payload特征

4.1.1. XSS注入

在check.c源码文件中,可以看到XSS注入的相关信息。
在这里插入图片描述
经过分析inject_xss_tests函数,发现对http头的一些字段加了new_xss_tag;
在这里插入图片描述
在database.c源码文件中,分析new_xss_tag函数,可以看到XSS注入存在 “–>">’>’"<sfi6位数v6位数>”特征。
在这里插入图片描述

4.1.2. SQL注入

在check.c源码文件中,可以看到SQL注入的相关信息。
在这里插入图片描述
经过分析inject_sql_tests函数,发现 SQL注入请求头中可能会出现“sfi9-0数字”特征(数字从大到小,0-9位,例如sfi9876)并且请求头最后会出现“’””等标识,在请求中User-Agent、Referer、Accept-Language这三个字段会出现“sfish’"”标识。
在这里插入图片描述
SQL注入主要特征如下图所示: 在这里插入图片描述

4.1.3. XML注入

在check.c源码文件中,可以看到XML注入的相关信息。
在这里插入图片描述
通过分析inject_xml_tests函数,发现XML注入检测时可能会出现“sfish>’>">”特征。
在这里插入图片描述

4.1.4. 重定向注入

在check.c源码文件中,可以看到重定向注入的相关信息。
在这里插入图片描述
通过分析inject_redir_listing_tests函数,发现重定向注入可能存在“http://skipfish.invalid/;?”,“//skipfish.invalid/;?”,“skipfish://invalid/;?”,“‘skip’’’“fish”""”,“‘skip’’’“fish”""”等特征。
在这里插入图片描述

4.1.5. Shell注入(diff)

在check.c源码文件中,可以看到shell注入(diff)的相关信息。
在这里插入图片描述
通过分析inject_diff_shell_tests函数,我们可以发现shell注入存在下图特征:
在这里插入图片描述

4.1.6. Shell注入(spec)

在check.c源码文件中,可以看到shell注入(spec)的相关信息。
在这里插入图片描述
通过分析inject_ shell_tests函数,我们可以发现shell注入存在下图特征:

在这里插入图片描述在这里插入图片描述

4.1.7. format string

在check.c源码文件中,可以看到format string的相关信息。
在这里插入图片描述
通过分析inject_format_tests函数,发现format string检测可能存在下图特征:
在这里插入图片描述

4.1.8. integer handling

在check.c源码文件中,可以看到integer handling的相关信息。
在这里插入图片描述
通过分析inject_integer_tests函数,发现integer handling检测可能会存在下图特征:
在这里插入图片描述

4.1.9. 目录遍历

在check.c源码文件中,可以看到目录遍历的相关信息。
在这里插入图片描述
通过分析inject_dir_listing_tests函数,发现目录遍历的http请求头中可能会出现如图所示字段:
在这里插入图片描述

4.1.10. 本地文件包含

在check.c源码文件中,可以看到本地文件包含的相关信息。
在这里插入图片描述
通过分析inject_lfi_tests函数,发现目录遍历的http请求头中可能会出现“%二进制”或者“/…”的特征。

4.2. Accept-Encoding和Connection生成原理

Accept-Encoding和Connection除了XSS注入、SQL注入等,其余都是默认固定的
在这里插入图片描述

4.3. User-Agent生成原理

User-Agent生成根据浏览器选择不同的类型,版本也会根据skipfish的版本不同而不同。也可以添加-b参数伪装成IE/FIREFOX/IPHONE的浏览器
在这里插入图片描述

4.4. Range生成原理

在这里插入图片描述

4.5. Range生成原理

在这里插入图片描述

完结!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值