චෙක් පොයින්ට් වෙතින් පර්යේෂකයන්
සාර්ථක ප්රහාරයක් සඳහා, ප්රහාරයට ලක් වූ යෙදුම්වල දත්ත සමුදා ගොනු වෙනස් කිරීමට හැකි වීම අවශ්ය වේ, එමඟින් සංක්රමණ සහ ආදාන දත්ත සඳහා ආකෘතියක් ලෙස SQLite දත්ත සමුදාය භාවිතා කරන යෙදුම්වලට පහර දීම සඳහා ක්රමය සීමා කරයි. මෙම ක්රමය දැනට පවතින දේශීය ප්රවේශය පුළුල් කිරීමට ද භාවිතා කළ හැක, නිදසුනක් ලෙස, සැඟවුණු පසු දොර භාවිතා කරන ලද යෙදුම් වලට ඒකාබද්ධ කිරීමට මෙන්ම ආරක්ෂක පර්යේෂකයන් විසින් අනිෂ්ට මෘදුකාංග විශ්ලේෂණය කිරීමේදී ආරක්ෂක යාන්ත්රණ මඟ හැරීමට ද භාවිතා කළ හැක. ගොනු ආදේශනයෙන් පසු මෙහෙයුම සිදු කරනු ලබන්නේ යෙදුම වෙනස් කරන ලද දත්ත සමුදායේ වගුවකට එරෙහිව පළමු SELECT විමසුම ක්රියාත්මක කරන මොහොතේ ය.
උදාහරණයක් ලෙස, ලිපින පොතක් විවෘත කිරීමේදී iOS හි කේතය ධාවනය කිරීමේ හැකියාව අපි පෙන්නුම් කළෙමු, "AddressBook.sqlitedb" දත්ත සමුදාය සහිත ගොනුව යෝජිත ක්රමය භාවිතයෙන් වෙනස් කරන ලදී. ප්රහාරය අප්රේල් SQLite 3 යාවත්කාලීනයේ සවි කර ඇති fts2019_tokenizer ශ්රිතයේ (CVE-8602-2.28, pointer dereference හැකියාව) අවදානමක් භාවිතා කළේය.
ප්රහාරක ක්රමය පදනම් වී ඇත්තේ "Query Hijacking" සහ "Query Oriented Programming" යන ශිල්පීය ක්රම දෙකක් භාවිතා කිරීම මත වන අතර එමඟින් SQLite එන්ජිමේ මතක දූෂණයට තුඩු දෙන අත්තනෝමතික ගැටළු උපයෝගී කර ගැනීමට ඉඩ සලසයි. "Query Hijacking" හි සාරය වන්නේ දත්ත සමුදායේ ව්යුහය තීරණය කරන sqlite_master සේවා වගුවේ "sql" ක්ෂේත්රයේ අන්තර්ගතය ප්රතිස්ථාපනය කිරීමයි. දත්ත සමුදායේ ඇති වස්තූන්ගේ ව්යුහය විස්තර කිරීමට භාවිතා කරන DDL (Data Definition Language) බ්ලොක් එකක් නිශ්චිත ක්ෂේත්රයේ අඩංගු වේ. විස්තරය සම්මත SQL වාක්ය ඛණ්ඩය භාවිතයෙන් නියම කර ඇත, i.e. "CREATE TABLE" ඉදිකිරීම භාවිතා වේ,
දත්ත සමුදාය ආරම්භ කිරීමේ ක්රියාවලියේදී (පළමු දියත් කිරීමේදී) ක්රියාත්මක වේ
sqlite3LocateTable මතකයේ වගු ආශ්රිත අභ්යන්තර ව්යුහයන් නිර්මාණය කිරීමට ක්රියා කරයි.
අදහස නම්, "CREATE TABLE" වෙනුවට "CREAT VIEW" ආදේශ කිරීමේ ප්රතිඵලයක් ලෙස, ඔබගේම දර්ශනය නිර්වචනය කිරීමෙන් දත්ත සමුදායට ඕනෑම ප්රවේශයක් පාලනය කිරීමට හැකි වේ. "CREATE VIEW" භාවිතයෙන් "SELECT" මෙහෙයුමක් වගුවට බැඳී ඇත, එය "CREAT TABLE" වෙනුවට හඳුන්වනු ලබන අතර SQLite පරිවර්තකයේ විවිධ කොටස් වෙත ප්රවේශ වීමට ඔබට ඉඩ සලසයි. ඊළඟට, ප්රහාරයේ සරලම ක්රමය වනුයේ “load_extension” ශ්රිතය ඇමතීමටයි, එමඟින් ඔබට දිගුවක් සහිත අත්තනෝමතික පුස්තකාලයක් පැටවීමට ඉඩ සලසයි, නමුත් මෙම කාර්යය පෙරනිමියෙන් අක්රීය කර ඇත.
“SELECT” මෙහෙයුම සිදු කිරීමට හැකි වූ විට ප්රහාරයක් සිදු කිරීම සඳහා, “Query Oriented Programming” තාක්ෂණය යෝජනා කර ඇති අතර, එමඟින් මතක දූෂණයට තුඩු දෙන SQLite හි ගැටලු උපයෝගී කර ගැනීමට හැකි වේ. තාක්ෂණය නැවත-නැඹුරු ක්රමලේඛනය සිහිගන්වයි (
මූලාශ්රය: opennet.ru