【HW系列】—SQL注入、XSS、文件上传流量特征

发布于:2025-05-29 ⋅ 阅读:(21) ⋅ 点赞:(0)

本文仅用于技术研究,禁止用于非法用途。

SQL注入漏洞的流量特征及检测方法

SQL注入攻击的流量特征主要体现在异常语法结构、恶意参数构造和请求行为异常等方面。以下为综合多篇技术文档整理的详细特征及检测策略:

一、语法结构异常特征

  • 特殊符号高频出现
    单引号 ‘、双引号 "、分号 ;、注释符(–、#、/ /)等符号异常集中
    示例:http://example.com?id=1’ OR ‘1’='1 –
  • SQL关键字组合
    高频出现 UNION SELECT、AND 1=1、OR 1=1、DROP TABLE 等逻辑操作符
    包含数据库函数如 version()、database()、concat() 等
    系统表名探测(如 information_schema.tables、sysdatabases)

二、参数值异常特征

  • 永真条件构造
    参数中包含 1=1、‘a’=‘a’ 等恒成立逻辑用于绕过验证
    示例:?username=admin’ OR 1=1 –
  • 异常参数长度
    注入语句常导致参数值长度显著增加(正常参数通常 <500 字符,注入可达 1000+ 字符)
    示例:URL 编码后的盲注语句 ?id=1’%20AND%20SLEEP(5)–
  • 敏感函数调用
    利用 updatexml()、extractvalue() 等 XML 函数进行报错注入
    时间盲注特征:SLEEP(5)、BENCHMARK() 等延迟函数

三、请求行为异常特征

  • 高频重复请求
    同一 IP 短时间内多次提交类似请求(如盲注时不断测试字符)
    示例:?id=1’ AND SUBSTRING(password,1,1)=‘a’ – 的反复变体
    非常规流量模式
  • 短时间内大量错误请求(如 HTTP 500 错误激增)
    请求参数中混合多条 SQL 语句(如 SELECT…; DROP TABLE…)

四、编码与混淆特征

  • 多重编码转换
    URL 编码(如 %27 代表单引号)、十六进制编码(如 0x414243)
    示例:?id=1’ UNION SELECT 1,@@version# → 编码后为 %31%27%55…
  • 嵌套混淆语句
    使用 /!UNION/、// 等干扰符号绕过过滤
    示例:1’/!UNION/SELECT//1,2,3–

五、数据库指纹特征

  • 不同数据库的流量差异:
    MySQL:CONCAT()、LIMIT、// 注释
    SQL Server:WAITFOR DELAY、xp_cmdshell
    Oracle:DUAL 表、UTL_HTTP
    PostgreSQL:pg_sleep()、|| 字符串拼接

  • 检测策略与工具应用
    Wireshark 过滤规则

关键词检测:http.request.uri contains “union” 或 tcp contains “SELECT”
异常流量标记:统计 ip.src 192.168.1.100 && tcp.port 3306 的请求频率
自动化工具识别
SQLMap 流量特征:User-Agent 含 sqlmap/1.*、载荷中带模板化测试语句(如 AND 1=2 UNION…)
数据库审计工具:监控 information_schema 的异常访问

防御建议
输入验证:严格限制参数长度,过滤 '、"、; 等特殊字符
错误处理:屏蔽数据库错误信息(避免泄露版本、表结构)
行为监控:设置阈值告警(如单 IP 每秒请求 >50 次即触发)


XSS漏洞的流量特征分析

XSS(跨站脚本攻击)的流量特征主要体现在恶意代码的注入方式、请求与响应的关联性以及攻击载荷的编码混淆等方面。以下结合多篇技术文档整理的核心特征及检测方法:

一、请求流量特征

  • 恶意标签与事件属性

在这里插入图片描述

示例:

 GET /search?q=<script>alert(1)</script> HTTP/1.1
  • 编码混淆绕过检测

攻击者常对恶意代码进行多重编码以绕过WAF过滤,如:

URL编码:%3Cscript%3E(对应 <script>)

Base64编码:PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==(解码为 <script>alert(1)</script>

十六进制编码:\x3cscript\x3e

  • 特殊字符高频出现

请求中大量使用单引号 '、双引号 "、尖括号 < > 等符号,用于构造闭合标签或注入逻辑。

示例:<img src=x onerror='alert("XSS")'>

二、响应流量特征

  • 未转义的攻击载荷

服务器返回的响应体中直接包含原始攻击代码,且未对特殊字符进行转义(如 < 未转换为 &lt;)

示例响应片段:

<div>用户输入:<script>document.cookie</script></div>
  • 攻击载荷与请求参数关联

反射型XSS:响应内容中回显了请求参数中的攻击语句(如URL中的恶意脚本片段)。
存储型XSS:恶意代码从数据库读取后直接输出到页面(如评论区的持久化脚本)。
标签结构保留完整

恶意脚本仍包裹在 <script>、<img> 等标签内,或通过事件属性触发执行

三、行为特征与上下文关联

高频请求与异常参数长度
攻击者可能多次提交变种攻击载荷(如不同编码方式的同一脚本),导致参数值长度异常(如超过500字符)。
工具特征
使用自动化工具(如XSSer)时,User-Agent中可能包含工具标识(如 XSSer/1.0)。
响应头策略缺失
缺乏安全头部(如 Content-Security-Policy、X-XSS-Protection),允许执行外部脚本。

四、攻击类型差异特征

在这里插入图片描述

五、检测与防御建议

流量检测方法

使用正则表达式匹配敏感标签和事件属性(如 /<script>onerror eval\(/i)

监控响应内容是否包含未转义的攻击载荷。
防御策略
输入过滤:对用户输入的特殊字符进行转义(如 < → &lt;)
输出编码:使用HTML实体编码或JavaScript编码处理动态内容。
安全头部:设置 Content-Security-Policy 限制脚本加载源。


文件上传漏洞的流量特征解析

文件上传漏洞的流量特征主要体现在异常请求结构、恶意载荷构造和绕过行为模式等方面。以下是结合多篇技术文档整理的核心特征及检测方法:


一、请求结构特征

  1. HTTP方法与请求头异常
    • 高频使用 POST/PUT 请求方式(文件上传主要依赖这两种方法)
    • Content-Type 含 multipart/form-data 标识,且 boundary 值异常或包含特殊符号(如 --WebKitFormBoundary 等固定字符串)
    • User-Agent 可能包含扫描器标识(如 sqlmap、AWVS)或异常随机字符
  2. 文件参数构造特征
    • filename 字段包含高危后缀(如 .php、.jsp、.asp)或混淆后缀(如 .php5、.phtml)
    • 路径穿越尝试:filename=“…/…/webapps/ROOT/shell.jsp”
    • 特殊符号滥用:如 %00 截断(PHP低版本)、::DATA(Windows特性)

二、内容载荷特征

  1. 恶意代码特征
    • 文件内容包含 WebShell 特征(如 <?php eval($_POST['cmd']);?>、<%%execute request(“cmd”)%>)
    • 伪装文件头:图片文件中嵌入脚本(如 GIF89a 头部后接 PHP 代码)
    • ZIP炸弹:极小的压缩包(如 20KB)但解压后数据量异常(如 10GB)
  2. 编码与混淆行为
    • 多重编码(如 Base64、URL编码)绕过检测,例如 filename=“%70%68%70”(对应 php)
    • Content-Type 伪造为合法类型(如 image/png),但实际文件为可执行脚本

三、行为模式特征

  1. 试探性攻击行为
    • 短时间内连续上传不同后缀文件(如 .php → .php3 → .phtml)测试规则库
    • 频繁触发 404错误(如扫描 /upload.php、/admin/fileupload.jsp 等敏感路径)
  2. 绕过特征
    • 双写绕过:filename=“shell.pphphp”(过滤后变为 shell.php)
    • 大小写混淆:filename=“SHELL.PHp”(Windows系统不区分大小写)
    • 空格/点截断:filename=“shell.php .”(系统自动去除末尾符号)

四、防御与检测建议

  1. 流量检测规则
    • 正则匹配高危后缀:filename.*.(php|jsp|asp)
    • 监控异常 Content-Type(如 image/png 但文件内容含 <?php)
    • 统计单IP高频上传行为(如1分钟内超过50次请求)
  2. 防御策略
    • 白名单校验:仅允许 .jpg、.png 等静态文件后缀,并验证文件真实类型(通过魔数检测)
    • 随机重命名:上传后生成无规律文件名(如 a3f8d7.jpg)
    • 目录隔离:上传文件存储路径禁止脚本执行(Apache配置:php_flag engine off)

五、典型案例分析

  1. 绕过前端JS检测
    • 流量特征:修改前端代码禁用JS校验,或通过Burp Suite篡改请求包中的 filename 字段
    • 示例:原始请求 filename=“test.jpg” → 篡改为 filename=“test.php”
  2. 解析漏洞
    • IIS 6.0目录解析:/upload/shell.asp;.jpg 被解析为 ASP 文件
    • Nginx 空字节漏洞:/upload/shell.php%00.jpg 触发PHP解析

注:本文遵循CSDN社区内容规范,不涉及具体攻击实现,重点探讨防御方法论。


网站公告

今日签到

点亮在社区的每一天
去签到