存储过程的注入及解决

访客4年前黑客文章868

由于存储过程中存在用于字符串连接的 + 号连接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')' 附近有语法错误。

  解决方案:

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

 

标签: 好话题

相关文章

如何监控微信聊天记录,教你怎么做-免费接单黑客QQ

如何监控微信聊天记录,教你怎么做-免费接单黑客QQ 谷歌以安全为由禁止员工在笔记本中使用Zoom,疫情时代,长途办公、电子讲授需要大增,视频集会领域Zoom也刹时爆红。稀有据表现,Zoom的日活一度...

酒店记录公安会永久保存吗

在很早以前的时候,我们可以看到宾馆的前台有一个住宿登记本这是专门用来记录相应的住宿旅客的,可是随着科技的发展基本上宾馆登记都是和互联网相互连接的,只要是前者登记了后者就会直接统计到全国的公安机关系统当...

杭州职业技术学院怎么样

2007年,通过全国高职高专人才培养工作水平优秀评估;2008年,被确定为浙江省示范性高等职业院校建设单位。学校位于杭州经济技术开发区,占地1000亩,设友嘉机。 我也没研究过这个学校、、找来的、对你...

淘宝有黑客接单暗号(淘宝找黑客暗语是什么)?

淘宝找黑客暗语是什么?如今的网络时代使得淘宝被大家成为万能宝,好像什么都能够在淘宝上面购买找到,那么在淘宝平台上是否存在接单黑客,我们应该如何的去和这些接单的人群进行暗号交接,最常用的手段又是什么?...

远程查看对象微信聊天(用自己手机查老婆和别人聊天)

远程查看对象微信聊天(用自己手机查老婆和别人聊天)俗语说“男子追女人的层间山,女人追男子的夹层纱”,天下上非常远的间隔不是宇宙之间,而是我站在你眼前,你不晓得我稀饭你。当你全力而为地表白你的爱时,你会...

怎样定位别人手机使用位置,在别人不知道的情况

【中信银行信用卡】网友提问: (每日更新)支持SSL的代理服务器! 突破南北网络瓶颈,提高中信网银访问速度 因为中信网银使用的是北京网通的线路,网通用户访问速度很理想,南方电信用户访问速度极慢,所以将...