Kali linux在DVWA靶场的SQL注入


前言SQL注入是一种常见的攻击方式,攻击者通过利用Web应用程序或其他应用程序对数据库的查询进行注入,掌控数据库系统,甚至控制整个应用程序。为了加强Web应用程序的安全性,学习SQL注入攻击技能的同时也要了解防御措施。

概念SQL注入是一种常见的Web应用程序安全漏洞攻击。它利用输入验证不足或不正确的代码实现,通过向Web应用程序输入恶意的SQL语句来利用应用程序的漏洞,从而执行非授权的操作或访问敏感数据。攻击者可以利用SQL注入攻击来破坏或窃取数据库中的信息,或者通过更改或删除记录来破坏应用程序的功能。SQL注入攻击可由手动输入SQL语句或使用自动化工具实现。为预防SQL注入攻击,开发者需要正确地实施输入验证和合理的安全编码实践。

1、环境准备

(1)开启OWASP靶机和Kali虚拟机

(2)kali中登陆dvwa,进入 SQL Injection

在这里插入图片描述

(3)将安全等级调为low

在这里插入图片描述

2、基于错误的 SQL 注入案例

(1)检测SQLI并获取列数

在检测到 SQLi 存在后,还需要获取结果的列数。在“User ID”框中输入任意数字,然后单击Submit(提交)按钮。
在这里插入图片描述

(2)在User ID继续输入

现在继续输入,将输入栏的值替换为 1’order by 1 #并提交

1'order by 1 #

在这里插入图片描述

(3)增加order by数值且直到报错

继续增加 order by 后面的值并执行请求,直到页面发生了报错。在此示例中, 报错信息发生在它在按列数 3 时。这意味着查询的结果只有两列,因为尝试按不存在的列对其进行排序时会触发错误。(2和3步骤:order by语句用于排序,使用超出范围的数字,获取实际检索的列数)
在这里插入图片描述

(4)使用UNION语句提取信息

现在知道数据有两列。然后尝试使用 union 语句提取一些信息。将输入的值设置为 1’ union select 1,2–'并执行。(查看显示位,union 作用是将多个select语句的结果整合到一个结果中返回,union 语句使得输入多个select语句成为可能,union 语句后的select语句是我们想要注入的代码)

1' union select 1,2--'

在这里插入图片描述

(5)查看数据库版本和当前用户

这意味着要使用 union 查询中请求两个值。查看数据库版本和数据库当前用户。 输入为:

1' union select@@version,current_user() -- '

然后执行(获取数据库版本和数据库当前用户信息)
在这里插入图片描述

(6)获取数据本

随后寻找与之更相关的东西,例如应用程序的用户。首先需要找到用户的表(获取数据本)。输入为:

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

翻译出来就是:
从information_schema数据库中的tables表中查找当前数据库所含有的表有哪些
在这里插入图片描述

(7)知道数据库名称为user并获取表中的列
到这一步,可以知道数据库(或模式)名称为dvwa,正在寻找的表是 user。由于只有两个位置来设置值,需要知道表中可能有哪些列(获取表中的列), 将输入改为:

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

在这里插入图片描述

(8)获取用户名和密码的哈希值

知道了 user 表的内容,将 输入为:

1'union select user,password FROM dvwa.users -- '

在这里插入图片描述

3、学习小结:

SQL注入是一种常见的安全漏洞,攻击者通过将恶意代码注入到应用程序的输入参数中,可以绕过应用程序的安全检查,并获取或破坏数据库中的敏感数据。总的来说,SQL注入可通过输入验证、数据绑定、最小化权限、日志记录和更新软件等措施来防止。

4、学习心得:

1、了解SQL注入原理和攻击方式
要想有效地防范SQL注入攻击,首先必须了解SQL注入的原理和攻击方式。通过学习SQL注入攻击工具、常用的注入语句和攻击方法,可以更好地理解SQL注入攻击的本质和危害,为防御提供基础。

2、掌握常见的SQL注入检测技术
在检测Web应用程序存在SQL注入漏洞时,可以使用常见的SQL注入检测技术,如手工注入、工具辅助注入、盲注等。掌握这些技术可以更好地了解SQL注入攻击的过程和方法,同时可以有效地发现和修复SQL注入漏洞。

3、深入学习SQL语句
SQL语句是SQL注入攻击的关键,深入了解SQL语句的结构和运作方式可以更好地理解SQL注入攻击的原理和方法。同时,了解SQL语句的基础知识也能够帮助我们更好地编写安全的SQL语句,提高Web应用程序的安全性。

4、学习常用的防御措施
为了有效防御SQL注入攻击,要了解常用的防御措施,如输入过滤、参数化查询、防注入函数等。这些措施可以有效地减少SQL注入攻击的风险,提高Web应用程序的安全性。同时,了解常用的防御措施也可以为我们提供更多的保障,提高安全性和效率。

5、总结:

学习SQL注入攻击技能是加强Web应用程序安全防范的必要技能。在学习过程中,我们应该了解SQL注入的原理和攻击方式,掌握常见的检测技术和防御措施,同时深入学习SQL语句的知识,不断提高自己的安全意识和能力。总而言之,SQL注入攻击的威胁不容忽视,我们需要通过多方面的学习和掌握防护措施,不断巩固网络安全防线,确保用户信息和数据安全。

以上就是学习SQL注入的全部内容了,本文主要是学习kali linux的相关操作,后面关于各种操作底层实现及重定向原理,将会在之后的文章讲解

如果你觉得本文写的还不错的话,期待留下一个小小的赞👍

如果本文有不足或错误的地方,随时欢迎指出,我会在第一时间改正

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Kali上搭建DVWA,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Apache、MySQL和PHP。你可以在执行“apt-get install apache2 mysql-server php”命令来安装它们。 2. 下载DVWA压缩包,并将其解压到/var/www/html/目录下。你可以使用命令“wget https://github.com/ethicalhack3r/DVWA/archive/master.zip”来下载,并使用“unzip master.zip”命令解压。 3. 进入到解压后的DVWA目录下,并将config/config.inc.php.dist文件复制为config/config.inc.php。可以使用命令“cd DVWA-master”进入目录,然后使用“cp config/config.inc.php.dist config/config.inc.php”命令来复制文件。 4. 使用编辑器(如vim)打开config/config.inc.php文件,并修改以下内容: - 将$DVWA[ 'db_password' ] = 'p@ssw0rd'的值修改为你想要设置的MySQL密码。 - 将$DVWA[ 'default_security_level' ]的值修改为“low”。 5. 接下来,创建MySQL数据库并授权给DVWA应用程序。在终端中运行以下命令: - 使用“mysql -u root -p”命令登录到MySQL服务器,输入密码。 - 运行“CREATE DATABASE dvwa;”命令创建一个名为dvwa数据库。 - 运行“USE dvwa;”命令选择该数据库。 - 运行“SOURCE dvwa.sql;”命令导入dvwa.sql文件中的表结构和数据。 - 运行“GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd';”命令授权给dvwa用户,并设置密码为p@ssw0rd。 - 运行“FLUSH PRIVILEGES;”命令刷新权限。 6. 最后,打开浏览器并访问http://localhost/DVWA/setup.php,按照提示进行DVWA的设置。 现在,你已经成功搭建了DVWA应用程序。你可以访问http://localhost/DVWA/index.php来开始使用它。记得在使用DVWA时,要小心安全风险,并始终使用适当的安全级别。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [kaliDVWA的环境搭建](https://blog.csdn.net/weixin_53067829/article/details/124027617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [kali安装DVWA详细教程](https://blog.csdn.net/qq_45809587/article/details/115309665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值