一、课程名称:mysql重要库表学习及利用
二、课程内容
1、联合注入union select
SCHEMATA ⾥⾯存放的是所有的数据库的信息TABLES ⾥⾯存放的是所有的表的信息COLUMNS ⾥⾯存放的是所有字段的信息
table_schema=库名 table_name=表名
2、information_schema这个数据库⾥⾯存放了所有数据的库名、表名、字段名、权限等等信息
3、对于 Information_schema 数据库重点需要了解 schemate , tables , columns 这三张表。
1、查看 schemata 这张表的 schema_name 这⼀个字段 存储整个mysql的库
2、查询数据库版本 Select version();
3、取库名 Select schema_name from information_schema.schemata;这个命令就和 show databases; ⼀样
4、查看 tables 这表的 table_name 字段 存储的是 每⼀个库的表的名称
5、取表名 Select table_name form information_schema.tables where table_schema='库名';
6、查看 columns 这个表 column_name 这个字段 存储的是整个库的表的所有字段
7、取字段 Select column_name form information_schema.columns where table_schema='库名' and table_name='表名';
4、url解码%20表示空格
http://10.211.55.3/sqli/Less-1/?id=1%27%20order%20by%204%20%23
http://10.211.55.3/sqli/Less-1/?id=1' order by 4 #
5、MySQL靶场安装
6、hackbar安装
WEB渗透测试工程师系统班20303期 第12节课作业 一、 常用的sql函数有哪些? 一、聚合函数(Aggregate Functions) COUNT() - 计算行数 SUM() - 求和 AVG() - 计算平均值 MAX() - 获取最大值 MIN() - 获取最小值 GROUP_CONCAT() (MySQL) / STRING_AGG() (SQL Server/PostgreSQL) - 将多行合并为字符串 二、字符串函数 CONCAT() - 连接字符串 SUBSTRING() / SUBSTR() - 提取子字符串 TRIM() - 去除首尾空格 LTRIM() / RTRIM() - 去除左/右空格 UPPER() / LOWER() - 转换为大/小写 LENGTH() / LEN() - 返回字符串长度 REPLACE() - 替换字符串 LEFT() / RIGHT() - 返回左/右指定长度字符 CHARINDEX() (SQL Server) / INSTR() (Oracle/MySQL) - 查找子串位置 三、数值函数 ROUND() - 四舍五入 CEIL() / CEILING() - 向上取整 FLOOR() - 向下取整 ABS() - 绝对值 MOD() - 取模 POWER() - 幂运算 SQRT() - 平方根 RAND() - 随机数 四、日期时间函数 NOW() / GETDATE() - 当前日期时间 CURDATE() / GETDATE() - 当前日期 CURTIME() - 当前时间 DATE() - 提取日期部分 TIME() - 提取时间部分 YEAR() / MONTH() / DAY() - 提取年/月/日 HOUR() / MINUTE() / SECOND() - 提取时/分/秒 DATEDIFF() - 计算日期差 DATE_ADD() / DATE_SUB() - 日期加减 DATE_FORMAT() (MySQL) / TO_CHAR() (Oracle) - 格式化日期 五、条件函数 CASE WHEN...THEN...ELSE...END - 条件表达式 IF() (MySQL) - 简单条件判断 COALESCE() - 返回第一个非NULL值 NULLIF() - 两值相等返回NULL ISNULL() / IFNULL() / NVL() - 处理NULL值 六、窗口函数(分析函数) ROW_NUMBER() - 行号 RANK() - 排名(有并列会跳过序号) DENSE_RANK() - 密集排名(有并列不跳过序号) NTILE() - 分组排名 LEAD() / LAG() - 访问前后行数据 FIRST_VALUE() / LAST_VALUE() - 获取窗口第一/最后值 七、类型转换函数 CAST() - 类型转换 CONVERT() - 类型转换(SQL Server/MySQL) TO_CHAR() / TO_NUMBER() / TO_DATE() (Oracle) - 类型转换 二、 information_schema数据库里面重点应该关注哪些数据表? 1、SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。 2、TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。 3、COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。 4、STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。 5、USER_PRIVILEGES(⽤户权限)表:给出了关于全程权限的信息。该信息源⾃mysql.user授权表。是⾮标准 表。 6、SCHEMA_PRIVILEGES(⽅案权限)表:给出了关于⽅案(数据库)权限的信息。该信息来⾃mysql.db授权 表。是⾮标准表。 7、TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源⾃mysql.tables_priv授权表。是⾮标准表。 8、COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源⾃mysql.columns_priv授权表。是⾮标准表。 9、CHARACTER_SETS(字符集)表:提供了mysql实例可⽤字符集的信息。是SHOW CHARACTER SET结果集取 之此表。 10、COLLATIONS表:提供了关于各字符集的对照信息。 11、COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可⽤于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。 12、TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。 13、KEY_COLUMN_USAGE表:描述了具有约束的键列。 14、ROUTINES表:提供了关于存储⼦程序(存储程序和函数)的信息。此时,ROUTINES表不包含⾃定义函数 (UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。15、VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则⽆法查看视图信息。16、TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表 三、 通过information_schema查询库名、表名、以及自己创建的数据表的字段名和具体数据
|