Server Side Template Injection(SSTI) nədir?
Müəllif : Asim Verdiyev
Last updated
Was this helpful?
Müəllif : Asim Verdiyev
Last updated
Was this helpful?
Server Side Template Injection zəifliyi təcavüzkarın server tərəfindəki əmrləri yerinə yetirmək üçün Template-ə malicious kod injeksiya etməsidir. Bu zəiflik, yanlış istifadəçi daxiletməsi Template Engine-ə daxil edildikdə baş verir ki, bu da böyük ehtimalla Remote Code Execution(RCE) səbəb olur.
Template Engine-ləri dinamik məlumatların veb səhifələrə yerləşdirilməsinə kömək edən nəticə sənədləri hazırlamaq üçün template-ləri məlumat modeli ilə birləşdirmək üçün nəzərdə tutulmuşdur. Template Engine-ləri istifadəçilər, məhsullar və s. haqqında məlumatları göstərmək üçün istifadə edilə bilər. Ən populyar Template Engine-lərindən bəziləri aşağıdakı kimi sadalana bilər:
PHP – Smarty, Twigs
JAVA – Velocity,Freemaker
Python–JINJA,Mako,Tornado • JavaScript–Jade,Rage
Ruby-Liquid
input validation server tərəfində düzgün idarə edilmədikdə, serverdə zərərli SSTİ payload-ı icra oluna bilər ki, bu da RCE ilə nəticələnə bilər.
Aşağıdakı sorğunun parametrini test etdiyinizi təsəvvür edin:
Zəifliyi aşkar etmək üçün, aşağıdakılar kimi xüsusi simvollar ardıcıllığı olan parametrin dəyəri kimi poliqlot payloadından istifadə edin:
Template Engine-i müəyyən etmək üçün error mesajını oxuyun:
Error mesajı Template Engine-i göstərmirsə, məşhur Template Engine-ləri üçün bəlli olan payloadlar sınaqdan keçirə bilərik:
Error mesajı Template Engine-i göstərmirsə, məşhur Template Engine-lər üçün bilinən payloadlar vasitəsilə test edə bilərsiniz:
Çıxışda bu Template-dən istifadə edə biləcəyiniz object-lərin siyahısı olacaq:
Mövcud olan "parametrlər" object-dən istifadə edərək gizli açarı oxuyaq:
SSTİ zəifliklərinin təsiri kritikdir, nəticədə backend-ə nəzarət edir və bu da RCE ilə nəticələnir. Hətta code execution olmadan, təcavüzkar serverdə həssas məlumatları oxuya bilər. Template Engine-dən asılı olaraq SSTI zəifliyinin kritik olmadığı nadir hallar da var.
SSTI zəifliklərini tapmaq üçün Template ifadələrində istifadə edilən xüsusi simvollardan ibarət Polyglot payloadı istifadə edin.
Zəiflik olduqda, xəta mesajı qaytarıla bilər və ya server tərəfındən istisna yaradıla bilər.Bu zəifliyi və istifadə olunan Template Engine-i müəyyən etmək üçün istifadə edilə bilər.
Zəifliyi müəyyən etmək üçün aşağıdakı ardıcıllıqlara əməl oluna bilər:
Template injectionun harada olduğunu müəyyən edin
Template Engine-i müəyyən edin və zəifliyi təsdiqləyin
Xüsusi Template Engine üçün təlimatlara əməl edin
Zəiflikdən istifadə edin
Aşağıdakı cheat sheet Template Engine-i müəyyən etmək üçün istifadə edilə bilər:
Tplmap, əsas əməliyyat sisteminə giriş əldə etmək üçün bir neçə Sandbox Bypass üsulları ilə Code Injection və Server Side Template Injection zəifliklərinin istismarına kömək edir.
Tool və onun test dəsti SSTI zəifliyini araşdırmaq və veb proqramların Pentestləri offensive security tools kimi istifadə etmək üçün hazırlanmışdır.
Sanitization: Hər hansı bir zəifliyi aradan qaldırmaq və ya minimuma endirmək üçün data-nı Template-ə ötürməzdən əvvəl "user input"-nu lazımsız şeylərdən təmizləyin.
Sandboxing: Təhlükəli simvolların istifadəsi iş ehtiyacıdırsa, təhlükəsiz mühitdə sandbox istifadə etmək tövsiyə olunur.
alət üçün GitHub repozitoriyasını yoxlayın .
Daha çox Payload üçün gedin.
qaldırılması üsulları istifadə edilən müxtəlif Template Engine-dən asılıdır. Bu zəifliyi aradan qaldırmaq üçün 2 ümumi təklif var: