动态网页的显著特点之一就是与数据库的交互,只要涉及大型数据库,动态网页调用其数据库时一般都需要数据库账号和密码。这些大型数据库主要以SQL Server和Oracle为代表。Access数据库一般不设置密码,即使设置了密码,也可以使用Access密码查看器获取其密码。网站或者信息系统在调用数据库时需要进行连接,考虑到执行效率和编码效率等原因,一般都将数据库连接等单独写成一个模块,这些文件主要用来连接数据库。在这些文件中会包含数据库服务器的IP地址、数据库类型、数据库用户账号和密码等信息。
控制或者获取一个Shell后,通过查看index.asp、index.php及index.jsp等文件,从中获取数据库连接文件。数据库连接文件的名称比较容易识别,如conn.asp、dbconn.asp等,这些文件可能出现在网站根目录、inc文件夹、includes文件等处。通过查看这些网页文件,可以获取数据库IP地址、数据库用户账号及口令,利用获取的信息可以进行计算机渗透、提权甚至实施完全控制。
主要通过打开网站并访问其网站中的网页来确认网站脚本类型。在本例中,打开IE浏览器,在其地址栏中输入IP地址“61.*.*.*”,打开网站,如图3-56所示。在浏览器状态栏中可以看到详细的地址和文件显示,本例为“http://*.*.*.*/shi.asp”,说明该网站的脚本类型为ASP。
图3-56 获取网站脚本类型
技巧
(1)可以直接通过在浏览器地址栏输入“http://*.*.*.*/index.asp”、“http:// *.*.*.*/index.php”、“http://*.*.*.*/index.jsp”等判断网站的类型,规则是“IP地址+文件名”,文件名可以是index.asp(jsp/php/aspx),也可以是default.asp(jsp/php/aspx)等。
(2)如果打开网页后还是无法确定该网站的类型,则可以通过单击网站中的链接地址来确定。如果打开的网页后缀为 .asp,则网站脚本类型为ASP,其他脚本类型判断原理相同。
(3)打开“Internet信息服务(IIS)管理器”窗口,单击“网站属性”中的“文档”选项,可以获取该网站的默认文档名称。
利用漏洞攻击的方法获取该系统的用户账号和口令后,可以通过Radmin远程控制软件直接进行完全控制。进入系统后,在桌面发现了“Internet信息服务”快捷键,双击该快捷键打开“Internet信息服务(IIS)管理器”窗口,依次展开目录至网站,选中“web”网站文件夹,单击右键,在弹出的快捷菜单中选择“属性”选项,打开Web属性窗口,如图3-57所示。然后,切换到“主目录”标签页获取其网站根目录“D:\*”。
图3-57 获取网站根目录位置
说明
在本案例中,操作系统为Windows 2003 Server,因此其Web目录与Windows 2000 Server不同,但操作大致相同。打开IIS管理器后,查找网站目录并展开即可获知网站的具体位置。
在3.6.2节我们获取了网站文件的物理路径。通过资源管理器访问网站根目录,然后使用“记事本”程序打开首页文件index.asp,如图3-58所示,从中可以获取网站数据库连接文件,这个文件极有可能是 i_include/database_.asp。
图3-58 查看网站首页文件
在网站根目录中打开i_include文件夹,在其中找到database_.asp文件。使用“记事本”程序打开该文件,其脚本如图3-59所示。通过该脚本内容可知,数据库类型为SQL Server,数据库服务器地址为本地(Local),用户为“sa”,密码为“111”,数据库为“j***”。通过该文件中的“conn.DefaultDatabase="job_demo21_data_new"”语句还可以知道,该系统极有可能来自网上。
图3-59 获取数据库的用户及密码等信息
在本案例中,如果数据库不是本地数据库,则可以通过注册SQL Server或者直接使用SQLTools连接,进行添加用户和密码、执行命令等操作。
一种防范措施是通过VB等编程语言将数据库连接模块写成dll,使用时在系统中注册即可。不过,对托管在虚拟主机上的个人网站来说,注册dll比较麻烦。
另一种防范措施是使用微软自带的SCRENC软件进行加密。
本案例利用漏洞攻击获取了系统的用户和密码,通过系统中的原有远程控制软件,轻松得到了数据库账号和密码等信息。