ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL注入中information_schema的作用

2021-10-22 20:02:55  阅读:192  来源: 互联网

标签:information 数据库 sqli SQL select schema


实验简介

实验所属系列:WEB安全应用

实验对象:WEB安全爱好者

相关课程及专业:渗透测试技术

实验时数:1小时

实验类别:实践实验类

预备知识

MySQL语法:https://dev.mysql.com/doc/refman/5.7/en/select.html

MySQL查询数据:http://www.runoob.com/mysql/mysql-select-query.html

实验目的

通过本次实验,掌握SQL注入中,通过information_schema这个数据库爆库名、表名以及字段名的原理。

实验环境

windows 7、安装wamp环境。

实验内容与步骤 在phpmyadmin中,在左侧点击information_schema数据库。可以查看此数据库中所有的表。

 

执行   show tables;  语句来查看该库中的所有表: 

 

 想要查看数据库的数据保存目录,可以执行select @@datadir

 

 执行show databases;的时候,可以看到存在的数据库

 

 进入mysql终端,由于root的密码为空,直接回车即可。 进入information_schema 数据库,命令为:use information_schema; 。(注意后面记得加分号)

 

  首先执行show databases;查看所有的数据库,然后再执行select schema_name from schemata;。

 

  desc 可以用来看表结构。看下tables的表结构,执行desc tables;。

 

 查看有多少条记录,执行select count(*) from tables; 。查询任意一条记录查看,在此选择的为最后一条记录,SQL语句为:select * from tables limit 141,1\G。(\G,会让一条记录显示一行。但只支持在客户端中使用)

 

 查看sqli数据库中的表,SQL语句为:show tables from sqli;。若想要通过information_schema数据库来查询sqli数据库中所有的表,那么就可以使用如下SQL语句:

      select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = 'sqli';

 

 查看COLUMNS表结构。(此表保存了整个数据中,所有的列名)

 

 确定该表有多少条记录,执行select count(*) from columns;我们获取最后一条记录,执行select * from columns limit 1661,1\G

 

  查看sqli的user表是否存在该字段,执行SQL语句:show columns from sqli.user;

分析与思考

为什么网上的SQL注入语句中,数据库名都是用的字符的16进制值? 可以避免引号绕过等,方便查找  

 课后习题

 

标签:information,数据库,sqli,SQL,select,schema
来源: https://www.cnblogs.com/cqy0716/p/15437086.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有