zoukankan      html  css  js  c++  java
  • mysql下的information与concat

    use information_schema;
    show tables;

    可以看到很多表

    在注入的时候,有用的表是tables,columns

    这两个表存了整个mysql数据库中的表的信息,列的信息

    看一下两个表中的信息

    TABLES:

    在注入过程中只需要关注两条,table_name 和table_schema,table_name是所有表的表名,table_schema是数据库的名字,

    比如在jsp表下有很多表

    查找tables表中,当table_schema=jsp时的table_name,可以看到和use jsp;show tables;指令执行的结果一致

    通俗的说法就是 看看jsp数据库下面有哪些数据表

     

     或者反过来查, select table_schema from information_schema.tables where table_name="c_programming";

    查找当table_name=“c_programming”时,有哪些数据库,通俗点说就是,看看哪些数据库下面有一个叫做“c_programming”的数据表。

    COLUMNS:

     

     这个视图下也有table_schema,table_name,还有一个column_name

    可以看一下column_name,举个例子,看一下jsp表下的c_programming的信息

     列名分别为number,content,a,b…………

    执行select column_name from information_schema.columns where table_schema="jsp" and table_name="c_programming";

    这个是查看 jsp库下c_programming表的字段信息,

     一致

    所以可以直接用information_schema.colums表,重点为其中的table_name,column_name,table_schema几个字段,可以很快的得到需要的信息

    之后是concat和group_concat

     concat可以把字段拼接起来,group_concat可以把每一条数据拼接起来(前提是知道字段名)

    首先看一个表:

     select concat(username,password) from admin.admin;

     或者是加点其他的字符,方便区分 select concat(username," + ",password) from admin.admin;

     select group_concat(username," + ",password) from admin.admin;

     group_concat也可以加点东西区分,默认是一个",",在group_concat()里加一个separator参数(不要逗号)

    举个栗子:select group_concat(username," + ",password separator ';') from admin.admin;

    然后来尝试用information_schema来获取admin所有的信息,

      

    1、

    select database();确认数据库名

      

    select version();确认mysql版本

      

    2、

    select distinct table_schema from information_schema.columns;查看所有的库名,实战中估计会要用到group_concat

    select  group_concat(distinct table_schema) from information_schema.columns;

     

    3、

     select group_concat(distinct table_name) from information_schema.columns where table_schema="admin"; 查看该库下的表

     select group_concat(distinct table_name) from information_schema.columns where table_schema="security";

    4、

    select group_concat(column_name) from information_schema.columns where table_schema="security" and table_name="users";查看该表的字段名

     select group_concat(column_name) from information_schema.columns where table_schema="admin" and table_name="admin";

    5、

    select group_concat(id," = ",username," = ",password separator " ") from security.users;爆数据

      select group_concat(username," = ",password separator " ") from admin.admin;

     

    c_programming

  • 相关阅读:
    算法时间测试
    HDU1164
    git 中 HEAD detached from 802e836
    mysql中的substring()截取字符函数
    git分支/标签操作
    git简介、基本命令和仓库操作
    markdown编辑器学习
    数据库的三范式
    switch语句能否作用在byte,long,string上
    Spring的优缺点
  • 原文地址:https://www.cnblogs.com/This-is-Y/p/14257025.html
Copyright © 2011-2022 走看看