Hoşgeldin Sivil

.
Forum Yöneticisi: Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Bu konuyu okuyanlar?

 Forum Ana Sayfa
   Web Güvenlik Açıkları

   
 Kurallar    Aktif Konular    PM    Kayıt Ol     Giriş Yap  
» Bir Soru SQL Açıkları
[ 1 ]   2
 
Oy Ver   
 
Gönderilme Tarihi: 23 Şubat 2024 19:03:11 - Kayıtlı IP
  Mesajı İhbar Et!     

Morality

Yarbay

Denizli
30 Ocak 2022
80 Mesaj




Aktiflik
Seviye
Deneyim



Selam..
Sql Açığı ile Browser Üzerinden Verileri Çekiyoruz Tamam.
Ancak Verileri Güncelleyebiliyormuyuz ?
ve bunu Browser Üzerinden yapabiliyormuyuz.. herhangi bir program kullanmadan..
Verileri Çekebiliyorsak Verileride Güncelleyip Silebiliyor Olmamız Gerekiyor 
varmı Tavsiyeleriniz.


___________________________________________
gülün var oluşu.. dikenin var oluşunda gizlidir
       
     
 
 
Gönderilme Tarihi: 23 Şubat 2024 20:23:07 - Kayıtlı IP
  Mesajı İhbar Et!     

Balerion
Balerion the Black Dread

Albay

İstanbul
26 Ocak 2022
81 Mesaj

Durum: Öğreniyor


Aktiflik
Seviye
Deneyim



SQL açığının nasıl sömürüldüğünü öğrenmeden önce nasıl ortaya çıktığını anlatmamız gerekiyor. O zaman bir simülasyon oluşturalım.

Web sitemizde ürünlerimizi listeliyor olalım. Bu durumda bir ürünün detay sayfası için "product.php" sayfasını kullandığımızı varsayalım. Biz "product.php" sayfasında hangi ürünü göstereceğimizi, sayfaya gelen kullanıcının verdiği query string'den anlıyoruz. Bu durumda "https://mybeautifulwebsite.com/product.php?id=5" şeklinde bir istek ile gelindiğinde biz gelen HTTP isteğini ayrıştırarak kullanıcının verdiği ID değerini alıyoruz ve veri tabanına SQL sorgusu olarak gönderiyoruz. Bunu farklı programlama dillerinde farklı şekillerde yapıyor olsak bile genel mantık aynıdır;

<?php
$product_id = $_GET["id"];
$sql = "SELECT* FROM products WHERE id = $product_id";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
echo "Ürün: ".$row["name"];
?>

Burada görüldüğü gibi 2. satırda gelen HTTP isteğindeki "id" değerini aldık ve 3. satırda, product tablosundaki id değeri HTTP isteğinde gönderilen id değerine eşit olan kaydı getirmesini istedik (bu durumda id no 5 olan kayıt gelecek). Böylece ekrana 6. satırda, SQL'den dönen sonucun "name" değerini basıtrabildik. Yani bizim RAW SQL sorgumuz şu şekilde yorumlanıyor;

SELECT* FROM products WHERE id = 5

Detaylı bilgiler için;
https://www.atakdomain.com/blog/sql-select-nedir-kullanimi-nasildir-orneklerle-anlatim
https://kodlamaklazim.com/blog/php-select-islemi

Şimdi gelelim açığın oluşma sebebine ve bunu istismar etmeye.
Yukarıdaki örnek normal bir geliştirme sürecini anlatıyor olsa da bu şekilde kullanımında bir güvenlik açığı mevcut. 3. satırda kullanıcıdan alınan değer direkt olarak SQL sunucusuna gönderildi, hiç bir kontrol mekanizması devreye girmedi. Bu durumda kötü niyetli kişiler HTTP isteğinde id değeri olarak SQL sorgusunu manipüle ederlerse ve güvenlik önemli de alınmazsa veri tabanındaki farklı kayıtlara erişmek mümkün olur.

Örneğin burada HTTP isteği ile "id=5 OR 1=1" şeklinde bir veri gönderildiğinde, WHERE komutundan sonra sanki SQL sorgusu devam ediyormuş gibi bir algı oluşur ve sunucu tarafından yorumlanan SQL sorgusu şu hale gelir;

SELECT* FROM products WHERE id=5 OR 1=1

Bu aynı zamanda birazda SQL bilgisi olan birinin sistem üzerinde her türlü cambazlığı yapmasına olanak sağlayacaktır. Şayet ID değerinden sonra gönderilen bütün kayıtlar veri tabanı sunucunda işlenecektir.

Bu da bizi sorunuzun cevabına götürüyor; EVET her türlü işlem yapılabilir. Yeter ki SQL bilginiz olsun.

Burada güzel bir makale var; https://infosecwriteups.com/sql-injection-with-insert-statement-bdcf4d47d178

Umarım faydalı olur ^^


___________________________________________
Elimizden Geldikçe, Dilimiz Döndükçe.
       
  Yeni Üyeler TIM ,    
 
 
Gönderilme Tarihi: 23 Şubat 2024 20:24:56 - Kayıtlı IP
  Mesajı İhbar Et!     

Balerion
Balerion the Black Dread

Albay

İstanbul
26 Ocak 2022
81 Mesaj

Durum: Öğreniyor


Aktiflik
Seviye
Deneyim



DVWA gibi uygulamalarda dilerseniz her türlü fantezinizi uygulayacak açıklar bulabilirsiniz.



___________________________________________
Elimizden Geldikçe, Dilimiz Döndükçe.
       
  Yeni Üyeler TIM ,    
 
 
Gönderilme Tarihi: 23 Şubat 2024 21:56:29 - Kayıtlı IP
  Mesajı İhbar Et!     

Morality

Yarbay

Denizli
30 Ocak 2022
80 Mesaj




Aktiflik
Seviye
Deneyim



Onu sormadım ya :))




___________________________________________
gülün var oluşu.. dikenin var oluşunda gizlidir
       
     
 
 
Gönderilme Tarihi: 24 Şubat 2024 00:05:38 - Kayıtlı IP
  Mesajı İhbar Et!     

Balerion
Balerion the Black Dread

Albay

İstanbul
26 Ocak 2022
81 Mesaj

Durum: Öğreniyor


Aktiflik
Seviye
Deneyim



Alıntı : Alıntı-1: Orjinal mesajı yazan @Morality; 23 February 2024
Onu sormadım ya :))






Bir daha oku=)


___________________________________________
Elimizden Geldikçe, Dilimiz Döndükçe.
       
  Yeni Üyeler TIM ,    
 
 
Gönderilme Tarihi: 24 Şubat 2024 00:43:28 - Kayıtlı IP
  Mesajı İhbar Et!     

DeXPLaNeR

Co (Administrator)

CyberOttoman/Angara
18 Kasım 2021
420 Mesaj

Durum: OrtayaKarışık


Aktiflik
Seviye
Deneyim
(Co) Administrator

Görev Org./Grup :

Strateji


Alıntı : Alıntı-1: Orjinal mesajı yazan @Morality; 23 February 2024
Selam..
Sql Açığı ile Browser Üzerinden Verileri Çekiyoruz Tamam.
Ancak Verileri Güncelleyebiliyormuyuz ?
ve bunu Browser Üzerinden yapabiliyormuyuz.. herhangi bir program kullanmadan..
Verileri Çekebiliyorsak Verileride Güncelleyip Silebiliyor Olmamız Gerekiyor 
varmı Tavsiyeleriniz.




Çektiğin verinin ana katmanına ulaşman gerek, yani veritabanı üzerinde işlem yapabilirliğe ulaşman gerek.. Çektiğin veriden geriye sorgu yollayıp farklı sonuçlar elde edebiliyorsan güncelleme veya silme gibi işlemleri yapabilmeye imkan bulabilirsin demek.. Tabi bunu deneyerek görebilirsin.. Browserdan veri yollarsın ancak yetki yoksa doğal olarak engellemeye takılacaksındır..! O sebeple direkt vt ye etki edecek yöntemleri denemelisin..


___________________________________________
* CA_ DeXPLaNeR _CW *
       
  C-WarZ , Errorle Mücadele (TIM LiDERi) , Yöneteam (TIM LiDERi) ,    
 
 
Gönderilme Tarihi: 25 Şubat 2024 00:48:12 - Kayıtlı IP
  Mesajı İhbar Et!     

QARAKURT

Komodor

Azerbaycan, Sumgayit
17 Ocak 2022
90 Mesaj

Durum: QnVnIFJlcw==


Aktiflik
Seviye
Deneyim
Grup Yöneticisi

Görev Org./Grup :

Lojistik


Bug Researchers


Merhabalar. Teorik olarak evet bu mümkündür. Amma çok da kolay bir işlem olmadığını söyleye bilirim, sebebi ise bu üst düzey bir SQL bilgin olması + hedef web sitenin mimarisini cözmen lazım. Ve şansli olmalısın ki, sitenin güvenliği oldukca düşük olsun. 
SQL inj olaylarında verileri SELECT komutuyla çekersin. Teorik olarak UPDATE ve DELETE kullanarak DB'de bir şeyler değiştirmen mümkün. Amma diyorum. Teorik olarak. Neyle karşılaşman o bilinmez. Şimdi sana önemli olan noktalar.
1. DB yetkisinin olması : sqlmap araçında is-dba True olarak geçer. Yani hedef sitene sql inj yaptın ve işlem yaptığın kullanıcı root yetkiliyse yaparsın. SQLmap-da bu yöntemle SHELL upload ediliyor. Tabii manual da ediliyor.
2. Üst düzey SQL bilgisi
Şimdi tarayıcı konusuna gelince evet yaparsın. Zaten programların kullandıkları mantık da POST GET sorgularına dayanır.
ek olarak sana bununla ilgili kaynak bırakıyorum. 

İyi şanslar





___________________________________________
<cw>QARAKURT</ca>

       
  Yöneteam , Bug Hunters TIM (TIM LiDERi) ,    
 
 
[ 1 ]   2
 
Git:
  Arkadaşına yolla

Sayfa Yüklenme Süresi: 0.0547


 

İçerik Yöneticisi : AKTIF / Veriler Aktarıldı...
IP Adresiniz : 18.97.14.80 Güvenlik Nedeniyle Kayıt Altındadır.



Uzun yoldan geldik, uzun yola devam...

   


Reklam vermek için tıklayın

Forum Kuralları | Üye Olmak İçin | CyberAkademi | Operasyonel TİM'ler
CYBERAKADEMI ~ 2021