0


【网络攻防技术】实验八——SQL注入实验

文章目录

一、实验题目

SQL注入是一种代码注入技术,它利用web应用程序和数据库服务器之间接口中的漏洞。当用户的输入在发送到后端数据库服务器之前未在web应用程序中正确检查时,就会出现此漏洞。许多web应用程序从用户处获取输入,然后使用这些输入构造SQL查询,这样web应用程序就可以从数据库中获取信息。Web应用程序还使用SQL查询在数据库中存储信息。这些是web应用程序开发中的常见做法。如果未仔细构造SQL查询,则可能会出现SQL注入漏洞。SQL注入攻击是对web应用程序最常见的攻击之一。
在本实验室中,我们创建了一个易受SQL注入攻击的web应用程序。我们的web应用程序包含许多web开发人员所犯的常见错误。学生的目标是找到利用SQL注入漏洞的方法,演示攻击可能造成的损害,并掌握有助于抵御此类攻击的技术。

二、实验步骤及结果

Task 1: Get Familiar with SQL Statements

① 进入容器内部,首先查看自己的mysql环境id:docker ps
然后根据id进入容器内部
在这里插入图片描述

② 使用基本的SQL语句
在docker容器中连接localhost数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Task 2: SQL Injection Attack on SELECT Statement

Task 2.1: SQL Injection Attack from webpage.

① 查看登录接口unsafe_home.php源码可知
在这里插入图片描述

② 其中SQL语句,直接对用户传参进行拼接,那么完全可以自己合拼单引号,如下
在这里插入图片描述
在这里插入图片描述

Task 2.2: SQL Injection Attack from command line.

① 将符号进行转译,以及注释符添加
在这里插入图片描述
② 访问
在这里插入图片描述

Task 2.3: Append a new SQL statement.

① 尝试将boby的工资置零:Admin’;update credential set salary=0 where Name=“Boby”;#
在这里插入图片描述

② 没有成功
在这里插入图片描述

Task 3: SQL Injection Attack on UPDATE Statement

Task 3.1: Modify your own salary.

① 随便选取一个注入点 110’,Salary='30001
在这里插入图片描述

② 修改成功
在这里插入图片描述

Task 3.2: Modify other people’ salary.

① 使用where语句匹配 110’, Salary=0 where ID=2#
在这里插入图片描述

② 查看boby工资

在这里插入图片描述

Task 3.3: Modify other people’ password.

① 在网站上使用的是SHA1加密后的结果,所以如果需要修改密码,应该输入加密后的结果:6e294573225d3cb28b540104260d888a7c9b4cc7
在这里插入图片描述

② ',Password=‘6e294573225d3cb28b540104260d888a7c9b4cc7’ WHERE ID=2;#
在这里插入图片描述

③ 用新密码登录,登陆成功
在这里插入图片描述
在这里插入图片描述

Task 4: Countermeasure — Prepared Statement

① 修改 unsafe.php,做如下改动
在这里插入图片描述

② 可以看到攻击失败
在这里插入图片描述

标签: sql 网络 数据库

本文转载自: https://blog.csdn.net/qq_45755706/article/details/123214383
版权归原作者 whalien__52 所有, 如有侵权,请联系我们删除。

“【网络攻防技术】实验八——SQL注入实验”的评论:

还没有评论