ezSQL ez_sql_mysql.php Kütüphanesi Sql Injection Açığı
[GTranslate]
Bir çok php ile yapılmış sitelerde (içerisinde ciddi firmaların, dergilerin ve devlet kurumlarınını olduğu) bu kütüphane kullanılmış. 10’a yakın site üzerinde yaptığım testlerde neredeyse tamamında Sql Injection açığı mevcut.
Kütüphane kodlarında ;
function escape($str)
{
return mysql_escape_string(stripslashes($str));
}
şeklinde güvenlik önlemi alınmış olmasına rağmen Query fonksiyonunda ;
// Perform the query via std mysql_query function..
$this->result = @mysql_query($query,$this->dbh);
bu temizleme fonksiyonu kullanılmamış…
Bu kütüphaneyi kullanan sitelerden bir tanesinde ise çıktı şu şekilde ;
Warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OR 1=1 AND yayin_durumu = 'EVET' ORDER BY oto_id DESC LIMIT 0,20' at line 1 in C:\Inetpub\vhosts\oto****.com\httpdocs\libs\ez_sql_mysql.php on line 204
Scriptin Kaynağı :
/**********************************************************************
* Author: Justin Vincent (justin@visunet.ie)
* Web…: http://php.justinvincent.com
* Name..: ezSQL_mysql
* Desc..: mySQL component (part of ezSQL databse abstraction library)
*
*/**********************************************************************
Bu kütüphaneyi kullanıyorsanız mutaka kodlarınızı gözden geçirin.
3 Comments
Şükrü
Merhaba
Peki Bu Açıgı Nasıl Kapatacagız
ayhan
olan olur da okur diye , escape() fonksiyonunu kullanarak query e gonder bunu manual yapabilirsin yada $query i $query = escape($query); şeklinde ekleme yap
ayhan
$query = $this->escape($query);