Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: PHP ile Siteye Girenleri Bulma
Reflejodeluna
avatar
Kondom Mağduru
Durum: Çevrimdışı
Seviye Puanı: 12
Yaşam Puanı: 80 / 279
Deneyim: 17 / 100
Rep Sayısı: 47
Mesaj Sayısı: 172
Üyelik Tarihi: 27.04.2017
      
Yorum: #1
PHP ile Siteye Girenleri Bulma
11.09.2017 21:47
Selam arkadaşlar bayadır ne özgün konular ne de normal konu paylaşamıyordum bu konuda php ile siteye girenlerin kimlik bilgilerini avlamayı anlatacağız.

sitemize giren ziyaretçilerin ne zaman girdiğini, hangi adresden geldiğini(referans), kullandığı aygıtı, işletim sistemini, hangi tarayıcıyı kullandığını tespit eden ve kaydeden ufak bir yazılım yapacağız. Şimdiden söyleyeyim sistem hiçbir Api ve kendisi dışındaki hiçbir platforma bağlı olmayacak. Parça parça yapacağız ve en sonunda birleştireceğiz. Hadi başlayalım.


Proxy kullanan ziyaretçiden gerçek IP adresini almak için IP adresini çeşitli kontrollerden geçiriyor ve $ipBas değişkenine yazıyoruz.



PHP Kod:
function gercekIP() {
  if(
getenv("HTTP_CLIENT_IP")) {
     
$ip getenv("HTTP_CLIENT_IP");
   } elseif(
getenv("HTTP_X_FORWARDED_FOR")) {
     
$ip getenv("HTTP_X_FORWARDED_FOR");
     if (
strstr($ip',')) {
       
$bol explode (','$ip);
       
$ip trim($bol[0]);
     }
   } else {
   
$ip getenv("REMOTE_ADDR");
   }
  return 
$ip;
}
$ipBas gercekIP(); 

Şimdi ise basit bir DDoS koruması yapacağız. DDoS’un çalışma mantığı kısaca; İlgili adrese sürekli olarak belirli bir boyutta paket göndermek ve sitenin artık bu paketlere yanıt veremez hâle gelerek çökmesi(erişilemez olması) durumudur. Biz htaccess ile, sitemize 2 saniyede birden çok kez bağlanmaya çalışan IP adreslerinin erişimini engelleyeceğiz.(bu süreyi last_session_request kontrolünün yapıldığı satırdan değiştirebilirsiniz. Default: 2) Öncelikle mevcut dizinde bir htaccess dosyası var mı kontrol ediyoruz. Eğer mevcut dizinde bir htaccess dosyası yok ise bir htaccess dosyası oluşturup ilk satıra “order deny,allow” giriyoruz ve sayfayı yeniliyoruz. Eğer mevcut dizinde bir htaccess dosyası var ise yani daha önce bir IP adresi yasaklanmış ise “order deny,allow” kodumuzu girmemize gerek yok. “deny from IP” şeklinde ilgili IP adresinin yasaklandığını söylüyor ve kaydediyoruz.

Kod:
if (!isset($_SESSION)) {
    session_start();
}
if($_SESSION['last_session_request'] > time() - 2) {
if(!file_exists(".htaccess")) {
  touch(".htaccess");
  $banDosya = @fopen(".htaccess", "a");
  $banYaz = "order deny,allow"."\n";
  @fwrite($banDosya, $banYaz);
  @fclose($banDosya);
  header('refresh: 0; url=/');
}else{
  $banDosya = @fopen(".htaccess", "a");
  $banYaz =  "deny from " . $ipBas."\n";
  @fwrite($banDosya, $banYaz);
  @fclose($banDosya);
  }
    exit;
}
$_SESSION['last_session_request'] = time();
Günleri ve ayları dizilere giriyoruz. Bu şekilde şık ve anlaşılabilir olacaktır.

$gunler = array(
  'Pazartesi',
  'Sali',
  'Carsamba',
  'Persembe',
  'Cuma',
  'Cumartesi',
  'Pazar'
);
$aylar = array(
  'Ocak',
  'Subat',
   'Mart',
   'Nisan',
   'Mayis',
   'Haziran',
   'Temmuz',
   'Agustos',
   'Eylul',
   'Ekim',
   'Kasim',
   'Aralik'
);
$ayBastir = $aylar[date('m') - 1];
$gunBastir = $gunler[date('N') - 1];
Ziyaretçimizin hangi işletim sistemini kullandığını User Agent bilgisinden kontrol ediyoruz.

function isletimSistemi() {
$isletimSistemiTespit=$_SERVER['HTTP_USER_AGENT'];
if(stristr($isletimSistemiTespit,"Windows NT 4.00")){
  $isletimSistemiTespit="Windows 95";
}elseif(stristr($isletimSistemiTespit,"Windows NT 4.10")){
  $isletimSistemiTespit="Windows 98";
}elseif(stristr($isletimSistemiTespit,"Windows NT 4.90")){
  $isletimSistemiTespit="Windows ME";
}elseif(stristr($isletimSistemiTespit,"Windows NT 5.0")){
  $isletimSistemiTespit="Windows 2000";
}elseif(stristr($isletimSistemiTespit,"Windows NT 5.1")){
  $isletimSistemiTespit="Windows XP";
}elseif(stristr($isletimSistemiTespit,"Windows NT 5.2")){
  $isletimSistemiTespit="Windows XP PRO";
}elseif(stristr($isletimSistemiTespit,"Windows NT 6.0")){
  $isletimSistemiTespit="Windows Vista";
}elseif(stristr($isletimSistemiTespit,"Windows NT 6.1")){
  $isletimSistemiTespit="Windows 7";
}elseif(stristr($isletimSistemiTespit,"Windows NT 6.2")){
  $isletimSistemiTespit="Windows 8";
}elseif(stristr($isletimSistemiTespit,"Windows NT 6.3")){
  $isletimSistemiTespit="Windows 8.1";
}elseif(stristr($isletimSistemiTespit,"Windows NT 10.0")){
  $isletimSistemiTespit="Windows 10";
}elseif(stristr($isletimSistemiTespit,"Ios")){
  $isletimSistemiTespit="Ios";
}elseif(stristr($isletimSistemiTespit,"Android")){
  $isletimSistemiTespit="Android";
}elseif(stristr($isletimSistemiTespit,"Mac")){
  $isletimSistemiTespit="Mac";
}elseif(stristr($isletimSistemiTespit,"Linux")){
  $isletimSistemiTespit="Linux";
}else{
  $isletimSistemiTespit="Bilinmiyor";
}return $isletimSistemiTespit;
}
Tekrar ziyaretçimizin User Agent bilgisine bakarak kullandığı tarayıcı tespit ediyoruz.

Kod:
function tarayici() {
$tarayiciTespit=$_SERVER['HTTP_USER_AGENT'];
if(stristr($tarayiciTespit,"Trident/7.0")){
  $tarayici="Internet Explorer 11";
}elseif(stristr($tarayiciTespit,"Trident/6.0")){
  $tarayici="Internet Explorer 10";
}elseif(stristr($tarayiciTespit,"Trident/5.0")){
  $tarayici="Internet Explorer 9";
}elseif(stristr($tarayiciTespit,"Trident/4.0")){
  $tarayici="Internet Explorer 8";
}elseif(stristr($tarayiciTespit,"Firefox")){
  $tarayici="Mozilla Firefox";
}elseif(stristr($tarayiciTespit,"Edge")){
  $tarayici="Edge";
}elseif(stristr($tarayiciTespit,"Chrome")){
  $tarayici="Google Chrome";
}elseif(stristr($tarayiciTespit,"YaBrowser")){
  $tarayici="Yandex Browser";
}elseif(stristr($tarayiciTespit,"Safari")){
  $tarayici="Safari";
}elseif(stristr($tarayiciTespit,"Opera")){
  $tarayici="Opera";
}else{
  $tarayici="Bilinmiyor";
}return $tarayici;
}

Değişiklik olması açısından farklı bir şekilde, yine User Agent bilgisinden kullandığı cihazı tespit ediyoruz.

PHP Kod:
$iphone strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
if(
$iphone == true){
  
$mobilKontrol "iPhone";
}elseif(
$android == true){
  
$mobilKontrol "Android";
}elseif(
$palmpre == true){
  
$mobilKontrol "webOS";
}elseif(
$berry == true){
  
$mobilKontrol "BlackBerry";
}elseif(
$ipod == true){
  
$mobilKontrol "iPod";
}else{
  
$mobilKontrol="Bilgisayar";


Şimdi gerekli kontrollerimizi bitirdik. Sıra geldi bu kontrolleri bizim görebileceğimiz bir yere kaydetmeye. Ben bunun için basit olması açısından txt belgesi kullandım. Ancak siz bunu veritabanınıza kaydederek ilgili sayfaya şifreli girişi veya html dosyasına kaydederek divleri veya tabloları kullanarak görsel anlamda daha güzel içerik çıkarabilirsiniz. Biz mantığını yapıyoruz. Bundan sonrası tamamen sizin yapmak istediklerinize ve hayal gücünüze kalmış. Dizinde “kayit.txt” dosyası yok ise “kayit.txt” dosyası oluşturuyor ve sayfayı yeniliyor. Eğer “kayit.txt” dosyası daha önceden oluşturulmuşsa yukarıda yaptığımız ilgili fonksiyonlardan gerekli değerleri çekiyor ve txt dosyasına kaydediyor.

if(!file_exists("kayit.txt")) {
touch("kayit.txt");
$dosya = @fopen("kayit.txt", "+r");
@fclose($dosya);
header('refresh: 0; url=/');
}else{
$dosya = @fopen("kayit.txt", "a");
$dosyaYaz = "-------------------------------------------------"."\r\n"."Zaman Damgasi: ".date('j ').$ayBastir.date(' Y ').$gunBastir.date(' H:i:s')."\r\n"."Referans: ".getenv('HTTP_REFERER')."\r\n"."IP Adresi: ".$ipBas."\r\n"."Aygit: ".$mobilKontrol."\r\n"."Isletim Sistemi: ".isletimSistemi()."\r\n"."Tarayici: ".tarayici()."\r\n"."-------------------------------------------------"."\r\n";
@fwrite($dosya, $dosyaYaz);
@fclose($dosya);
}


Çalışmanın son halini PHP tagları içerisine alıp “.php” olarak ilgili dizine yükleyin. Ardından girişlerin kaydedilmesini istediğiniz sayfanın kaynak koduna aşağıdaki kodu girerek ziyaretçi bilgilerimizi kaydedecek dosyamızı ilgili sayfamızda çağırıyoruz.

// "DOSYA_ADI.php" bölümünde kayıt dosyasını kaydettiğiniz dosyanın adı ve dizini olmalıdır.
<?php include "DOSYA_ADI.php"; ?>
Her şeyi doğru yapmışsanız siteye girdiğinizde mevcut dizinde “kayit.txt” dosyası oluşacak ve aşağıdaki gibi sıralanacaktır.


Not:Konu alıntıdır.
Alinti
Rep Verenler: OrJiNaL , #H4CK4L
The_ZiziL
*
avatar
Valhalla
Durum: Çevrimiçi
Seviye Puanı: 36
Yaşam Puanı: 880 / 880
Deneyim: 22 / 100
Rep Sayısı: 550
Mesaj Sayısı: 1897
Üyelik Tarihi: 06.02.2017
     
Yorum: #2
RE: PHP ile Siteye Girenleri Bulma
12.09.2017 09:55
Aleyküm Selam, Konu alıntıda olsa güzel eline sağlık.

Allah’tan utanmayan insanlardan da utanmaz…
Alinti
Rep Verenler: morfip
Reflejodeluna
avatar
Kondom Mağduru
Durum: Çevrimdışı
Seviye Puanı: 12
Yaşam Puanı: 80 / 279
Deneyim: 17 / 100
Rep Sayısı:
Mesaj Sayısı: 172
Üyelik Tarihi: 27.04.2017
      
Yorum: #3
Cvp: PHP ile Siteye Girenleri Bulma
12.09.2017 12:48
(12.09.2017 09:55)The_ZiziL Nickli Kullanıcıdan Alıntı:  Aleyküm Selam, Konu alıntıda olsa güzel eline sağlık.

Teşekkür ederim güzel konuklar gelecektir yakındaSmile
Alinti
hackernews62
*
avatar
Teğmen
Durum: Çevrimdışı
Seviye Puanı: 1
Yaşam Puanı: 0 / 5
Deneyim: 21 / 100
Rep Sayısı: 0
Mesaj Sayısı: 4
Üyelik Tarihi: 12.09.2017
     
Yorum: #4
RE: PHP ile Siteye Girenleri Bulma
13.09.2017 15:19
güzel paylaşımmış teşekkürler

inşallah zorlanmadan hallederiz
(Bu konu en son: 13.09.2017 Tarihinde, Saat: 16:12 düzenlenmiştir. Düzenleyen: hackernews62.)
Alinti
M3czup
*
avatar
Teğmen - Ex
Durum: Çevrimdışı
Seviye Puanı: 26
Yaşam Puanı: 629 / 629
Deneyim: 16 / 100
Rep Sayısı: 82
Mesaj Sayısı: 852
Üyelik Tarihi: 18.12.2017
     
Yorum: #5
RE: PHP ile Siteye Girenleri Bulma
14.07.2018 22:01
Teşekkürler, Emeğine Sağlık Smile
Alinti



1 Ziyaretçi