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语句和变量的通用语法分别发送到数据库。
相关文章

MySQL数据库用户名密码获取与查看方法...
2025-03-02 11:19:18
MSSQL查询结果字符串拼接技巧与数据库...
2024-12-31 18:33:25
SQL Server数据导出教程:轻松掌...
2025-01-06 17:33:12
sqlserver备份还原
2025-01-06 22:42:00
MySQL基础操作:数据增删改查与三大查...
2024-12-17 15:10:15
SQL Server高效查询:自动增长I...
2025-02-02 17:42:02
Python排列组合计算实例:1-4数字...
2025-01-29 16:48:58
GaussDB数据库:深入理解TRUNC...
2024-12-21 14:52:28
深入浅出:MySQL IF函数应用与SQ...
2024-12-24 22:51:01
MySQL数据存储解析:文件类型及默认位...
2024-12-15 18:14:48最新文章
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
13
2025-04
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
2
MySQL分区删除技巧与8.0版本新特性...
mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...
3
Python代码实现:如何判断三角形的三...
python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...
4
深度解析:MySQL查询语句执行顺序及优...
mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...
5
SQL教程:使用SUBSTRING和IN...
sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...
6
MySQL日期差异计算方法:轻松获取日期...
MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...
7
MySQL及SQL查询获取前10条数据方...
MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...
8
MySQL启动问题排查与解决指南
Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...
9
DbVisualizer添加MySQL数...
如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...
10
SQL字段默认值设置全攻略:轻松实现自动...
sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...