Php PDO bypass edilebilir mi?

LordSUCCESS

Uzman üye
17 Eyl 2023
1,349
623
PDO'nun kullanılması SQL enjeksiyonlarına karşı etkili bir koruma sağlasa da, kötü niyetli kullanıcılar tarafından exploit edilebilecek bazı durumlar vardır. Bunlar arasında kullanıcı girişi alanlarının yeterince doğru bir şekilde doğrulanmaması veya hazırlanan SQL ifadelerinin hatalı bir şekilde oluşturulması gibi durumlar bulunabilir.
 

Crackmeci

Katılımcı Üye
28 Haz 2020
312
170
Web
Sitemdeki SQL Açıklarını Kapatmak İçin PDO Kullandım bu bypass edilebilirmi yada bir yolu varmı denemek istiyorum
Sql injection açıklarından korunmada PDO büyük ölçüde yeterli gelecektir ancak burada PDO'yu nasıl kullandığınız da önemli yani $db->query("SELECT * FROM users where user_id=".$id); v.b. Bir şekilde kullandıysanız PDO kullanmanız pek bir işe yaramayacaktır ama eğer user_id=? şeklinde soru işaretli sorgularla yazdıysanız sql injection açıklarının önünü büyük ölçüde kesecektir yani burada asıl mevzu parametreyi sorguya değil de execute fonksiyonuna vermek veya bindParam gibi yardımcı metodlarla kullanmaktır.
 
4 May 2021
110
23
</>
Sql injection açıklarından korunmada PDO büyük ölçüde yeterli gelecektir ancak burada PDO'yu nasıl kullandığınız da önemli yani $db->query("SELECT * FROM users where user_id=".$id); v.b. Bir şekilde kullandıysanız PDO kullanmanız pek bir işe yaramayacaktır ama eğer user_id=? şeklinde soru işaretli sorgularla yazdıysanız sql injection açıklarının önünü büyük ölçüde kesecektir yani burada asıl mevzu parametreyi sorguya değil de execute fonksiyonuna vermek veya bindParam gibi yardımcı metodlarla kullanmaktır.
şimdi hocam pdo yu
$db->query("SELECT * FROM users where user_id=".$id);
buraya koyduğunda yinede sqlmap açık bulamıyor sizce normalmı manuel ınject fazla bilmiyorum
 

blink1337dagger

Kadim Üye
7 Kas 2011
5,261
42
Chicago İL
şimdi hocam pdo yu

buraya koyduğunda yinede sqlmap açık bulamıyor sizce normalmı manuel ınject fazla bilmiyorum
sen burda id değişkenini direk sorgunun içerisine vermişisin o yüzden "user_id" parametresine dışarıdan kod eklenebilir aşağıda veridiğim şekilde kullanabilirsin

$test = $db->prepare("SELECT * FROM users WHERE user_id = ?");
$test ->execute([$id]);
Burada, ? işareti bir placeholder olarak kullanılır değer daha güvenli bir şekilde yerleştirilir.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.