sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”...

发布时间:2022-08-19 12:25

事情的起因,前天大清早,朱哥还在床上睡眼惺忪,收到这学期上课班上一枚小鲜肉的消息(想八卦的感觉浮现了)。

如下:

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第1张图片

我赶紧爬起来去上厕所,顺道发消息让小鲜肉写了一篇稿(小哥哥小姐姐们行行好,请认真阅读以下文字)。

作者:王仕淋——云南工商学院智能科学与工程学院2019级(现大一新生哦)软件示范1班学生,00后,个人兴趣爱好:Arduino 开发;钻研:Windows 软件脱壳分析软件逆向分析。PS.有稳定女友(朱哥真有点八卦哦,江湖上说做 IT 的没有女朋友,朱哥无非是想找人打脸而已)。

-------------------------

以下为作者原文(朱哥增加了适当补充):

0×00 背景数据库在 web 动态网站系统中必不可少(ASP,PHP,JSP系统等)。网站所有数据都由一个专门的数据库来存放,网站数据可以通过网站后台直接发布到网站数据库,网站则对这些数据库进行调用,网站数据库根据网站的大小,数据的多少,选用 MySQL 或者 Access、DB2、Oracle 等数据库。既然网站能直接调用数据库,那么在网站在提权表单的时候就可以一同把 SQL 命令(结构化查询语言)也提交上去最终达到欺骗服务器执行恶意的 SQL 命令。这就是动态网站常见 SQL 注入漏洞。

0x01 Getshell

我对某学校网站通过一系列操作得到了 webshell(朱哥补充:webshell 就是以 asp、jsp 或者php 等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门)。

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第2张图片

嗯,没错,服务器网站目录就在 C 盘,还看到了“网上阅卷系统”,网上阅卷基本上都由内网映射外网,那说明有内网的话还能进行内网渗透,接下来肯定不能善罢甘休,于是就准备通过 cmd 提权。

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第3张图片

加载 DLL 出错。难道 cmd 坏了?由于回显没有显示具体的 DLL,所以放弃修复 cmd。

一番焦急过后扫了扫端口:

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第4张图片

熟悉的 1433 居然暴露在外网(朱哥补充:熟悉的小伙伴都知道,1433 就是 SQL Server 数据库默认的端口号)。于是翻了翻 web 的配置文件,打开配置文件。

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第5张图片

嗯,居然是明文。真香。

0x02 SQL命令提权

拿出封尘已久的工具……

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第6张图片

难道 xp_cmdshell 没有开?我……

由于天色已晚,不得不上床睡觉,于是乎在手机上下载了个数据库管理软件,试试看能不能发现新大陆,登录后发现…

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第7张图片

new_xp_cmdshell ???

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第8张图片

那何为 xp_cmdshell 呢?

xp_cmdshell 就是 SQL Server 中运行系统命令行的系统存储过程。

以操作系统命令行解释器(如cmd.exe)的方式执行给定的命令字符串,并以文本行方式返回任何输出。授予非管理用户执行 xp_cmdshell 的权限。回显 0 为成功,非 0 为失败。

这里由于是 new_xp_cmdshell,就顺便看了一下数据(朱哥给加了点代码注释):

/*标识符可以由双引号分隔,而文字必须由单引号分隔。*/SET QUOTED_IDENTIFIER ONGO/*支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE。*/SET ANSI_NULLS ONGO/*赤裸裸地展示着存储过程内部代码,仿佛在说:让暴风雨来的更猛烈些吧*/ALTER PROCEDURE new_xp_cmdshell(@cmd varchar(255)) ASDECLARE @ID int EXEC sp_OACreate ' WScript.Shell',        @ID OUT EXEC sp_OAMethod @ID, 'Run',        Null,@cmd,0,1 EXEC sp_OADestroy @IDGO

嗯,没错了,大体就是:创建储存过程,调用了 cmd 和 WScript.shell。

于是我立刻打开 Navicat 连接上数据库,新建查询,执行添加用户命令。

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第9张图片

用大马查询一下,成功加入了 administrs 用户。

77b983a3dc8a4203ed55942f9663bef9.png

0x03 后记

此次测试也说明了数据库的诸多隐患,通过数据库得到个人信息的事情也屡见不鲜,某某企业信息泄露什么的新闻的越来越多,也不得不说明数据库安全至关重要,是 DBA 不可轻视的重要领域。

数据库的安全性涉及的5个层次及防范措施:

(1)用户层:侧重用户权限管理及身份认证等,防范非授权用户以各种方式对数据库及数据的非法访问。 

(2)物理层:系统最外层最容易受到攻击和破坏,主要侧重保护计算机网络系统,网络链路及其网络节点的实体安全。

(3)网络层:所有网络数据库系统都允许通过网络进行远程访问,网络层安全性和物理层安全性一致重要。

(4)操作系统层:操作系统在数据库系统中,与DBMS交互并协助控制管理数据库。操作系统安全漏洞和隐患将成为对数据库进行非授权访问的手段。

(5)数据库系统层:数据库存储着重要程度和敏感程度不同的各种数据,并为拥有不同授权用户共享,数据库系统必须采取授权限制,访问控制。加密和审计等安全措施。

以上引用内容来自于百度百科

sqlserver 由于文件不可访问_我们学院的小鲜肉教你“SQL Server配置文件到提权”..._第10张图片

他为我们今后在数据库学习和应用方面指引了一些注意事项,用自己的技术帮助别人。PS.学会这些不是为了让你去入侵别人的系统,而是能够更好的自我保护系统。

喜欢他的文章就赞赏呗,朱哥收到会完全转发给原作者,写字不易,感谢!

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号