在发现了global.asa+.htr的bug之后,往往sql server数据库的ID和密码以明文的形式暴露在我们眼前,(写程序时候应该注意啦!)我试过几个国内知名的网站,象蚁盟的, 都可以得到他的数据库密码。于是如何进一步取得数据库的控制权限成为我们关注的问题。
有的朋友常常有了密码确连不进对方主机,下面我来说说连接时候需要注意的问题和步骤,抛砖引玉,希望大家把好的方法公布出来,让我们一起进步。
SQL server的两种验证模式:NT验证模式和混合安全模式。
当用户使用Query analyzer登陆到sql server时,系统将提示用户提供登陆名和口令。缺省情况下,登陆名SA。口令为空。用户登陆到sql server后,可以访问服务器上的每一个数据库。一般只有一个数据库被设置为登陆名的缺省数据库,当Query analyzer启动后,该数据库自动使用。
在NT验证模式下登陆,sql server检测当前使用的NT用户帐号,并在syslogins表中查找该用户,以确定用户是否有权限登陆,这种方式用户不必提供密码或登陆名让sql server验证。其实,sql server是从RPC连接中自动获得登陆过程的NT用户信息,即用户必须使用RPC连接登陆才能进行sql server的NT验证。
混合安全模式:这是常用的模式,因为它允许以sql server验证方式或NT验证方式来进行连接,这种模式可以更好的适应各种用户的环境,也是我们可以进入对方数据库的入口。如果我们使用TCP/IP Sockets进行登陆验证,sql server将使用sql server验证模式,如果使用命名管道,sql server将使用NT验证模式。那么,sql server 的验证模式怎么处理登陆名的登陆呢?首先,在syslogins表中检测输入的登陆名和密码,如果存在,且密码正确,则可以登陆。这种模式下我们必须提供登陆名和密码来让sql server检验。当然!我们现在已经知道了他的USERID和PWD,嘿嘿!