我爱Aspx >> C#.Net >> SQL概述及在网络安全中的应用_数据库安全3.4. SQL服务器存储过程利用
3.4.1 存储过程基础
4. 一个完整安装的MSSQL服务器有上千的存储过程。如果你能在一个后台使用mssql的网页应用程序得到SQL注入,你能使用这些存储过程完成一些非凡的成果。我将讨论很少的特殊的过程。取决于网页程序使用数据库的用户,只有一些可以工作,并不是所有的用户都可以利用。第一件事你应该知道存储过程注入不能通过存储过程的返回值来确定你的注入是否成功.取决于你想完成什么,你可能不需要得到数据。你可以找到返回给你的数据的其他意义。存储过程注入比一般的查询注入要容易些,存储过程的注入的弱点利用看起来象这样。
simplequoted.asp?city=seattle';EXEC master.dbo.xp_cmdshell 'cmd.exe dir c:'
注意,
Notice how a valid argument is supplied at the beginning and followed by a quote and the final argument to the stored procedure has no closing quote. This will satisfy the syntax requirements inherent in most quoted vulnerabilities. You may also have to deal with parentheses, additional WHERE statements, etc.但是在这以后将不需要担心列和数据的类型的匹配。这个可能弱点的输出象程序无法返回错误信息一样。我最喜欢存储过程。
5. 3.4.2. xp_cmdshell
xp_cmdshell {'command_string'} [, no_output]
master.dbo.xp_cmdshell是存储过程的圣杯,它带来了一个问题,能够调用命令行的数据库用户的和他的运行权限,这个并不可用除非这个网页程序使用的数据库用户是SA. 运行级别为6
sp_makewebtask [@outputfile =] 'outputfile', [@query =] 'query'
6. 另外一个好的调用对象是master.dbo.sp_makewebtask,象你所看的,它是一个本地的输出文件和一个SQL statement。sp_makewebtask可以查询并建立一个包含输出的网页。注意你可以象使用一个UNC路径名一样使用一个本地输出。这个意思就是这个输出文件可以放有在任何一台连在Internet并且有个可写的SMB共享(SMB请求不需要任何的身份验证)。如果有一个防火墙限制了服务器对Internet,试着把输出文件放在网页目录下(你要知道或者猜测网页的目录)。同样值得注意的是引用查询可能是 包括执行其他的存储过程。Making "EXEC xp_cmdshell 'dir c:'" 这个查询将在网页中给出"dir c:"的输出。当你进行嵌套引用的时候,记得单独的引用和双引号.
4.1数据处理
所有的客户端数据可以被恶意的提交的字符或字符串清除。这些可能在所有的应用程序做到,不仅仅是使用SQL查询的。Stripping quotes or putting backslashes in front of them is nowhere near enough.最好的过滤数据的方式是不用规则的表达方式,使它只包括你所想要的字符类型。举个例子,下边的regxp将只能返回字母和数字,尽可能的过滤象s/[^0-9a-zA-Z]//g 这样的特殊字符。可能的时候尽量使用数字,在这以后只使用数字和字母。如果你需要包括各种各样的标志或标点。确信完全的把它们转换成html标记,像“"e;" or ">”。例如,一个用户提交了一个email地址只允许使用数字和字母还有"@", "_", "." 和"-"。仅仅只有这些字符可以转换成html标记。
Ҷƪл˵?
Access数据库安全的几个问题_数据..[04-28]
针对SQL INJECTION的SQL SERVER安..[04-28]
微软要增强SQL 2005安全功能_数据..[04-28]
小议MSSQL Server 2000的安全及管..[04-28]
SQL Server 2000的安全配置_数据..[04-28]
ASP.NET2.0数据库之SQL Server安..[04-28]
数据安全防护之打造安全.mdb数据..[04-28]
MySQL数据库中的安全解决方案_数..[04-28]
你的MySQL安全了吗?加铸23道安全..[04-28]
MySQL服务器内部安全数据目录访问..[04-28]
升级MD5.ASP,打造完全动态不重复..[04-28]
ASP安全检测与过滤函数SafeCheck..[04-28]
ASP登陆验证页应做的安全问题_AS..[04-28]
Access数据库安全的几个问题_数据..[04-28]
全面了解Cookie的传递流程、编程..[04-28]
针对SQL INJECTION的SQL SERVER安..[04-28]
C#加密路径里的参数,保护参数隐私..[04-28]
微软要增强SQL 2005安全功能_数据..[04-28]
小议MSSQL Server 2000的安全及管..[04-28]
PHP发现安全漏洞_PHP技巧[04-28]