数据库类型

发布时间 2023-10-24 16:26:12作者: xyday

工具:sqlmap,NoSQLAttack

img

img

access

access:表名 列名 数据

其他数据库:数据名 表名 列名 数据

access数据库文件就放在网站源码同一目录下,一个网站一个数据库

且缺少许多函数,比如没文件读写

常用于asp网站

注入时,表名、列名只能猜

如果表名猜不到:查看登录框源代码的表单值 或 观察URL特征等 来猜解

如果列名猜不到:偏移注入

数据库后缀名:.mdb

mssql

sysadmin(=mysql的root)

端口1433

组件xp...:可执行系统命令

后缀名:.mdf

Oracle

高权限没有文件写入

每个查询语句必须有from某个表

dual表示默认的表

?id=1 and (select count () from dual)>0,正常则表示为Oracle数据库

?id=-1 union select ‘null’, (select banner from sys.v_$version where rownum=1) from dual 查看看数据库和版本信息

https://www.cnblogs.com/yuxingjiu/p/16470596.html

MySQL

root

3306

Oracle

默认端口:1521

SQLite

MongoDB

Python

sqlmap不支持MongoDB,NoSQLAttack支持,GitHub都能下

存储的数据格式:BSON(基于且类似JSON){'a':'1','b':'2'}

$query="var data = db.notice.findOne({'id':'$id'}); return data;";

?id=1'}); return ({title:1,content:'2})

可更改的为1 -> title:tojson(db.getCollectionNames())

其中的table称为集合collection

Postgresql

information_schema

字符串连接方式

数据库 字符串连接方式
Oracle 'foo'||'bar',也可以空格
SQL Server 'foo'+'bar'
Mysql 'foo'(空格)'bar',concat('foo','bar')
PostgreSQL 'foo'||'bar'

XML、JSON

一些网站接受JSON或XML格式的输入

弱实现通常只在请求中查找常见的SQL注入关键字,因此您可以通过简单地对禁止关键字中的字符进行编码或转义来绕过这些过滤器。例如,以下基于XML的SQL注入使用XML转义序列对SELECT中的S字符进行编码:

<storeId>
999 SELECT * FROM information_schema.tables
</storeId>

架构

image-20230628170440653

架构1:特点:都是微软开发的,兼容性比较高

架构2:特点:都是甲骨文公司的,兼容性比较高

架构3:特点:有三者开源,,兼容性比较高