【渗透技术】MySQL注入漏洞测试详解

目录
1.Mysql介绍 3
2.简单的Mysql操作命令 3
3.Mysql函数 3
4.php连接Mysql的代码 3

  1. 数据库结构对比 4
    6.防注入函数过滤 5
    7.Mysql注入原理 8
    8.Mysql4.0渗透 14
  2. Mysql显错注入 14
    10.Mysql万能秘钥 17
    11.Mysql读文件 19
    12.Mysql写文件 20
    12.PHP魔术引号与宽字节注入 21
    13.使用穿山甲进行注入 22
    14.使用sqlmap进行注入 24
    附录 29

1.Mysql介绍
MySQL[1] 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
2.简单的Mysql操作命令
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:创建新表
CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
4、查看数据库
show databases;
3.Mysql函数
1:system_user() 系统用户名
2:user() 用户名
3:current_user 当前用户名
4:session_user()连接数据库的用户名
5:database() 数据库名
6:version() MYSQL数据库版本
7:load_file() 转成16进制或者是10进制 MYSQL读取本地文件的函数
8:@@datadir 读取数据库路径
9:@@basedir MYSQL 安装路径
10:@@version_compile_os 操作系统
4.php连接Mysql的代码

  1. 数据库结构对比
    1.结构对比
    access数据库
    A网站:adata.mdb
    表名(admin)
    列名(user,pass)

    B网站:bdata.mdb
    表名(admin)
    列名(user,pass)

    Mysql数据库
    A数据库名
    B数据库名
    表名
    列名

    2.Mysql注入原理
    1)有过滤的参数
    $id=verify_null(verify_id($_GET[‘id’]),”参数”),使用了verify_null()函数对get()函数进行了过滤,

2)将过滤函数字段去掉,则存在SQL注入

6.防注入函数过滤
1.在浏览器访问http://10.0.3.144:8058/sql1.php?id=1,添加参数/报错,添加参数-0返回正常,说明存在注入。

2.添加参数and 1=1,and被过滤了。

3.分析代码,对id值接收的and参数进行了替换,替换成了空;

4.我们将参数变为And 1=1或者aandnd 1=1,成功绕过防过滤;

5.我们看下一段代码,检测传递参数,只要包含内容,则拒绝查询。再次输入And 1=1或者aandnd 1=1时,无法绕过;

完整下载地址:https://t.zsxq.com/yf6E6yZ

发表评论

电子邮件地址不会被公开。 必填项已用*标注