<< Back to man.ChinaUnix.net   CU网友原创,转载请注明出自ChinaUnix.net及原作者

测试工具

一个小型的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”关键字不是必需的,但是为了更好的可读性还是推荐使用。