Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Data Hacking with Python

Bu yazıda mechanize ve bs4 modülleri kullanarak bgabank.com sisteminde bulunan id manipulation olayından faydalanarak bütün kullanıcıların kişisel verilerini otomatik olarak çekeceğiz

Mechanize Modülü
Bir tarayıcı gibi davranarak, web tabanlı işlemlerimizi yapmamıza olanak tanıyan çok güçlü bir
modüldür.

Kurlumu

pip install mechanize

 

Verileri çekmek için yazacağımız kod üç kısımdan oluşacaktır :

  • Kullanıcı adı ve parola ile siteye giriş işlemi
  • Giriş işleminden sonra dönen veriyi okuma
  • Son olarak okuduğumuz veriden istediğimiz kısımları ayrıştırmak

 

Giriş işlemi için kullanacağımız bilgiler

  • login_URL : ‘http://isube.bgabank.com/giris.aspx’
  • Kullanıcı Adı : 10000150
  • Parola : 100019

 

Zafiyet bulunan URL adresi

  • ‘http://isube.bgabank.com/profil.aspx?musteriID=’

v_url

İlk olarak kullanacağımız kütüphaneleri kodumuza dahil edelim

İmport mechanize

İmport bs4

 

Nasıl bir tarayıcıda bir siteye girmek için öncelikle o tarayıcıyı açıyorsak aynı şekilde mechanize tarayıcımızı açmamız gerekiyor.

br = mechanize.Browser()

 

Şimdi de login amaçlı belirlediğimiz URL adresini açıyoruz.

info

Gerekli tanımlamaları yaptıktan sonra daha önce tanımladığımız url adresini mechanize modülünü kullanarak açıyoruz.

info

Şimdi sayfada mevcut olan form alanlarını görüntülemek için aşağıdaki görselde yapılanları uyguluyoruz.

forms

Gördüğünüz üzere bu form alanlarından bir tanesi müşteri numarası ve parola değerleri istemekte. Bizde bu form alanını kullanacağız. Bu form alanını seçmek için :

br.select_forms(nr=1)

metodunu kullanıyoruz. Burada nr=1 değeri seçtiğimiz formu temsil eder, bir diğer deyişle listelenen form alanlarını bir listenin elemanları gibi düşünebiliriz.İlk form ‘0’ ikinci form ‘1’ diye devam eder.

Son olarak seçtiğimiz form için gerekli alanları dolduruyoruz ve gönderiyoruz:

submit

Login işlemini tamamladığımıza göre artık diğer müşteri bilgilerini okumak için biraz daha ileri gidebiliriz.

data

Şimdi elde ettiğimiz bu veriyi ayrıştırmaya çalışacağız ve bunun için bs4 modülünü kullanacağız.

  • Kurulumu için :
pip install BeautifulSoup4

bt = bs4.BeautifulSoup(info, "lxml")
  • Bu bize p tagı ile başlayan bir liste döndürür.
bt.find_all("p")

user

Daha düzenli bir hale getirmek için:

name = bt.find_all("p")[3].input['value']
surname = bt.find_all("p")[4].input['value']
phone = bt.find_all("p")[5].input['value']

infoget

Yazdıklarımızın hepsini derleyip bir python dosyası oluşturup çalıştırdığımızda ise :

bgabank