සේවාදායක පැත්තේ සැකිලි එන්නත් කිරීම - ssti අවදානම - ssti ගෙවීම්

සේවාදායක පැති සැකිලි එන්නත් කිරීම සැබෑ කේත උදාහරණ සමඟ පැහැදිලි කර ඇත

සේවාදායක පැත්තේ සැකිලි එන්නත් කිරීම (SSTI) යනු අවදානමක් වන අතර එහිදී පරිශීලක ආදානය සරල පෙළ ලෙස විදැහුම් කිරීම වෙනුවට සැකිලි එන්ජිමක් මඟින් ඇගයීමට ලක් කරනු ලබන අතර, ප්‍රහාරකයෙකුට සේවාදායකයේ අත්තනෝමතික කේතය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.

Server-Side Template Injection තිරය පිටුපස ක්‍රියා කරන ආකාරය

පරිශීලක ආදානය සැකිලි එන්ජිමකට සෘජුවම ඇතුළත් කර නිසි සනීපාරක්ෂාවකින් හෝ හුදකලාවකින් තොරව ඇගයීමට ලක් කළ විට සේවාදායක පාර්ශ්ව සැකිලි එන්නත් කිරීමක් සිදු වේ. මෙය ප්‍රහාරකයෙකුට විශේෂයෙන් නිර්මාණය කරන ලද SSTI ගෙවීම් එන්නත් කිරීමට ඉඩ සලසන SSTI අවදානමක් නිර්මාණය කරයි (උදාහරණයක් ලෙස, {{7*7}} Jinja2 හි), එන්ජිම විසින් ඇගයීමට ලක් කරනු ලබන අතර, සේවාදායක සන්දර්භය තුළ දත්ත හෙළිදරව් කිරීමේ සිට අත්තනෝමතික කේත ක්‍රියාත්මක කිරීම දක්වා සියල්ල සක්‍රීය කරයි. විවිධ සැකිලි එන්ජින් විවිධ වස්තූන් සහ API නිරාවරණය කරන බැවින්, SSTI ගෙවීම් වේදිකාව අනුව වෙනස් වේ නමුත් එකම අනතුර බෙදා ගනී: ඒවා විශ්වාස නොකළ ආදානය අපේක්ෂිත විදැහුම්කරණ ප්‍රවාහයෙන් ගැලවී යෙදුමේ ධාවන කාලය තුළ ක්‍රියාත්මක කිරීමට ඉඩ සලසයි, බොහෝ විට සම්පූර්ණ දුරස්ථ කේත ක්‍රියාත්මක කිරීමට හෝ පරීක්ෂා නොකළහොත් පාර්ශ්වීය චලනයකට මග පාදයි.

ජින්ජා2 හි අවම අවදානමට ලක්විය හැකි උදාහරණය

පරිශීලකයෙකු යවන්නේ නම් ?නම={{7*7}}, යෙදුම එය ඇගයීමට ලක් කරයි, ආපසු එයි ආයුබෝවන් 49. ඒක පෙළපොත් SSTI අවදානමක්.

Twig හි අවම අවදානමට ලක්විය හැකි උදාහරණය

ප්‍රහාරකයෙකුට SSTI ගෙවීම් එන්නත් කළ හැක, මෙවැනි {{7*7}} කේත ක්‍රියාත්මක කිරීම ඔප්පු කිරීමට. අන්තරාය: සරල එන්නත් කිරීම ගොනු කියවීම, OS විධාන ක්‍රියාත්මක කිරීම හෝ යටිතල පහසුකම් තුළට ගැඹුරට හැරවීම දක්වා වර්ධනය විය හැකිය.

සැබෑ ලෝක සූරාකෑම්: දුරස්ථ කේත ක්‍රියාත්මක කිරීම අවුලුවන SSTI ගෙවීම්

SSTI අවදානමක් පවතින විට, ප්‍රහාරකයින් සංකල්ප-සාධන ගණිතයේ සිට සම්පූර්ණ ගණිතයට මාරු වීමට උත්සාහ කරයි. RCEවිවිධ සැකිලි එන්ජින් ගෙවීම් වෙනස් ලෙස හසුරුවයි.

ජින්ජා2 බර පැටවුම්

  • {{7*7}} → අංක ගණිත ක්‍රියාත්මක කිරීම
  • {{config.items()}} → සේවාදායක වින්‍යාස කාන්දු වේ.
  • {{ “”.__class__.__mro__[2].__subclasses__() }} → RCE වෙත මාර්ගය

ප්‍රවේග බර පැටවීම්

  • #සකසන්න($x=”7″)${x} → එන්නත් මඟ හැරීම
  • #set($a=$class.inspect(“java.lang.runtime”)) → සෘජු ධාවන කාල ප්‍රවේශය

අතු බර පැටවුම්

  • {{7*7}} → අංක ගණිතය
  • {{app.request.server.all}} → පරිසර විචල්‍යයන්
  • {{_self.env.registerUndefinedFilterCallback(‘system’)}} → කේත ක්‍රියාත්මක කිරීම

මෙම SSTI ගෙවීම් මඟින් විවිධ එන්ජින්වල එකම අවදානම විවිධ ගැටළු වලට තුඩු දෙන ආකාරය පෙන්නුම් කරයි. මාර්ග සූරාකෑම, නමුත් ඒවා සැමවිටම භයානකයි.

සේවාදායක පැත්තේ සැකිලි එන්නත් කිරීම සැඟවී ඇති තැන CI/CD-ධාවනය කරන ලද යෙදුම්

සේවාදායක පැත්තේ සැකිලි එන්නත් කිරීම වෙබ් යෙදුම් අවදානමක් පමණක් නොවේ; එය දිස්වන්නේ නූතන CI/CD pipelines ද. සාමාන්‍ය සැඟවුණු ස්ථාන අතරට:

  • හෙල්ම් ප්‍රස්ථාර කුබර්නෙට්ස් හි, සැකිලි අගයන් ගතිකව විදැහුම් කරනු ලැබේ
  • ඊමේල් සැකිලි පරිශීලක-පාලිත යෙදවුම් සම්බන්ධ කරන
  • Dashboards එහිදී විමසුම් අනුලකුණු හෝ වින්‍යාස දත්ත සැකිලි වලට එන්නත් කරනු ලැබේ
  • DevOps ස්ක්‍රිප්ට් සැකිලි එන්ජින් භාවිතයෙන් HTML/Markdown ජනනය කරන.

උදාහරණයක්:

If.වටිනාකම්.පණිවිඩය විශ්වාස නොකළ ආදානයකින් පැමිණේ, එය ඔබගේ යෙදවීමේදී සේවාදායක පාර්ශ්ව සැකිලි එන්නත් කිරීමක් හඳුන්වා දෙයි. pipeline ම ය.

ආරක්ෂිත සැකිලි රටා සහ ස්ථිතික විශ්ලේෂණයන් සමඟ SSTI වැළැක්වීම

SSTI අවදානම් අවම කිරීම සඳහා වඩා හොඳ කේතීකරණ රටා සහ කලින් හඳුනා ගැනීම අවශ්‍ය වේ.

ආරක්ෂිත රටා

  • ❌ භාවිතා නොකරන්න සැකිල්ල_නූල විදැහුම් කරන්න හෝ සමාන
  • ✅ පූර්ව නිශ්චිත සැකිලි ගොනු භාවිතා කර සනීපාරක්ෂක විචල්‍යයන් ලබා දෙන්න
  • ✅ සෑන්ඩ්බොක්ස් සැකිලි එන්ජින් ඇති විට
  • ✅ විදැහුම්කරණයට පෙර පරිශීලක ආදානය වලංගු කර මඟ හරින්න
  •  

සංවර්ධකයින් සඳහා කුඩා පිරික්සුම් ලැයිස්තුව

  • අමු පරිශීලක ආදානය කිසි විටෙකත් සෘජුවම ඉදිරිපත් නොකරන්න.
  • සහාය දක්වන විට වැලිපිල්ල සැකිලි භාවිතා කරන්න.
  • සියලුම සැකිලි විචල්‍යයන් සනීපාරක්ෂාව කර වලංගු කරන්න
  • අභිරුචි සැකිලි ඇගයුම්කරුවන්ගෙන් වළකින්න
  • කේතය ස්කෑන් කරන්න සැකිල්ල_නූල විදැහුම් කරන්න හෝ නූල් සංයෝජන රටා

ස්ථිතික විශ්ලේෂණය සහ ලින්ටර වලට අවදානම් සහිත ඉදිකිරීම් නිෂ්පාදනයට ළඟා වීමට පෙර සලකුණු කළ හැකිය.

DevSecOps තුළ SSTI චෙක්පත් ඇතුළත් කිරීම Pipelines

සේවාදායක පාර්ශ්ව සැකිලි එන්නත් කිරීම කලින් ලබා ගැනීම පසුව නිවැරදි කිරීමට වඩා ලාභදායී සහ ආරක්ෂිතයි. DevSecOps කණ්ඩායම් චෙක්පත් ඇතුළත් කළ යුතුය pipelines:

  • Commit hooks: ප්‍රතික්ෂේප කරන්න commitභයානක කාර්යයන් සහිත (සැකිල්ල_නූල විදැහුම් කරන්න)
  • ස්ථිතික විශ්ලේෂක: සැකිලි කේතයේ සේවාදායක පැත්තේ සැකිලි එන්නත් කිරීමේ අවදානම සඳහා ස්කෑන් කරන්න
  • යැපුම් වලංගුකරණය: දන්නා SSTI අවදානම් සහිත යල් පැන ගිය සැකිලි එන්ජින් සලකුණු කරන්න
  • Pipeline ගේට්ටු: SSTI පරීක්ෂාවන් සමත් වන තුරු බ්ලොක් ඒකාබද්ධ වේ

SSTI බර හඳුනාගැනීමේ කොටස බවට පත් කිරීමෙන් CI/CD, ඔබ සූරාකෑමට ලක්විය හැකි කේතය කිසිදා නැව්ගත කිරීම වළක්වයි.

සේවාදායක පැත්තේ සැකිලි එන්නත් කිරීම ඔබේ තොගයට ලිස්සා යාමට ඉඩ නොදෙන්න.

තනි සේවාදායක පාර්ශ්ව සැකිලි එන්නත් කිරීම ගණිත උපක්‍රම වලින් උත්සන්න විය හැක ({{7*7}}) සම්පූර්ණ දුරස්ථ කේත ක්‍රියාත්මක කිරීමට. SSTI අවදානම් වෙබ් යෙදුම්වල පමණක් නොව, CI/CD pipelines, හෙල්ම් ප්‍රස්ථාර සහ විද්‍යුත් තැපැල් සැකිලි.

යතුරු රැගෙන යාම

  • අමු පරිශීලක ආදානය කිසි විටෙකත් සැකිලි වලට ඉදිරිපත් නොකරන්න.
  • සියලුම ගතික විචල්‍යයන් වලංගු කර පිරිසිදු කරන්න.
  • විවිධ එන්ජින් (Jinja2, Velocity, Twig) වලට විවිධ SSTI බර පැටවීම් ඇත, නමුත් ඒ සියල්ල ආයුධ බවට පත් කළ හැකිය.
  • ස්ථිතික විශ්ලේෂණය සහ අසාර්ථක-වේගවත් ගේට්ටු භාවිතා කරන්න pipelines
  • ඔබේ තොගයේ ඇති සැකිලි නිතිපතා විගණනය කරන්න

සයිජෙනි එන්නත් කිරීමේ දෝෂ සහ අනෙකුත් අනාරක්ෂිත කේතීකරණ රටා දිස්වන විට ඔබේ කේත පදනම පරිලෝකනය කරයි, නිෂ්පාදනයට ළඟා වීමට පෙර සනීපාරක්ෂාව නොකළ සැකිලි විදැහුම්කරණය වැනි අවදානම් සහිත ඉදිකිරීම් අල්ලා ගනී, OWASP මිණුම් ලකුණෙහි අවම ව්‍යාජ-ධනාත්මක අනුපාතයක් සමඟ. Xygeni's CI/CD සහ IaC security ස්කෑන් කිරීම එම ආවරණයම දක්වා විහිදේ pipeline වින්‍යාස කිරීම්, හෙල්ම් ප්‍රස්ථාර සහ ගොඩනැගීමේ ස්ක්‍රිප්ට්, වැරදි වින්‍යාස සහ අනිෂ්ට විධාන නැව්ගත කිරීමට පෙර සලකුණු කිරීම. Xygeni අවදානමක් සොයාගත් විට, AI AutoFix සෘජුවම සන්දර්භය-දැනුවත්, සංවර්ධක-සූදානම් විසඳුමක් ජනනය කරයි. pull request, එබැවින් ප්‍රතිකර්මය ඊළඟ ස්ප්‍රින්ට් එක එනතුරු බලා සිටින්නේ නැත.

DevSecOps හි, සැකිලි එන්නත් කිරීම අල්ලා ගැනීම pipeline තනි ගෙවීමක් සම්පූර්ණ සම්මුතියක් බවට පත්වීමෙන් වළක්වන්නේ යෙදවීමෙන් පසුව නොව, අදියරයි.

නොමිලේ ආරම්භ කරන්න. ක්‍රෙඩිට් කාඩ් අවශ්‍ය නැහැ, මිනිත්තු කිහිපයකින් ඔබේ පළමු ගබඩාව පරිලෝකනය කරන්න.

නිති අසන පැණ

සේවාදායක පාර්ශ්ව සැකිලි එන්නත් කිරීම යනු කුමක්ද?

SSTI සිදුවන්නේ පරිශීලක ආදානය සැකිලි එන්ජිමකට ලබා දී පෙළ ලෙස පෙන්වීම වෙනුවට කේතයක් ලෙස ඇගයීමට ලක් කළ විටය, එමඟින් ප්‍රහාරකයෙකුට සේවාදායකයේ සන්දර්භය තුළ විධාන ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.

SSTI එක XSS එකට සමානද?

නැත. XSS මඟින් වින්දිතයෙකුගේ බ්‍රවුසරයේ ක්‍රියාත්මක වන ස්ක්‍රිප්ට් එන්නත් කරයි; SSTI මඟින් සැකිලි එන්ජිම සේවාදායකය තුළම ඇගයීමට ලක් කරන කේතය එන්නත් කරයි, එම නිසා SSTI හට දුරස්ථ කේත ක්‍රියාත්මක කිරීමට සෘජුවම මඟ පෑදිය හැකිය.

SSTI වලට ගොදුරු විය හැකි සැකිලි එන්ජින් මොනවාද?

Jinja2, Twig සහ Velocity ඇතුළුව, පරිශීලක ආදානය සනීපාරක්ෂාවකින් තොරව එයට ළඟා වුවහොත් ප්‍රකාශන ඇගයීමට ලක් කරන ඕනෑම එන්ජිමක් අවදානමට ලක් විය හැකිය, නමුත් ඒ සෑම එකක්ම විවිධ වස්තූන් නිරාවරණය කරන අතර එම නිසා විවිධ සූරාකෑම් මාර්ග නිරාවරණය කරයි.

SSTI වළක්වා ගන්නේ කෙසේද? CI/CD pipelines?

වැනි භයානක රටා සඳහා ස්කෑන් කරන්න render_template_string at commit කේතය නිෂ්පාදනයට ළඟා වීමට පෙර ස්ථිතික විශ්ලේෂණ ප්‍රතිඵල මත කාලය, සහාය දක්වන වැලිපිල්ල සැකිලි එන්ජින් සහ ගේට් ඒකාබද්ධ කිරීම්.

sca-මෙවලම්-මෘදුකාංග-සංයුතිය-විශ්ලේෂණ-මෙවලම්
ඔබේ මෘදුකාංග අවදානම් ප්‍රමුඛතාවය දෙන්න, නිවැරදි කරන්න සහ සුරක්ෂිත කරන්න
ඔබගේ නොමිලේ ගිණුම ලබා ගන්න.
කිසිදු ක්රෙඩිට් කාඩ්පතක් අවශ්ය නොවේ.

ඔබේ මෘදුකාංග සංවර්ධනය සහ බෙදා හැරීම සුරක්ෂිත කරන්න

Xygeni නිෂ්පාදන කට්ටලය සමඟ