Cloudflare සේවාදායකයන් මත කේත ක්‍රියාත්මක කිරීමට ඉඩ සලසන cdnjs හි අවදානම

Cloudflare හි cdnjs අන්තර්ගත බෙදා හැරීමේ ජාලය තුළ තීරණාත්මක අවදානමක් හඳුනාගෙන ඇත, එය JavaScript පුස්තකාල බෙදා හැරීම වේගවත් කිරීම සඳහා නිර්මාණය කර ඇති අතර, CDN සේවාදායකයන් මත අත්තනෝමතික කේත ක්‍රියාත්මක කිරීමට ඉඩ සලසයි. අන්තර්ජාලයේ ඇති සියලුම වෙබ් අඩවි වලින් 12.7% ක් පමණ JavaScript පුස්තකාල බාගත කිරීම සඳහා සේවාව භාවිතා කරන අතර, යටිතල පහසුකම් සම්මුතිය මෙම ඕනෑම වෙබ් අඩවියකින් සපයන පුස්තකාල ප්‍රතිස්ථාපනය කිරීමට හැකි වන පරිදි ගැටලුවේ අන්තරාය උග්‍ර වේ.

cdnjs සේවාව Git හෝ NPM ගබඩාවකින් පැකේජ බාගත කරයි, ඉන්පසු එය JavaScript පුස්තකාල පූරණය කිරීම වේගවත් කිරීම සඳහා Cloudflare අන්තර්ගත බෙදාහැරීමේ ජාලය නොමිලේ භාවිතා කිරීමට ඕනෑම අඩවියකට ඉඩ සලසයි. GitHub හි ප්‍රකාශයට පත් කරන ලද cdnjs සංරචකවල කේතය අධ්‍යයනය කරන විට, tgz ලේඛනාගාරයේ NPM පැකේජ ඉවත් කිරීම සඳහා, Go භාෂාවේ සම්මත සංරක්ෂිත/තාර මොඩියුලය භාවිතා කරන බව අනාවරණය විය, එමඟින් මාර්ග සාමාන්‍යකරණය නොකර ගොනු ලැයිස්තුවක් නිෂ්පාදනය කරයි. . ලබා දී ඇති ලැයිස්තුව මත පදනම්ව ස්ක්‍රිප්ටය අන්තර්ගතය අසුරන විට, “../../../../../../../tmp/test” වැනි ගොනු සංරක්ෂිතයේ තිබීම විය හැක. ප්‍රවේශ අයිතිවාසිකම්වලට ඉඩ දෙන තාක් දුරට, පද්ධතිය තුළ අත්තනෝමතික ගොනු නැවත ලිවීමට මඟ පාදයි.

ප්‍රහාරකයෙකුට තම පුස්තකාලය cdnjs වෙත එක් කිරීමට සහ NPM ගබඩාව වෙත යන මාර්ගයේ "../" අක්ෂර සහිත ගොනු අඩංගු විෙශේෂෙයන් නිර්මාණය කරන ලද සංරක්ෂිතයක් උඩුගත කිරීමට ඉල්ලුම් කළ හැකි බව යෝජනා විය. cdnjs සේවාදායකයන් මත, "ස්වයං යාවත්කාලීන" මෙහෙයුමක් වරින් වර සිදු කරනු ලබන අතර, එම කාලය තුළ හසුරුවන්නා විසින් යෝජිත පුස්තකාලයේ නව අනුවාදයන් බාගත කර අන්තර්ගතය ඉවත් කරයි. “../” යන මාර්ග සහිත ගොනු භාවිතා කරමින්, ප්‍රහාරකයෙකුට සේවා ස්ක්‍රිප්ට් සහිත ගොනු උඩින් ලිවිය හැකි අතර, අසුරන ලද සේවාදායකය මත ඒවායේ කේතය ක්‍රියාත්මක කළ හැක.

Git වෙතින් යාවත්කාලීන බාගත කිරීමේදී, යාවත්කාලීන බාගත කරන හසුරුවන්නා Git වෙතින් ගොනු පිටපත් කිරීමේදී සංකේතාත්මක සබැඳි සැලකිල්ලට නොගත් බව සොයා ගන්නා ලදී. මෙම විශේෂාංගය මඟින් Git වෙත සංකේතාත්මක සබැඳි එක් කිරීමෙන් සේවාදායකයෙන් ඕනෑම ගොනුවක් කියවීම සංවිධානය කිරීමට හැකි විය.

ගොනු කියවීම සම්බන්ධ කල්පිතය පරීක්‍ෂා කිරීමෙන් HackerOne හි ත්‍යාගයක් ලබා ගැනීම සඳහා cdnjs හැක් කිරීමේ ආදර්ශනයක් සමඟ අත්හදා බැලීම් ආරම්භ කිරීමට තීරණය විය. /proc/self/maps ගොනුව වෙත යොමු කරමින් CDN හරහා සේවය කරන JavaScript පුස්තකාලයේ Git ගබඩාවට test.js සංකේතාත්මක සබැඳියක් එක් කර ඇත. පුස්තකාලයේ නව අනුවාදයක් ප්‍රකාශයට පත් කිරීමෙන් පසු, යාවත්කාලීන හසුරුවන්නා මෙම ගබඩාව සකස් කර cdnjs හි නිශ්චිත ගොනුව ප්‍රකාශයට පත් කර ඇත (test.js සංකේතාත්මක සබැඳියක් ලෙස සාදන ලද අතර මෙම ගොනුව ඉල්ලා සිටි විට, /proc/self/maps හි අන්තර්ගතය ආපසු ලබා දෙන ලදී. )

ගොනුව /proc/self/environ වෙත සංකේතාත්මක සබැඳියක් ආදේශ කරමින්, අධ්‍යයනයේ කතුවරයා විසින් දෙන ලද දත්තවල GITHUB_REPO_API_KEY සහ WORKERS_KV_API_TOKEN යන පරිසර විචල්‍යවල අගයන් අඩංගු බව නිරීක්ෂණය විය. පළමු විචල්‍යය GitHub හි robocdnjs ගබඩාවට ලිවීමේ ප්‍රවේශය සඳහා API යතුර ගබඩා කර ඇත. දෙවන විචල්‍යය කේවී ගබඩාවට ටෝකනය cdnjs හි ගබඩා කර ඇත. ලැබුණු තොරතුරු භාවිතා කරමින්, ප්රහාරකයාට cdnjs වෙත වෙනස්කම් සිදු කළ හැකි අතර යටිතල පහසුකම් සම්පූර්ණයෙන්ම සම්මුතියට පත් කළ හැකිය.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න