mysql手工注入imformation_网络安全系列之十八 MySQL基本操作(PHP注入基础)
在之前的博文中曾介绍过如何对ASP网站进行手工注入,ASP网站大都是采用ACCESS或MSSQL数据库,因而所谓针对ASP的SQL注入其实也就是根据ACCESS或MSSQL数据库的特点来构造查询语句。除此之外,对于PHP网站则大都是采用MySQL数据库,这里要进行手工注入时所使用的查询语句与之前就不相同了,而且相对比较复杂。为了更好地理解,在进行针对PHP网站的注入之前,有必要先了解一些MySQL的基本特点和常用操作语句。
首先需要搭建一个MySQL的实验环境,这里推荐在Linux系统中安装MySQL服务。
挂载光盘并设置yum源之后,安装运行mysql服务。
# yum install mysql 安装mysql
# service mysqld start 运行mysql
MySQL的默认管理员账号是root,没有设置密码,所以可以执行“mysql –u root”命令,以root用户身份登录MySQL。不过建议最好先用mysqladmin命令工具为root用户设置一个密码,然后用密码登录MySQL。
登录MySQL之后,可以在带有提示符“mysql>”的交互式命令环境中进行操作。在该操作环境中,输入的每一条数据库管理命令必须以分号“;”表示结束,可以不区分大小写。
(1) 查看基本信息
执行“select version();”命令查看MySQL版本,可以看到当前版本为5.0.77。
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.77 |
+-----------+
1 row in set (0.00 sec)
执行“select @@version_compile_os;”命令查看操作系统版本,可以看到当前系统为redhat linux。
mysql> select @@version_compile_os;
+----------------------+
| @@version_compile_os |
+----------------------+
| redhat-linux-gnu |
+----------------------+
1 row in set (0.00 sec)
执行“select user();”命令查看当前用户,可以看到当前用户为root。
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.07 sec)
执行“select database();”命令查看当前打开的数据库,可以看到当前没有打开任何数据库(NULL)。
mysql> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.01 sec)
(2) 查看数据库列表
执行“show databases;”命令可以查看MySQL中共包含了哪些数据库,默认情况下MySQL中内置了3个数据库:information_schema、mysql、test。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
(3)切换数据库
执行“use information_schema;”命令,可以打开information_schema数据库。
mysql> use information_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
information_schema是MySQL5以后的版本中默认自带的一个数据库,它里面存放了由用户在MySQL中创建的所有其它数据库的信息。因而在进行PHP注入时,主要也就是针对这个数据库进行操作。
(4)显示数据库中的表
打开数据库之后,执行“show tables;”命令可以显示数据库中所包含的表。在information_schema中共包含了17个表。
mysql> show tables;
+---------------------------------------+
| Tables_in_information_schema |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| KEY_COLUMN_USAGE |
| PROFILING |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| STATISTICS |
| TABLES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
+---------------------------------------+
17 rows in set (0.00 sec)
在这些表中比较重要的有:
schemata:用于存放其它所有数据库的名字。
tables:用于存放MySQL中所有数据库的表的名字。
columns:用于存放MySQL中所有数据库的所有表中的所有字段的名字。
(5)显示表中的内容
执行“select * from schemata;”命令可以显示schemata表中的所有内容:
从命令显示的结果中可以看到,当前系统中共包含了3个数据库,这与之前查看到的结果一致。
(6)利用information_schema数据库查看其他所有数据库的内容
在了解了上述基础知识之后,我们就可以通过information_schema数据库来查看到其他所有数据库中我们所关心的内容。
为了更好的演示,我们先执行“exit”命令退出MySQL环境,然后再重新登入。
登入之后,我们先不打开任何数据库。
假如我们想知道mysql数据库中都包含了哪些表,可以执行命令:
由于当前我们并没有打开任何数据库,因而“information_schema.tables”就表示information_shema数据库中的tables表,前面介绍过,这个表中存放了其他所有数据库的表的名字。
“table_name”是tables中用于存放表名的字段,“tables_schema”是tables中用于存放数据库名的字段。
再如我们想知道mysql数据库的user表中包含哪些字段,可以执行命令:
掌握了这些知识之后,接下来我们就可以进行手工PHP注入了
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1570620
mysql手工注入imformation_网络安全系列之十八 MySQL基本操作(PHP注入基础)相关推荐
- 网络安全系列之十八 MySQL基本操作(PHP注入基础)
在之前的博文中曾介绍过如何对ASP网站进行手工注入,ASP网站大都是采用ACCESS或MSSQL数据库,因而所谓针对ASP的SQL注入其实也就是根据ACCESS或MSSQL数据库的特点来构造查询语句. ...
- 布尔教育mysql入门视频教程_布尔教育燕十八mysql入门视频教程的资源(源码课件)推荐...
<布尔教育燕十八mysql入门视频教程>是mysql基础入门课程,随着mysql不断发展,现在使用mysql+php做网站已成为主流web开发技术,如果你想学习动态网页设计,那么建议你选择 ...
- 燕十八 Mysql 笔记 68 课
68 建表过程与字符类型的意义 目的:要学会建表 知识点:列类型 怎么建表? 以在 A4 纸上建表为例,表头写完就算表建好了,后面的是插入数据,建表的过程其实就是一个声明字段的过程 学号 姓名 家乡 ...
- Go入门系列(十八) 反射、包和测试工具
本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量.指针.数据类型简介和作用域 Go入门系列(三) 基础类型--整型.浮点型.布尔类型和字符串 Go入门系列(四) ...
- 燕十八 mysql 复习_燕十八 Mysql 笔记 68 课
68 建表过程与字符类型的意义 目的:要学会建表 知识点:列类型 怎么建表? 以在 A4 纸上建表为例,表头写完就算表建好了,后面的是插入数据,建表的过程其实就是一个声明字段的过程 学号 姓名 家乡 ...
- Reflex WMS入门系列二十八:空白标签打印
Reflex WMS入门系列二十八:空白标签打印 贴在托盘上的标签,因托盘上的货物的移动,使用等缘故可能会导致标签丢失.在很多场景下又需要扫描托盘标签,所以Reflex WMS系统提供了打印空白标签的 ...
- 布尔教育mysql优化_布尔教育燕十八mysql优化视频课件源码分享
目前数据库是大多数系统进行数据存储的基础组件,数据库的效率对系统的稳定和效率有着至关重要的影响:为了有更好的用户体验,数据库的优化显得异常重要.那么我们要从那些方面对我们的数据库进行优化呢?让我们在& ...
- 燕十八 mysql优化_布尔教育燕十八mysql优化视频资料分享
目前数据库是大多数系统进行数据存储的基础组件,数据库的效率对系统的稳定和效率有着至关重要的影响:为了有更好的用户体验,数据库的优化显得异常重要.那么我们要从那些方面对我们的数据库进行优化呢?让我们在& ...
- 燕十八 mysql_布尔教育燕十八mysql优化视频课件源码分享
目前数据库是大多数系统进行数据存储的基础组件,数据库的效率对系统的稳定和效率有着至关重要的影响:为了有更好的用户体验,数据库的优化显得异常重要.那么我们要从那些方面对我们的数据库进行优化呢?让我们在& ...
最新文章
- c语言ecit,Arthritis Rheumatol:新型JAK3/TEC抑制剂PF-06651600(ritlecitinib)对中重度类风湿性关节炎的疗效和安全性...
- 解决 | 此数据库文件跟当前sql server实例不兼容 sql server2008无法连接到(local)...
- 高效掌握新技能的「树型思维」
- 博客文章列表(二)——算法、数据结构、数据库、ABCD
- 利用MyBatis的动态SQL特性抽象统一SQL查询接口
- 电脑键盘练习_电脑新手最关心的:零基础如何快速掌握电脑打字的技巧?
- linux基础知识3
- 基于python的图像变换(翻转、平移、缩放、旋转、仿射和透视变换)
- R语言入门(2)——R包的安装
- Axure一些常用模板下载(免费模板)
- 电信运营商IT系统建设概况
- 企业微信openid转userid失败问题
- PostgreSQL数据库——Pigsty configure
- 如何在windows电脑网页上创建苹果ID?
- Python中的np.random.binomial()二项式分布函数详解
- python实现jacknife交叉验证
- idea如何全局搜索关键字_intellij idea 怎么全局搜索
- 云呐|固定资产条码管理系统的应用
- Java处理除数为零的情况
- 贵金属白银实时走势图——解读要领
热门文章
- 表格状态列_不用软件也能做好多个项目跟进管理?我用一个协同表格就搞定
- IDEA导入项目笔记
- java怎么让窗口居中显示图片_Java_Swing中让窗口居中显示的方法(三种方法)
- jupyter notebook python环境_jupyter Notebook环境搭建
- iphone储存空间系统怎么清理_iPhone储存空间里其他占了几十GB,怎样彻底删除它?...
- mysql windows 乱码问题_MySQL:windows中困扰着我们的中文乱码问题
- [ACM]HDU Problem 2000 + Java
- html5操作类名API——classlist
- 设计模式-15-建造者模式
- Python中添加中文注释报错SyntaxError: Non-UTF-8 code starting with '\xc1'