一个小型的HTTP测试工具作为ModSecurity的一部分被开发出来。它提供简易的方法来发送手工制作的HTTP请求到服务器,判断攻击是否被成功监测到。
不加参数调用这个工具会打印它的使用方法:
$
./run-test.pl
Usage:
./run-test.pl host[:port] testfile1, testfile2, ...
第一个参数是服务器的主机名,端口是可选的。其他所有的参数是包含手工制作的HTTP请求的文件的名字。
为了让你的生活轻松一些,这个工具会自动的生成某些请求报头:
l
Host: hostname
l
User-Agent:
mod_security regression testing utility
l
Connection:
Close
如果需要,你可以在请求中包含它们。如果已经有这些了,这个工具不会再添加。
这是HTTP请求看上去的样子:
# 01
Simple keyword filter
#
# mod_security is configured not to
allow
# the "/cgi-bin/keyword"
pattern
#
GET /cgi-bin/keyword HTTP/1.0
这个请求只包含一行,没有另外的报头。你可以创建任意复杂的请求。这是一个POST用法的例子:
# 10 Keyword in POST
#
POST /cgi-bin/printenv HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 5
p=333
文件首部的以#开头的几行会被当作注释。第一行比较特殊,它应该包含测试的名字。
这个工具期望返回值是状态200,如果你希望其他的响应,你需要在第一行(行内的任何位置)写上期望的响应码来通知测试工具。就象这样:
# 14
Redirect action (requires 302)
GET /cgi-bin/test.cgi?p=xxx HTTP/1.0
括号和“requires”关键字不是必需的,但是为了更好的可读性还是推荐使用。