CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

CRLFuzz介绍

CRLFuzz是一款使用Go语言编写的用来扫描网站CRLF注入漏洞的工具,HTTP响应拆分漏洞(HTTP Response Splitting),支持linux,windows环境,支持批量扫描,支持使用代理扫描,支持多种请求方式,支持多线程扫描,可自定义标题 cookie和其他部分

CRLF注入漏洞描述

CRLF注入漏洞,是因为Web应用没有对用户输入做严格验证,导致攻击者可以输入一些恶意字符。攻击者一旦向请求行或首部中的字段注入恶意的CRLF,就能注入一些首部字段或报文主体,并在响应中输出,所以又称为HTTP响应拆分漏洞(HTTP Response Splitting)

CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

CRLFuzz安装方法

安装注意事项

go环境已配备

没有go的,可以在kali linux里面执行如下命令进行go安装

apt install golang-go

二进制安装

安装很容易。您可以从发布页面下载预构建的二进制文件,解压并运行!
或使用如下命令一把梭安装

curl -sSfL https://git.io/crlfuzz | sh -s -- -b /usr/local/bin

从源码安装

如果您安装并配置了 go1.13+ 编译器:

GO111MODULE=on go get -v github.com/dwisiswant0/crlfuzz/cmd/crlfuzz

为了更新工具,您可以-u在 go get 命令中使用flag。

从GitHub安装

git clone https://github.com/dwisiswant0/crlfuzz
cd crlfuzz/cmd/crlfuzz
go build .
mv crlfuzz /usr/local/bin

直接使用安装包运行

比如,下载 crlfuzz_1.4.1_linux_amd64.tar.gz
解压,
在此文件夹中打开cmd
输入 ./crlfuzz回车即可

CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

CRLFuzz下载地址

①GitHub:

crlfuzz_1.4.1_linux_386.tar.gz2 MB
crlfuzz_1.4.1_linux_amd64.tar.gz2.08 MB
crlfuzz_1.4.1_linux_arm64.tar.gz1.91 MB
crlfuzz_1.4.1_linux_armv6.tar.gz1.96 MB
crlfuzz_1.4.1_macOS_amd64.tar.gz2.2 MB
crlfuzz_1.4.1_windows_386.zip1.94 MB
crlfuzz_1.4.1_windows_amd64.zip2.01 MB
crlfuzz_1.4.1_windows_armv6.zip1.96 MB

②云中转网盘

yunzhongzhuan.com/#sharefile=4LQQxBKn_..
解压密码 www.ddosi.org

CRLFuzz使用方法

基本用法

简单地说,CRLFuzz 可以直接如下运行:

crlfuzz -u "http://www.ddosi.org"

flags

crlfuzz -h
CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

这将显示该工具的帮助。这是它支持的所有开关。

falgs描述
-u, --url定义单个 URL 以进行模糊测试
-l, --list批量指定ulr文件进行扫描
-X, --method指定要使用的请求方法(默认:GET)
-o, --output保存结果的文件
-d, --data定义请求数据
-H, --header将自定义标头传递给目标
-x, --proxy使用指定的代理进行模糊测试
-c, --concurrent设置并发级别(默认:25)
-s, --silent静音模式
-v, --verbose详细模式
-V, --version显示当前的 CRLFuzz 版本
-h, --help显示其帮助

目标

您可以通过 3 种方式定义目标:

单一网址

crlfuzz -u "http://www.ddosi.org"
CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

列表中的网址

crlfuzz -l /path/to/urls.txt

来自标准输入

如果您想与其他工具联动。

subfinder -d target -silent | httpx -silent | crlfuzz

请求方法

默认情况下,CRLFuzz 使用GET方法发出请求。如果你想改变它,你可以使用-X标志。

crlfuzz -u " http://target " -X " GET "
CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具
例如此处修改为PUT方式提交

输出

您还可以将模糊测试结果保存到带有-o标志的文件中。

crlfuzz -l /path/to/urls.txt -o /path/to/results.txt

数据

如果要使用 POST、DELETE 发送数据请求。PATCH 或其他方法,您只需要使用-d标志。

crlfuzz -u " http://target " -X " POST " -d " data=body "

添加标题

您可能想使用自定义标题来添加 cookie 或其他标题部分。

crlfuzz -u " http://target " -H " Cookie: ... " -H " User-Agent: ... "

使用代理

使用代理,可以使用protocol://前缀指定代理字符串以指定替代代理协议。

crlfuzz -u " http://www.ddosi.org" -x http://127.0.0.1:8080

并发

并发是同时进行模糊测试的次数。CRLFuzz 提供的默认值是25,您可以使用-c标志更改它。

crlfuzz -l /path/to/urls.txt -c 50

免打扰模式

如果您使用-s标志激活此静默模式,您将只会看到易受攻击的目标。

crlfuzz -l /path/to/urls.txt -s | tee vuln-urls.txt

详细模式

与静默模式不同,如果-v标志有错误,它将显示错误详细信息。

crlfuzz -l /path/to/urls.txt -v
CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

版本

显示带有-V标志的 CRLFuzz 的当前版本。

crlfuzz -V
CRLFuzz Go编写的快速扫描CRLF注入漏洞的工具

图书馆

您可以将 CRLFuzz 用作库。

package main

import (
	"fmt"

	"github.com/dwisiswant0/crlfuzz/pkg/crlfuzz"
)

func main() {
	target := "http://target"
	method := "GET"

	// Generates a potentially CRLF vulnerable URLs
	for _, url := range crlfuzz.GenerateURL(target) {
		// Scan against target
		vuln, err := crlfuzz.Scan(url, method, "", []string{}, "")
		if err != nil {
			panic(err)
		}

		if vuln {
			fmt.Printf("VULN! %s\n", url)
		}
	}
}

项目地址

GitHub

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用*标注