DVWA实战:12分钟掌握SQL注入攻击技巧

创始人
2025-01-09 16:27:17
0 次浏览
0 评论

【DVWA实战篇】12分钟学会SQL注入攻击实战

SQL注入概述SQL注入是一种攻击技术,它通过将SQL命令插入到Web表单提交中或插入域名或页面请求的查询字符串来欺骗服务器执行恶意SQL命令。
它利用现有应用程序在后台向数据库引擎注入(恶意)SQL命令并执行它们以获取数据库内容、执行非法操作等。
SQL注入一般分为普通注入和盲注入。
普通注入直接暴露数据库字段内容,而SQL注入则可以逐步获取数据库信息。
盲注入需要通过判断结果来猜测SQL语句的有效性。
根据注入数据的类型,分为数字注入和字符注入。
对于数字输入,过滤条件是数字类型,对于字符输入,过滤条件是字符类型。
在字符注入过程中,需要创建单引号来结束句子,并添加注释来使单引号失效。
另外,SQL注入根据发送参数的方式还可以分为GET注入和POST注入。
低级SQL注入实践1、设置安全级别为低,进入SQL注入训练页面,输入ID,观察返回信息,发现该页面是以GET提交方式发送的。
2、输入1’,页面报错,检测到SQL注入漏洞,数据库为MySQL。
3.尝试1and1=1和1and1=2,两者返回的数据表明该漏洞可能是字符类型。
4、输入1'and1=2#,返回数据,验证注入是否成功,漏洞为字符型。
5、使用1'orderby1和1'orderby2时,返回数据,如果输入1'orderby3,页面会报错,说明页面只查询了两个字段。
6.使用1'and1=2unionselect1,2#确保显示记录集中的第一个字段。
继续使用类似的技术来定义数据库表和字段的结构。
7、使用1'and1=2unionselectdatabase()#显示当前数据库名称为dvwa。
8、使用1'and1=2unionselect1,group_concat(table_name)frominformation_schema.tableswheretable_schema=database()#选择所有数据库表名。
9、使用1'and1=2unionselect1,group_concat(column_name)frominformation_schema.columnswheretable_name='users'#指定users表的字段名。
10.使用1'and1=2unionselectuser,passwordfromusers#指定用户名和密码。
实用的底层SQL注入自动化工具SQLMap1在Kali中访问DVWA并获取cookie值。
2、使用SQLMap自动注入检测数据库名、表名、字段名,直到指定用户名和密码。
中级SQL注入练习1.将安全级别设置为中,并检测页面是否以POST模式发送。
您需要使用Burpsuite等工具来创建POST数据包。
2.使用Burpsuite创建POST数据包并添加“单引号”,发现也存在SQL注入漏洞。
3、添加and1=1和and1=2,分别返回数据和无数据,并保证漏洞为数字型。
4.使用类似的技术来定义数据库表和字段的结构。
5、发现提交的ID值中添加了mysql_real_escape_string函数,导致SQL语句生成失败。
6.使用十六进制编码,不使用单引号来指定字段名称。
7、用户名密码查询成功。
实用的中级SQL注入自动化工具SQLMap1使用Burpsuite拦截常规POST数据包并将其复制到SQLMap进行注入。
2、使用SQLMap查询数据库名、表名、字段名。
3.指定用户名和密码。
高级SQL注入实践1.设置安全级别为高,发现页面参数提交方式为POST,输入框将输入页面和显示结果页面分开,防止自动注入。
2、尝试1’,页面报错,但无法判断数据库类型。
3、注释掉返回数据的LIMIT1命令,确保SQL注入漏洞依然存在,并且是字符类型。
4.后续注入步骤对应于低电平。
不可能级别的SQL注入将安全级别设置为不可能,发现使用PDO技术几乎可以完全杜绝SQL注入。
PDO是PHPDataObjects的缩写,它通过将SQL语句的全局语法和变量分别传递到数据库来防止注入攻击。

sql注入语句

您可以输入字段名称。
and1=(selectcount(*)fromadminwherelen(*)0)--and1=(selectcount(*)fromadminwherelen(用户字段名名称)0)and1=(selectcount(*)fromadminwherelen(_blank密码字段名密码)0)编辑器上面分享的希望这对大家有帮助。

【DVWA实战篇】12分钟学会SQL注入攻击实战

SQL注入概述SQL注入允许攻击者利用应用程序后端数据库引擎的执行功能,通过将SQL命令注入到Web表单提交或域名查询字符串中来欺骗服务器。
攻击者可以超出设计者规划的SQL语句访问数据库中的信息,分为普通注入和盲注入。
普通注入直接显示数据库字段,而盲注入则根据页面的判断结果,由于返回数据有延迟才能判断。
注入类型SQL注入分为数字注入和字符注入,根据对应的字段类型来确定。
数字注入使用数字过滤条件,而字符注入则需要添加注释来关闭单引号语法并使单引号失效。
注入方法包括GET和POST。
低级SQL注入实践:将安全级别设置为低后,直接输入ID,页面出现错误,确认存在SQL注入漏洞,数据库为MySQL。
进一步测试确认注入点为字符类型,并使用UNION来选择和查询数据库以获取数据库信息。
使用SQLMap自动注入获取数据库名、表名和字段信息。
MediumSQL注入练习将安全级别设置为Medium后,检测到该页面是通过POST方式访问的。
使用Burpsuite等工具构建POST包注入。
确保SQL注入点是数字,使用UNION查询字段名,获取数据库信息。
使用SQLMap通过十六进制编码传递转义函数来自动注入。
高级SQL注入实践将安全级别设置为高,并将输入页面和显示输出页面分开,防止自动注入。
通过修改SQL语句结构,利用UNION通过字段名访问数据库信息,即可获得注入点。
疫苗接种水平与低水平相似。
不可能级别的SQL注入当我将安全级别设置为不可能之后,我发现使用PDO技术几乎可以消除SQL注入。
PDO是一种PHP数据对象技术,它将SQL语句和变量的通用语法分别发送到数据库。
热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
Linux Redis操作指南:安装、配... Linux系统进入redis并查询值1.进入redisredis-cli2.获取...