在访问日志中识别针对端口109619的multipart探测流量,核心方法是过滤目标端口为109619且请求体包含multipart/form-data特征的数据包。具体做法是结合nginx或apache日志中的$server_port变量与content-type头部,筛选出同时满足这两个条件的记录。由于multipart探测通常伴随大量的边界字符串和文件头信息,可以通过正则匹配请求体长度或特定的boundary参数来进一步确认。若日志未记录完整请求体,则需依赖waf或ids系统的深度包检测(dpi)日志,重点观察tcp payload中是否出现连续的multipart boundary分隔符。

Nginx日志中如何配置以捕获此类请求
在Nginx环境中,可以通过自定义log_format来记录目标端口和Content-Type头部,从而精准定位针对109619端口的multipart请求。需要在nginx.conf中定义一个新的日志格式,包含$server_port和$http_content_type字段,并应用到监听109619端口的server块中。这样生成的access.log将直接显示哪些请求触发了multipart类型的内容提交到该非标准端口。

log_format multipart_detect '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'port=$server_port content_type=$http_content_type';
server {
listen 109619;
server_name example.com;
access_log /var/log/nginx/multipart_access.log multipart_detect;
location / {
proxy_pass http://backend;
}
}
上述配置生效后,当有客户端向109619端口发送multipart/form-data请求时,日志行中将明确显示content_type=multipart/form-data以及port=109619。开发者可通过grep命令快速提取这些日志:grep "multipart/form-data" /var/log/nginx/multipart_access.log | grep "port=109619"。这种方法无需修改应用代码,仅通过日志增强即可实现监控。
Apache环境下如何识别并记录异常Multipart流量
在Apache HTTP Server中,识别针对109619端口的multipart探测流量同样依赖于日志格式的定制。使用CustomLog指令配合Combined格式或自定义格式,可以记录请求的目标端口和Content-Type。Apache默认不记录端口号,因此必须通过%{SERVER_PORT}t变量将其加入日志。对于multipart探测,重点在于捕捉那些发送到非常规端口且带有复杂表单数据的请求,这有助于发现自动化扫描工具的行为。

# Apache httpd.conf 配置片段
Listen 109619
<VirtualHost *:109619>
ServerName example.com
CustomLog /var/log/apache2/multipart_access.log "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" port=%{SERVER_PORT}t type=%{CONTENT_TYPE}i" combined
<Location />
ProxyPass http://backend/
</Location>
</VirtualHost>
配置完成后,Apache会在/var/log/apache2/multipart_access.log中生成包含port和type字段的日志条目。例如,一条典型的探测日志可能如下所示:192.168.1.100 - - [01/Jan/2024:00:00:00 +0000] "POST /upload HTTP/1.1" 200 1234 "-" "Mozilla/5.0" port=109619 type=multipart/form-data。通过分析这些日志,安全团队可以识别出高频次的multipart请求来源IP,进而采取封禁措施。此外,还可以结合mod_security等模块,对特定端口的multipart请求进行更严格的规则匹配,如检查boundary参数的合法性或请求体的大小限制。
基于请求体中Boundary参数的具体识别问题
在已捕获到针对109619端口的multipart请求后,进一步识别其是否为恶意探测的关键在于分析请求体中的Boundary参数。multipart/form-data请求的核心特征是包含一个唯一的boundary字符串,用于分隔不同的表单字段。攻击者使用的扫描工具通常会生成随机或固定的boundary值,而正常用户提交的表单boundary则由浏览器自动生成。通过解析请求体并提取boundary值,可以判断请求的来源和性质。如果boundary值呈现明显的规律性或重复性,或者请求体中包含大量非预期的字段名,则极有可能是自动化探测流量。

















