>데이터 베이스 >MySQL 튜토리얼 >利用SQL注入获取服务器最高权限_MySQL

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

PHP中文网
PHP中文网원래의
2016-05-27 16:57:032628검색

单位有台数据库服务器(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)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.