Kurum ağında MS SQL veritabanındaki bir veritabanı kullanıcısına ait erişim bilgileri, “Test/Test” olarak elde edilmiş olsun. Bu kullanıcı hesabına ait sunucu rolü Public olduğu görülmektedir.
“Test” adlı veritabanı kullanıcı hesabı “sa” ve “sql_hesabi” adlı iki veritabanı kullanıcısının yetkileri ile işlem yapması gerektiği için, bu hesaba IMPERSONATE yetkileri verildiği (ve bu yetkinin geri alınmasının unutulduğu) varsayılsın.
Yetki verildikten sonra Securable sayfasında bu yetkinin alınmış olduğu görülmektedir.
Bu durum istismar edilerek IMPERSONATE yetkisi verilen kullanıcının hakları ele geçirildiğinde, “sa” ve “sql_hesabi” kullanıcısının hakları ile komut çalıştırılabilir. Veritabanındaki bu konfigürasyon hatasının istismarı için SQL komutları çalıştırılabilir.
Select IS_SRVROLEMEMBER (‘sysadmin’,’Test’) as Durum
EXECUTE AS LOGIN = ‘sa’
EXEC sp_addsrvrolemember Test,sysadminSelect IS_SRVROLEMEMBER (‘sysadmin’,’Test’) as Durum
Böylece IMPERSONATE hakkı kötüye kullanılarak Public rolündeki kullanıcı hesabı sysadmin rolüne sahip olmuş olur.