slowhttptest参数有哪些关键配置及作用?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 参数 正文

下面我将详细解释 slowhttptest 的各种参数,并提供一个实用的示例。

slowhttptest 参数
(图片来源网络,侵删)

核心参数分类

slowhttptest 的参数可以分为以下几大类:

  1. 基本参数:定义测试的核心信息,如 URL、测试类型、并发连接数等。
  2. 攻击参数:精确控制攻击行为,如延迟时间、数据传输速率、攻击持续时间等。
  3. 输出参数:指定测试结果的保存位置和格式。
  4. 高级/辅助参数:用于更复杂的场景,如认证、自定义数据、版本信息等。

详细参数说明

基本参数

参数 全称/说明 示例 备注
-u --url -u http://test.com/login.php 必需参数,指定要测试的目标 URL。
-a --attackType -a 3 必需参数,指定攻击类型。
类型代码:
1: Slowloris (慢速发送头部)
2: Slowloris (慢速发送数据,在 POST 请求中)
3: Slow Read (慢速读取响应)
4: Slow Post (慢速发送 POST 数据)
5: Range Header (发送带有超大 Range 的请求)
6: Cookie (在 Cookie 中注入大量数据)
7: Header (在 HTTP 头中注入大量数据)
-c --concurrency -c 50 必需参数,并发连接的总数。
-r --rate -r 10 每秒创建的连接数,如果为 0,则所有连接瞬间创建。
-x --contentLength -x 2048 仅用于攻击类型 2 和 4,POST 请求的总数据长度(字节)。
-p --pipeline -p 1 每个连接中包含的请求数,用于 Slowloris 攻击,保持连接持续发送数据。
-l --duration -l 300 必需参数,测试的持续时间(秒)。
-m --maxSecondsWait -m 20 仅用于攻击类型 3 (Slow Read),读取每个响应块后等待的最大秒数。
-H --header -H "X-Test: value" 自定义 HTTP 请求头,可以多次使用 -H 来添加多个头。

攻击参数

参数 全称/说明 示例 备注
-g --http-method -g POST 仅用于攻击类型 4 (Slow Post),指定 HTTP 方法,通常是 POST。
-d --data -d "username=admin&password=" 仅用于攻击类型 4 (Slow Post),POST 请求的初始数据。
-e --data-file -e post_data.txt 仅用于攻击类型 4 (Slow Post),从文件中读取 POST 数据。
-n --data-size -n 1024 仅用于攻击类型 4 (Slow Post),每次发送的数据块大小(字节)。
-t --data-interval -t 10 仅用于攻击类型 4 (Slow Post),每次发送数据块之间的间隔(毫秒)。
-i --read-interval -i 10 仅用于攻击类型 3 (Slow Read),每次读取响应数据块之间的间隔(毫秒)。
-s --content-size -s 1024 仅用于攻击类型 3 (Slow Read),期望的响应内容大小(字节),如果响应比这大,攻击效果更好。

输出参数

参数 全称/说明 示例 备注
-o --output -o results.txt 必需参数,测试结果的输出文件路径。
-v --verbose -v 2 详细级别,0: 静默, 1: 正常, 2: 详细, 3: 调试。

高级/辅助参数

参数 全称/说明 示例 备注
-C --connections -C 100 每个并发连接中包含的请求数(与 -p 类似,但语义不同)。
-k --keep-alive -k 1 使用 HTTP Keep-Alive 连接,1 为开启,0 为关闭。
-b --body -b "some body data" 请求体的初始内容。
-f --file -f headers.txt 从文件中读取自定义 HTTP 头。
-S --status-code -S 200 仅用于攻击类型 3 (Slow Read),期望的 HTTP 状态码。
-V --version -V 显示版本信息并退出。
-h --help -h 显示帮助信息并退出。

常用攻击场景示例

场景 1:Slowloris 攻击 (模拟慢速发送头部,耗尽服务器连接)

这是最常见的攻击类型,通过不完整地发送 HTTP 头,保持大量连接打开,耗尽服务器的连接池资源。

slowhttptest \
-u http://test.com/ \
-a 1 \          # 攻击类型 1: Slowloris
-c 200 \        # 200 个并发连接
-r 20 \         # 每秒创建 20 个连接
-p 1 \          # 每个连接只发送 1 个不完整的请求
-l 300 \        # 持续 300 秒
-v 2 \          # 详细输出
-o slowloris_results.txt

攻击原理:这个命令会向 test.com 发起 200 个并发连接,每个连接会发送一个不完整的 HTTP 头(只发送 GET / HTTP/1.1 和部分 HostUser-Agent 头,但不发送最后的 \r\n\r\n 来结束请求),从而将连接卡住,占用服务器资源。

场景 2:Slow Post 攻击 (模拟慢速发送 POST 数据)

这种攻击针对需要处理表单提交的页面,通过极慢的速度发送 POST 数据,使服务器的请求处理线程长时间被占用。

slowhttptest \
-u http://test.com/login.php \
-a 4 \          # 攻击类型 4: Slow Post
-c 100 \        # 100 个并发连接
-r 10 \         # 每秒创建 10 个连接
-x 10240 \      # POST 数据总长度为 10KB
-n 100 \        # 每次发送 100 字节的数据块
-t 1000 \       # 每次发送数据块后等待 1000 毫秒 (1秒)
-d "username=admin&password=" \ # POST 的初始数据
-l 300 \        # 持续 300 秒
-v 2 \
-o slowpost_results.txt

攻击原理:该命令会向 login.php 发起 100 个并发 POST 请求,每个请求会发送一个初始的 username=admin&password=,然后以每秒 100 字节的速度,花费 100 秒才能发送完 10KB 的数据,这使得服务器的每个请求处理线程都被长时间占用。

场景 3:Slow Read 攻击 (模拟慢速读取响应)

这种攻击针对服务器返回大量数据的页面,客户端正常发送请求,但在读取服务器响应时故意放慢速度,导致服务器的输出缓冲区被占满,无法处理其他请求。

slowhttptest \
-u http://test.com/largefile.html \
-a 3 \          # 攻击类型 3: Slow Read
-c 150 \        # 150 个并发连接
-r 15 \         # 每秒创建 15 个连接
-s 1048576 \    # 期望响应大小为 1MB
-m 10 \         # 读取响应块后最多等待 10 秒
-i 1000 \       # 每次读取数据块后等待 1000 毫秒 (1秒)
-l 300 \        # 持续 300 秒
-v 2 \
-o slowread_results.txt

攻击原理:客户端向 largefile.html 发起请求,正常接收响应,但在读取响应内容时,每次只读一小部分,然后等待 1 秒,再读下一部分,这种慢速读取会占用服务器的输出缓冲区,可能导致服务器无法为新的客户端提供服务。


如何解读测试结果

测试结束后,slowhttptest 会生成一个结果文件(如 slowloris_results.txt),这个文件是 CSV 格式的,你可以用 Excel 或任何文本编辑器打开。

关键指标包括:

  • total_connections: 成功创建的总连接数。
  • error_connections: 因服务器错误(如连接超时、重置)而失败的连接数。
  • **`time_to_first_byte``: 收到服务器第一个字节响应的平均时间。
  • time_to_last_byte: 收到服务器最后一个字节响应的平均时间。

分析要点

  • 成功连接数高:说明服务器可能没有对慢速攻击进行有效防御,大量连接被建立并保持。
  • 错误连接数高:说明服务器可能在检测到攻击后主动重置了连接,这是一个积极的信号。
  • 响应时间异常:如果攻击有效,服务器的响应时间会显著增加,甚至超时。

通过分析这些数据,你可以评估服务器在慢速攻击下的表现,并据此调整服务器配置(如调整 KeepAlive 超时、限制单IP连接数、启用Web应用防火墙规则等)或优化应用程序代码。

-- 展开阅读全文 --
头像
华为小米智能路由器,谁更值得选?
« 上一篇 今天
ThinkCentre X1拆机步骤难不难?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]