跳转至

SQL存储过程

对手可能滥用SQL存储过程在系统上建立持久访问。SQL存储过程是可以保存和重用的代码,以便数据库用户不必浪费时间重写经常使用的SQL查询。存储过程可以通过使用过程名称的SQL语句或通过定义的事件(例如启动/重启SQL服务器应用程序时)调用。 对手可能会编写恶意存储过程,这些过程可以在SQL数据库服务器中提供持久机制。(引用: NetSPI Startup Stored Procedures)(引用: Kaspersky MSSQL Aug 2019) 要通过SQL语法执行操作系统命令,对手可能需要启用其他功能,例如MSSQL Server的xp_cmdshell。(引用: NetSPI Startup Stored Procedures)(引用: Kaspersky MSSQL Aug 2019)(引用: Microsoft xp_cmdshell 2017) Microsoft SQL Server可以启用通用语言运行时(CLR)集成。启用CLR集成后,应用程序开发人员可以使用任何.NET框架语言(例如VB .NET、C#等)编写存储过程。(引用: Microsoft CLR Integration 2017) 对手可能会编写或修改与存储过程链接的CLR程序集,因为这些CLR程序集可以执行任意命令。(引用: NetSPI SQL Server CLR)