如果想要做强做大,基石是最重要的一部分 --小黑血泪史
SQL注入最平常、最普遍、危害最大的一个web漏洞,它的概念很简单,就是前端向后端传递数据的时候,数据没有经过严格的过滤导致的恶意的sql语句传递,导致数据库信息泄露、遭到恶意一次性破坏或持续破坏。
学习的三个方向:数据库及常用命令、注入原理和类型、工具实战演习
注入原理和类型:
(41条消息) TOP16榜首之SQL注入<宝藏文---sql注入常见十一种类型和原理超细解说> -- -- 小黑渗透工程栈( 基础篇2 )_小黑日志的博客-优快云博客
工具实战演习:
(41条消息) TOP16榜首之SQL注入<宝藏文--- 工具实战演习 > -- -- 小黑渗透工程栈( 基础篇3 )_小黑日志的博客-优快云博客
目录
一、 数据库介绍
数据库是电脑数据储存管理的仓库,大量的数据都基本存储在数据库内,所以一旦数据库遭到入侵,就等于自己的所有秘密展现在攻击者面前。
sccess数据库
Sccess数据库全名Microsoft Office Access,微软发布的小型数据库类型,一般储存asp的网页文件,数据库的后缀名:mdb
mssql 数据库
Mssql数据库是Microsoft开发推广的关系数据库管理系统(DBMS),端口号为1433,数据库后缀名:mdf
mysql数据库
Mysql数据库是mysql AB公司开发的关系型数据库管理系统,属于oracle下当前最流行的产品,默认端口:3306
【mysql大于5.0以上版本的数据库中,会1存在一个information_schema数据库,
它保存了整个mysql中的所有信息,称为信息数据库。
SCHEMATA表提供当前mysql实例中的所有数据库信息,
TABLES表提供关于数据库中的表的信息,COLUMNS表提供表中列的信息。】
Oracle数据库
Oracle又名Oracle RDBMS甲骨文公司开发的关系数据库管理系统,常用于比较大的网站,默认端口:1521
二、数据库常用语句
sql语句三个类别
DDL 数据定义语言 create(创建),drop(删除)
DML 数据库操作语言 select insert update(修改)
DCL 数据控制语言grant(授权)revoke(回收权限)
1、数据库
基本常用语句 :
Insert 增
delete 删
update 改
select 查
创建数据库
语法: create database aaa(自定义库名)
语法:create database aaa(自定义库名) character utf8(自定义编码)【创建指定编码数据库】
删除数据库
语法: drop database aaaa(已有库名)
创建表、字段
语法: create table 表名(字段1 数据类型,字段2 数据类型);【可以自定义N个字段】
关于字段,下面会有详细说明
删除表
语法:drop table 表名;
插入数据
语法:insert into 表名(字段1,字段2,字段3....) values(值1,值2,值3...),(值1,值2,值3)
注:可以省略字段名,但是值要对应表中字段数量,可以同时插入多条数据
删除数据
语法:delete from 表名 where 字段=值;
查询数据
语法:select 字段1,字段2,字段3....from 表名 where 条件
查询起别名
语法:select username a from 表名 where 条件;
其中a就是username的别名
修改语句
语法:update表名set字段1=值1,字段2=值2....where条件
关于字段数据类型
数据类型相当于数据库的基础框架,决定数据库中储存的数据类型和数据大小。
数据类型大致分为三类:
数值型、字符串类型、日期类型
数值型:
数值型分为三种类型
整型【整数】 、浮点型【小数】、定点型【精确小数】
TINYINT | 0~255 | 小整数 |
SMALLINT | 0~65535 | 大整数 |
MEDIUMINT | 0~1677215 | 大整数 |
INT/INTEGER | 0~4294967295 | 大整数 |
BIGINT | 0~18446744073709551615 | 极大整数 |
【 常用:TINYINT、INT、BIGINT】不是选择越大越好,储存字节越大占用空间越大,合理即可。
int(X); X代表显示宽度,但是不代表可以储存的数值
FLOAT | 单精度浮点数 |
DOUBLE | 双精度浮点数 |
Float(4,2) 表示范围-99.99~99.99 4代表总个数,2代表小数位数(8位精度)
DOUBLE (4,2) 4总个数,2小数点位数 (16位精度)
Unsigned 表示从0开始,不包含负数
注:如果插入数据123.45678 实际可能储存的是123.45 实际为5位,所以以实际为准。
decimal | 保证小数点的精确度 |
十进制储存方式
第一位数范围1~65,默认为10
第二位数范围0~33,第二位数不能大于第一位数。
字符串类型:
CHAR | 0~255字节 | 长字符串 |
VARCHAR | 0~65534字节 | 长字符串 |
TINYTEXT | 0~255字节 | 短文本字符串 |
Text | 0~65535字节 | 长文本数 |
LONGTEXT | 0~42944967295字节 | 极大文本数据 |
TINYBLOB | 0~255字节 | 二进制字符串 |
BLOB | 0~65535字节 | 二进制形式的长文本数据 |
LONGBOB | 0~4294967295字节 | 二进制形式的极大文本数据 |
其中CHAR和VARCHAR为常用,CHAR为定长,指定储存长度,长度不够会自行空格代替,VARCHAR长度不够不会用空格代替。
Char(x):x表示储存最大字符数
长文本用txt类型,二进制对象、图片、音视频使用BLOB类型。
日期类型:
YEAR | 1字节 | 格式:YYYY 年份值 |
TIME | 3字节 | 格式:hh:mm:ss 时间值 |
DATE | 3字节 | 格式:YYYY-XX-DD 日期值 |
DATETIME | 8字节 | 式:YYYY-XX-DD hh:mm:ss 混合日期和时间【储存范围更广,不会随着系统时区而该改变】 |
TIMESTAMP | 4字节 | 格式:YYYY-XX-DD hh:mm:ss 混合日期和时间值【储存当前时间值,会随着系统时区而改变】 |
2、常用函数
字符串函数
Concat、concat_ws、group_concat
语法:
Select concat (id,‘|’,username,’|’,password) from users;[concat_ws语法格式一样)
Select group_concat(‘\n’,username) from users;
返回指定ASCll字符对应的值
Ascii 、ord
Select ascii(’a‘);【语法一样】
返回指定数字对应的ascii码字符函数
Char
Select char(123)
计算相关
Length、count
语法:
Select length(database());
Select count(*) from users;
注释相关
#
--+
/**/
/*!*/
/*!50000*/ mysql 5通用(版本带的内联注释)
3、sql注入常用函数和语句
敏感信息函数
mysql数据库敏感信息函数
Current_user() | 当前用户 |
ession_user() | 链接数据库的用户名 |
@@basedir() | mysql安装路径 |
@@datadir() | 数据库路径 |
@@cersion_compile_os | 操作系统版本 |
最近在研究世界杯,更新慢一点~
不知道csdn上可以发表研究心得不哈哈哈哈哈哈哈哈哈