Improves the accuracy of version identification on status calls

Trying to differentiate among IIS, Apache, NGINX, and Standalone builds.
This commit is contained in:
Felipe Zimmerle 2015-02-11 11:02:53 -08:00
parent a235b536a4
commit 462308be74
2 changed files with 53 additions and 1 deletions

View File

@ -349,8 +349,10 @@ int DSOLOCAL msc_beacon_string (char *beacon_string, int beacon_string_max_len)
#endif
libxml = LIBXML_DOTTED_VERSION;
modsec = MODSEC_VERSION;
#ifdef IIS_VERSION
#ifdef VERSION_IIS
apache = "IIS";
#elif VERSION_NGINX
apache = "nginx";
#else
apache = real_server_signature;
#endif

View File

@ -70,4 +70,54 @@
"arg1=val1&arg2=val2",
),
},
# On and SecServerSignature
{
type => "misc",
comment => "SecStatusEngine On/SecServerSignature - checking signature",
conf => qq(
SecRuleEngine On
SecServerSignature "SpiderServer v0.1a"
SecStatusEngine On
),
match_log => {
error => {
apache => [ qr/StatusEngine call: \"[0-9]+.[0-9]+.[0-9]+[-RC]*[0-9]*\,Apache/, 1],
nginx => [ qr/StatusEngine call: \"[0-9]+.[0-9]+.[0-9]+[-RC]*[0-9]*\,nginx/, 1],
}
},
match_response => {
status => qr/^200$/,
},
request => new HTTP::Request(
POST => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
[
"Content-Type" => "application/x-www-form-urlencoded",
],
"arg1=val1&arg2=val2",
),
},
# On and SecServerSignature
{
type => "misc",
comment => "SecStatusEngine On - checking signature",
conf => qq(
SecStatusEngine On
),
match_log => {
error => {
apache => [ qr/StatusEngine call: \"[0-9]+.[0-9]+.[0-9]+[-RC]*[0-9]*\,Apache/, 1],
nginx => [ qr/StatusEngine call: \"[0-9]+.[0-9]+.[0-9]+[-RC]*[0-9]*\,nginx/, 1],
}
},
match_response => {
status => qr/^200$/,
},
request => new HTTP::Request(
POST => "http://$ENV{SERVER_NAME}:$ENV{SERVER_PORT}/test.txt",
[
"Content-Type" => "application/x-www-form-urlencoded",
],
"arg1=val1&arg2=val2",
),
},