存储过程的注入及解决

访客4年前黑客文章878

由于存储过程中存在用于字符串连接的 + 号连接SQL语句,这就造成SQL注入的可能性.

  下面一个例子:

PR_UserManage_Users_BatchMove

CREATE PROCEDURE [dbo].[PR_UserManage_Users_BatchMove]
(
@UserType int = 1,
@GroupId NVarChar(500) =”,
@UserId NVarChar(4000) = ”,
@UserName NVarChar(255) = ”,
@StartUserId int = 0,
@EndUserId int = 0,
@BatchUserGroupId NVarChar(500) =”
)
AS
BEGIN
SET NOCOUNT OFF
If (@UserType = 1)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where UserID in (’ + @UserId + ‘)’)
END
Else If(@UserType = 2)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where UserName in (”’ + @UserName + ”’)')
END
Else If(@UserType = 3)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where UserId between ‘ + @StartUserId + ‘ and ‘ + @EndUserId)
END
Else If(@UserType = 4)
BEGIN
EXEC(’Update PE_Users set GroupID= ‘ + @GroupId +’ Where GroupID in (’ + @BatchUserGroupId + ‘)’)
END
END 


  可以看出,在用户名的地方,没有过滤直接放入查询.

  调用地方:

public bool MoveByUserName(string userName, int groupId)
            {
            Parameters parmsForUsers = new Parameters();
            parmsForUsers.AddInParameter("@UserType", DbType.Int32, 2);
            parmsForUsers.AddInParameter("@UserName", DbType.String, userName);
            parmsForUsers.AddInParameter("@GroupId", DbType.Int32, groupId);
            return DBHelper.ExecuteProc("PR_UserManage_Users_BatchMove", parmsForUsers);
            }利用过程: 


  用户管理,批量移动

  指定用户名 这里加入SQL注入语句

  “/”应用程序中的服务器错误。

  --------------------------------------------------------------------------------

  字符串 'jax')' 后的引号不完整。

  'jax')' 附近有语法错误。

  说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

  异常详细信息: System.Data.SqlClient.SqlException: 字符串 'jax')' 后的引号不完整。

  'jannock')' 附近有语法错误。

  解决方案:

  由于调用时不注意,可能造成危险,所以类似于这类的存储过程,应写在程序外面,便于过滤和发现,不要写在存储过程中。

 

标签: 好话题

相关文章

法律公关:负面新闻处理的新方式_人民网

互联网和自媒体时代,知名品牌已很难不被负面新闻困扰。面对负面新闻、敏感事件的评论甚至是一些捕风捉影的臆测,知名品牌的创始人、高管、公关、涉及到的企业如何对外发声不仅关系到企业商誉、公司股价,如若处理不...

怎么查老婆和其他男人微信聊天记录 可以查看我老公手机上的微信聊天记录

怎么查老婆和其他男人微信聊天记录 可以查看我老公手机上的微信聊天记录 Word文档通常会保留创建人的信息,没想到正是这一点,成了破案关键。 据外媒报道,Hicham Kabbaj曾是美国纽约...

老婆出轨以后,怎么通过正规手段查微信聊天记录搜集证据_攻击者

如果老婆出轨以后,我怎么通过正规手段查微信聊天记录搜集证据?如果我说这是不可能的,那么你肯定不同意。事实上,仍然有可能做到这一点。这种情况的可能性是,其他人愿意向你展示,否则就不存在了。毕竟,社交软件...

黑客帮忙追回被骗的钱可不可信?_黑客帮忙

值得注意的是,在“大爱无疆”官网上显示游学营已经举行了20多期,每期学员人数不等,但基本是青少年。面对“暴力控制”的质疑,负责人居裕然回应称,“大爱无疆”不是医疗机构,他也不是医生,他们给了父母正确教...

怎么样才能查到在哪里开的房?两个人开过房能查出来吗?_开宾馆记录

怎么样才能查到在哪里开的房?两个人开过房能查出来吗?,现在,旅行已经是成为许多人的一种娱乐技巧,受到人们的青睐。近年来,旅行业的蓬勃发展为许多旅馆迎来了第二个春天。在大环境的影响下,旅行业带来的旅行经...

菱帅怎么样

【最满意的一点】油耗【最不满意的一点】空间【空间】仅仅够用【动力】起步动力。 正好我们县城的中国移动订了一批菱帅那时候看起了这车非常好。随后到我们市区4S。 【最满意的一点】车子外观做的流线型比较不...