数据库mysql基操

在这里插入图片描述
在这里插入图片描述
1)mysql> select system_user(); #返回系统用户名
在这里插入图片描述

2)mysql> select user(); #返回数据库用户名
在这里插入图片描述

3)mysql> select current_user(); #返回当前用户名
在这里插入图片描述
4)mysql> select database(); #返回当前数据库(前提是你要先进入一个数据库)
在这里插入图片描述
5)mysql> select version(); #返回当前数据库版本
在这里插入图片描述
6)mysql> select @@datadir; #返回数据库路径
在这里插入图片描述
7)mysql> select @@basedir; #返回数据库安装路径
在这里插入图片描述
8)mysql> select @@version_compile_os; #操作系统信息
在这里插入图片描述
9)mysql> select * from users; #查看users表中所有内容
在这里插入图片描述
10)mysql> select count(*) from users; #查看users表中共有多少条数据
在这里插入图片描述
11)mysql> select concat(username,password) from users; #将users表中用户名和密码字段内容进行拼接
在这里插入图片描述
12)mysql> select concat_ws(’:’,username,password) from users; #用连接符将用户名和密码进行连接
在这里插入图片描述
13)mysql> select group_concat(username) from users; #将users表中的用户名字段一行显示出来
在这里插入图片描述
14)读写因为我的环境不知道为啥报错,借用别人成功的
在这里插入图片描述
15)mysql> select ascii(‘a’); #返回字符串的ascii码
在这里插入图片描述
16)mysql> select mid(‘mysql’,1,2); #mysql为字符串,1为从第几个开始,2为长度
在这里插入图片描述
17)mysql> select length(‘mysql’); #字符串的长度
在这里插入图片描述
18)mysql> select left(‘mysql’,2); #返回2个字符串,2代表长度
在这里插入图片描述
19)mysql> select if(1<2,2,3); #第一个参数判断ture和false,真输出第二个参数,假输出第三个参数
在这里插入图片描述
20)mysql> select strcmp(‘a’,‘b’);
在这里插入图片描述
21)mysql> select ifnull(null,2); #参数一不为空,返回参数一,否则返回参数二
在这里插入图片描述

22)mysql> select id,username from users where username like ‘%ad%’; #like匹配符,%为任意字符
在这里插入图片描述

23)mysql> select user() regexp ‘root’;
在这里插入图片描述
万能密码通常是指开发人员在开发过程中使用超级管理员进行开发,开发完成后没有过滤掉这些常用的超级管理员;另一种是存在SQL漏洞管理员账号。下面分别进行讨论:

万能密码原理

1.万能密码:用户名 admin、密码admin,用户名admin、密码123456

2.万能密码:用户名 ‘or’=‘or’、密码 ‘or’=‘or’
原理解释:假设用户登录对应的语句为:
select name, pwd from login where name=’’ and pwd=’’;
如果用户名输入正确则直接登录,否则提示用户名或密码错误,使用万能密码后的SQL语句如下:
select name, pwd from login where name=’‘or’=‘or’’ and pwd=’‘or’=‘or’’;
核心代码,两个单引号匹配,即name=’’,然后or连接,单引号等于单引号(’=’)这是恒成立的,紧接着or连接两个单引号(’’),同理密码pwd。这样or连接的(’=’)是恒成立的,故返回结果为真,导致直接登录。

3.万能密码:用户名 ‘or’’=’、密码’or’’=’
原理解释:此时对应的SQL语句如下:
select name, pwd from login where name=’‘or’’=’’ and pwd=’‘or’’=’’;

4.万能密码:用户名’or’=’–、密码’or’=’–
原理解释:此时对应的SQL语句如下:
select name, pwd from login where name=’‘or’=’–’ and pwd=’‘or’=’–’;
在这里插入图片描述
在这里插入图片描述
从中抽两个出来讲解

ascii(substr((select user()),1,1))=144

可以分解成下面
ascii(
substr( (select user() ),1 ,1)
)
=144
在这里插入图片描述
#查看数据库用户名的第一个字符的ascii是否=144返回真(1),否则为假(0)

if(ascii(substr((select user()),1,1))=144,1,sleep(5))

分解如下
if(
ascii(substr((select user()),1,1))=144,
1,
sleep(5)
)

在这里插入图片描述#查看数据库用户名的第一个字符的ascii码是否=144返回真(1),否则为假(0)睡5秒

在这里插入图片描述
MySQL内置库(>=5.7)

查库 :

select schema_name from information_schema.schemata

查表:

 select table_name from information_schema.tables where table_schema='security';

查列:

select column_name from information_schema.columns where table_name='users';

查数据:

select * from security.users;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值