• sql手工注入1


    手工注入常规思路

    1.判断是否存在注入,注入是字符型还是数字型

    2.猜解 SQL 查询语句中的字段数

    3.确定显示的字段顺序

    4.获取当前数据库

    5.获取数据库中的表

    6.获取表中的字段名

    7.查询到账户的数据

     

    information_schema数据库表说明

    SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

    TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

    COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

    STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。

    USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。

    SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。

    TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。

    COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。

    CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。

    COLLATIONS表:提供了关于各字符集的对照信息。

    COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。

    TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。

    KEY_COLUMN_USAGE表:描述了具有约束的键列。

    ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

    VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。

    TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表

     

    MySQL GROUP_CONCAT()函数将组中的字符串连接成为具有各种选项的单个字符串。

    实验192.168.8.172/sql/

    Less-1

    GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

    输入id=1的正常页面

     

     数据库的注释用-- (这里有一个空格),但是在URL中最后加上-- ,浏览器会把发送请求末尾的空格去掉,所有我们用--+代替-- ,因为+在URL被URL编码后表示空格。

    先尝试爆破数据库名,将ID改为一个数据库不存在的值,使用union select1,2,3进行联合查询查看是否有显示位。

    页面返回正常,因此该注入支持union联合查询注入。

    查询有那些数据库

     http://127.0.0.1/sql/sqli-labs-master/Less-1/?id=qswz%27%20union%20select%201,(select%20group_concat(schema_name)from%20information_schema.schemata),3%20--+

    命令解释:

            schema_name 当前数据库

            information_schema (数据词典)是MySQL自带的数据库,提供了访问数据库元数据的方式(元数据是关于数据库的数据,如数据库名或表名,列的数据类型,或访问权限等)

            schemata (information_schema中的一个表):提供了当前MySQL实例中所有数据库的信息。

    爆出了数据库

    我们查询一下security数据库有那些表

    http://127.0.0.1/sql/sqli-labs-master/Less-1/?id=qswz%27%20union%20select%201,(select%20group_concat(schema_name)from%20information_schema.schemata),(select group_concat(table_name)from  information_schema.tables where table_schema='security')%20--+

     

     这是手工注入的,用sqlmap的话可以快速扫描出来的。

  • 相关阅读:
    Get-CrmSetting返回Unable to connect to the remote server的解决办法
    Dynamics 365中的常用Associate和Disassociate消息汇总
    Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法
    Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
    Dynamics 365检查工作流、SDK插件步骤是否选中运行成功后自动删除系统作业记录
    注意,更改团队所属业务部门用Update消息无效!
    Dynamics 365的审核日志分区删除超时报错怎么办?
    Dynamics 365使用Execute Multiple Request删除系统作业实体记录
    Dynamics 365的系统作业实体记录增长太快怎么回事?
    Dynamics CRM日期字段查询使用时分秒的方法
  • 原文地址:https://www.cnblogs.com/qswz/p/11903693.html
Copyright © 2020-2023  润新知