<% dim ModuleName,InfoID,ChannelShortName,CorrelativeArticle,InstallDir,ChannelDir,Keyword,PageTitle,ArticleIntro,Articlecontent Keyword=stripHTML("SQLServer,SQLServer注入,注入技巧") PageTitle=stripHTML("SQLServer注入技巧") ArticleIntro=stripHTML("今天给大家讲讲SQLServer注入技巧") Articlecontent=stripHTML("           一、对于SA权限的用户执行命令,如何获取更快捷的获取结果?  有显示位  无显示位  其实这里的关键并不是有无显示位。   生成的数据写进…") ModuleName = stripHTML("hack") InfoID = stripHTML("227506") ChannelShortName=stripHTML("Hack") InstallDir=stripHTML("http://www.77169.com/") ChannelDir=stripHTML("hack") %> SQLServer注入技巧 - 华盟网 - http://www.77169.com
您现在的位置: 华盟网 >> Hack >> 黑客技术 >> 黑客入侵 >> 正文

[组图]SQLServer注入技巧

2016/6/29 作者:关注安全技术 来源: 网络收集
导读 <% if len(ArticleIntro)<3 then Response.Write Articlecontent 'Response.Write "Articlecontent" else Response.Write ArticleIntro 'Response.Write "ArticleIntro" end if %>

      

    一、对于SA权限的用户执行命令,如何获取更快捷的获取结果?

  有显示位

  无显示位

  其实这里的关键并不是有无显示位。   生成的数据写进一张表的时候,会产生很多行。而我们要做的就是如何很多行通过显示位、或者报错语句一次性爆出来,这里的关键就是多行合一。

  方法①

        

  解析:

  这里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命令查找。

  方法①(被降权:–亲测成功):

      

  三、如何利用注入点getshell

  方法①(差异备份)–客户端亲测成功–并未要求权限,可以在非sa权限的注入点测试

       

  PS:

  如果不能备份,很有可能是访问权限的问题。可以切换目录尝试

  如果表存在,也不能成功;所以先判断表是否存在,如果存在就删除。

  方法③(echo 输出一句话木马)–sa权限+当前用户写权限–亲测成功

     

  PS:

  这里由于是注入点,因此需要注意编码的问题。一般来说,网页的编码和数据库的编码是一致的(如果不一致~~~算我输)。这里我用了一个中文路径做说明。

  四、如何避免使用select之类的关键字

  方法①:十六进制混淆

    

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

        

  六、结语

  这篇文章是很久以前整理的,有些地方可能有不对之处,希望大家能够指出。



  • 上一篇Hack:

  • 下一篇Hack: 没有了