怎么区分日志里109618和109619的攻击痕迹?

梦磊吖_5516

梦磊吖_5516

2026-11-11

288人浏览

原创

区分日志中109618和109619的攻击痕迹,核心在于检查请求的http方法、参数结构以及响应状态码。通常这两个id对应不同的漏洞利用阶段或类型,例如一个是探测(如get请求),另一个是执行(如post请求)。通过解析日志中的url路径、查询参数和payload内容,可以明确判断攻击者是在进行信息收集还是实际注入操作。

怎么区分日志里109618和109619的攻击痕迹?

如何根据HTTP方法区分探测与执行

在Web应用防火墙或服务器访问日志中,109618往往代表针对特定参数的探测行为,而109619则可能代表随后的利用尝试。要区分它们,最直接的方法是查看HTTP动词。如果日志显示为GET请求且参数中包含明显的测试字符(如单引号、注释符),这通常是109618类型的扫描行为。若后续出现POST请求且包含复杂的SQL语句或命令注入字符串,则极有可能是109619类型的利用。此外,注意观察时间戳,探测行为通常发生在利用行为之前几秒到几分钟内。

怎么区分日志里109618和109619的攻击痕迹?

import re
from datetime import datetime

def analyze_log_entry(line):
    # 模拟解析一行Apache/Nginx日志
    pattern = r'(?P<ip>\S+) \S+ \S+ \[(?P<time>[^\]]+)\] "(?P<method>\w+) (?P<url>\S+) HTTP/\S+" (?P<status>\d+) (?P<size>\d+)'
    match = re.match(pattern, line)
    if not match:
        return None
    
    data = match.groupdict()
    url = data['url']
    method = data['method']
    status = int(data['status'])
    
    # 假设109618对应GET探测,109619对应POST利用
    # 这里需要根据实际WAF规则或IDS签名进行调整
    attack_type = None
    if 'id=' in url and method == 'GET':
        # 检查是否包含常见探测特征
        if any(char in url for char in ["'", '"', '--', ';']):
            attack_type = '109618_Probe'
    elif method == 'POST':
        # POST请求通常携带更复杂的payload
        # 在实际场景中需要解析body,这里简化处理
        attack_type = '109619_Exploit'
        
    return {
        'ip': data['ip'],
        'time': data['time'],
        'method': method,
        'url': url,
        'status': status,
        'attack_id': attack_type
    }

# 示例日志行
log_line = '192.168.1.100 - - [10/Oct/2023:13:55:36 +0000] "GET /search?id=1\' AND 1=1-- HTTP/1.1" 200 1234'
analysis = analyze_log_entry(log_line)
print(analysis)</size></status></url></method></time></ip>

如何通过Payload内容确认攻击意图

除了HTTP方法,Payload的具体内容是区分109618和109619的关键。109618通常涉及简单的语法错误触发,旨在确认漏洞存在,其Payload较短且特征明显,如常见的SQL注入布尔盲注测试。而109619则可能涉及数据提取或系统命令执行,Payload更长且逻辑更复杂。通过分析URL编码后的参数值,可以发现攻击者是否在尝试绕过过滤机制。例如,如果看到经过多次编码的恶意代码,或者使用了特定的函数调用(如`load_file`、`exec`),这通常指向更高危的利用阶段。

iTerms
iTerms

一款AI工具,主要用于法大大AI法律顾问,适合需要提升相关任务效率的用户。

下载

怎么区分日志里109618和109619的攻击痕迹?

def parse_payload(url):
    from urllib.parse import unquote, parse_qs
    
    # 提取查询参数
    parsed_url = unquote(url)
    query_string = parsed_url.split('?')[1] if '?' in parsed_url else ''
    params = parse_qs(query_string)
    
    payload_details = []
    for key, value in params.items():
        val = value[0]
        # 检测常见注入模式
        if re.search(r"(union|select|insert|update|delete|drop).*(from|into|table)", val, re.I):
            payload_details.append('SQL_Structural')
        if re.search(r"(or|and).*(1=1|true)", val, re.I):
            payload_details.append('Boolean_Blind')
        if re.search(r"(;|\||&&).*cat|ls|whoami", val, re.I):
            payload_details.append('OS_Command')
            
    return payload_details

# 测试不同Payload
url_probe = '/search?id=1%27%20OR%201=1--'
url_exploit = '/api/data?q=admin%27;%20DROP%20TABLE%20users;--'

print("Probe Analysis:", parse_payload(url_probe))
print("Exploit Analysis:", parse_payload(url_exploit))

基于响应状态码和返回长度的进一步验证

在确定了攻击类型后,还需要结合服务器的响应来最终确认攻击是否成功。对于109618类型的探测,服务器通常会返回200 OK,但返回内容可能与正常请求有细微差别,或者在某些配置下返回500 Internal Server Error。而对于109619类型的利用,如果成功,可能会返回包含敏感数据的页面,或者导致服务无响应。通过比较正常请求和攻击请求的响应长度(Content-Length)和时间差,可以更准确地识别异常。如果某个请求的响应时间显著长于其他请求,可能意味着正在进行耗时较长的盲注或资源耗尽攻击。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

60

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

40

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

40

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

60

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

60

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

60

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

60

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

60

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习