SQL注入(不同数据库之间)

简要学习各种数据库的注入特点:

数据库:Access, Mysql ,mssql(sql server) ,MongoDB, Oracle, Postgresql, sqlite,sybase等。

工具:Sqlmap, NoSQLAttack, Pangolin等。

SQL注入(不同数据库之间)_第1张图片

其他数据库大体结构都相同,但access的数据库存在于asp网站内的一个文件夹下,不同网站对应不同数据库。

因此注入方式有所不同,不用注库名,而且没有access数据库没有文件读写功能等等特点。

故有以下结构:
SQL注入(不同数据库之间)_第2张图片

Access数据库:

由于access没有像mysql那样的information_schema数据库,因此需要直接直接猜表名,而且用字典跑一下就能爆出来。
SQL注入(不同数据库之间)_第3张图片

SQLserve数据库

关系型数据库:
SQL注入(不同数据库之间)_第4张图片

在sqlserve中权限高的是systemadmin,简称sa。

判断是否为sqlserve可以参考:

SQL注入(不同数据库之间)_第5张图片
代理可以这么用,参考下可以锻炼自己手工注入的能力
SQL注入(不同数据库之间)_第6张图片

可以参考:sql serve注入方法
一位大佬的:https://blog.csdn.net/qq_36119192/article/details/88679754

postgresql数据库:

关系型数据库,其他数据库其实大体与mysql一样,可以自己百度注入。比如同样都有information_schema数据库。

PostgreSQL 注入整理

墨者刷题笔记(收费):https://blog.csdn.net/qq_39936434/category_9103379.html

oracle数据库

其实也与mysql差不多,多百度。

参考:oracle注入

MongoDB数据库:

非关系型数据库,在 ctf,红蓝对抗中用的较多,多与python一块用,与mysql差距还是比较大的,需要自行了解下基本语法,比如数据传输大多就是json格式。

sqlmap只支持关系型数据库,因此mongodb数据库工具需要用到**nosqlattack**工具(只能在linux下运行)。

SQL注入(不同数据库之间)_第7张图片
SQL注入(不同数据库之间)_第8张图片
手工注入:因为是写入类似json那样的列表中的,要闭合 '}) ,同时语法也有所不同,用php输出是也要注意数组输出函数等等。

可以参考:墨者 - SQL手工注入漏洞测试(MongoDB数据库)
不同数据库的SQL注入不同------手工注入方法的汇总

补充:

Access偏移注入:解决列名获取不到的情况 ,查看登陆框源代码的表单值或观察URL特征等也可以针对表或列获取不到的情况.

你可能感兴趣的:(Web安全,数据库,sql,web安全)