Home >Database >Mysql Tutorial >利用SQL注入获取服务器最高权限_MySQL

利用SQL注入获取服务器最高权限_MySQL

PHP中文网
PHP中文网Original
2016-05-27 16:57:032628browse

单位有台数据库服务器(windows 2000 操作系统,sql server 2000)

 

前段时间莫名其妙的被攻击了

 

跑到机房,通过PE进去一看,发现多了一个账户(SQLDEBUG)。并且administrator账户被禁用了

 

看看数据没少,也没太在意。利用PE把账户破解了一下,就回单位了

 

今晚回来刚好要去数据库服务器上,下个数据库备份文件。结果发现密码又登陆不了。

 

不祥预感出来了。难道我又要坐3个小时汽车去机房?

 

最关键的是,前段时间刚去过机房。星期一又去 。丢不起这个人呐!

 

第一反应想、。应该是上次那个问题

 

谷歌了下发现SQL 2000下默认是启用“xp_cmdshell”

 

从这个文件命名就知道威力有多大了。。

 

将信将疑的试了试(这个时候虽然服务器密码被改了,但是数据库SA密码还是正常的)

 

Exec master..xp_cmdshell 'net user abc 3388/add'

 

看到上面命令太熟了。以前做过在win7下破解登陆密码也是这个原理

 

在数据库一运行,再到系统登录进去了!!

 

果然服务器上面有一个SQLDEBUG账户就在上面。

 

后面么,就是通过命令把刚才手动创建的用户那啥啥啥

 

(不说了太细了,怕害人。有需要可以微博私心我。)

 

一切OK

 

心里一阵冷汗,庆幸服务器是2000系统,没有远程桌面的。

 

要不然人家拿到账户直接远程上来,完全可以删除数据。而且是为所欲为

 

好了讲下如何防止把

 

首先把这个xp_cmdshell 存储过程禁用。命令如下:

 

USE master

 

GO

 

EXEC sp_dropextendedproc 'xp_cmdshell'

 

GO

 

但是你只禁用根本没有用,因为人家能够还原回来。命令如下:

 

USE master

 

GO

 

EXEC sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'

 

GO

 

最关键还是xplog70.dll 这个DLL。路径:

 

C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll

 

把这个DLL删除或者改名字就可以了。

 

(切记一定要把SQL server 服务停止,不然你改名字是没用的。表面上改过了,实际上还是那个名字)

 

为保险期间,再试试上面创建账户的密码。果然不能创建!OK

 

其实win7密码破解也是同样的原理。

以上就是利用SQL注入获取服务器最高权限_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn