我最近遇到了一个Windows应用程序,其中包含内联SQL脚本的做法非常糟糕。是否容易出现SQL注入?
如果是,是否有任何工具可以快速解决漏洞?
答案 0 :(得分:4)
是的,Windows应用程序也容易受到SQL注入攻击 问题不在于应用程序的类型,但内联sql脚本也不是问题 问题是当sql是从硬编码字符串和用户输入字符串动态构建的时候。实际上,即使存储过程也可能容易受到SQL注入攻击。
以此简单程序为例:(警告:此代码不安全!)
CREATE PROCEDURE sp_sqlInj
(
@UserInput varchar(300)
)
AS
DECLARE @Sql varchar(max)
SET @Sql = 'SELECT * FROM Table WHERE x = '+ @UserInput
EXEC(@Sql)
GO
可以想象,这个过程对SQL注入攻击很开放。
答案 1 :(得分:1)
任何类型的应用程序,包括Windows桌面应用程序,都可以注入SQL。问题是如何在SQL查询/ proc中处理用户输入,而不是应用程序类型。
如果您可以直接访问数据库,最好使用数据库监控工具,例如SQL Server Profiler。您可以通过SQL注入您的应用程序并在Profiler中观察生成的查询以及数据库中的结果来尝试“渗透测试”。