数据库基础
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数据库了。

浙公网安备 33010602011771号