Damn Vulnerable Web Application
- Brute Force
- level low
手动注入
界面如下:
主要代码:
- Username: a’ or 1=1 #
Password:(空)
注入失败
2.Username: a' or 1=1 limit 1 #
Password:(空)
注入成功
漏洞
漏洞是指因计算机或者程序自身的安全缺陷,使得数据面临安全性,保密性等方面的威胁
以上通过 #
注释掉后面的查询语句 实际执行的语句却是:
select * from 'users' where user = 'a' or 1=1 Limit 1
所以使得验证通过,进而产生了漏洞
SQLMAP 注入
发现302 个请求重定向 login.php
页面 所以加入cookie参数
说明存在username注入,尝试使用 --dbs
获取数据库信息
获取所有数据库
使用 --current-db
获取当前数据库
获取当前数据库
使用 -D dvwa --tables
获取指定数据库下所有的表
获取用户
还可以使用 --column
, -C
等获取字段及导出特定字段的数据
获取数据
sql注入防御
采用sql语句预编译和绑定变量,预编译后的执行计划,不会因为参数改变使得sql语法结构改变