በSQLite ውስጥ ተጋላጭነቶችን ለመጠቀም አዲስ ቴክኒክ አስተዋወቀ

ተመራማሪዎች ከቼክ ነጥብ ያልተሸፈነ በDEF CON ኮንፈረንስ፣ ተጋላጭ የሆኑ የSQLite ስሪቶችን በመጠቀም መተግበሪያዎችን ለማጥቃት የአዲሱ ዘዴ ዝርዝሮች። የቼክ ነጥቡ ዘዴ የውሂብ ጎታ ፋይሎችን በቀጥታ ሊበዘብዙ በማይችሉ የተለያዩ የውስጥ SQLite ንዑስ ስርዓቶች ውስጥ ያሉ ተጋላጭነቶችን ለመጠቀም ሁኔታዎችን ለማዋሃድ እንደ እድል ይቆጥራል። ተመራማሪዎች በSQLite ዳታቤዝ ውስጥ ያለውን የ SELECT መጠይቆችን ሰንሰለት በኮድ በማድረግ ተጋላጭነቶችን የመጠቀም ዘዴን አዘጋጅተዋል፣ ይህም ASLRን እንዲያልፉ ያስችልዎታል።

ለስኬታማ ጥቃት ጥቃት የደረሰባቸውን አፕሊኬሽኖች የውሂብ ጎታ ፋይሎችን ማሻሻል መቻል አስፈላጊ ነው, ይህም የ SQLite ዳታቤዝ እንደ የመተላለፊያ እና የግብአት ውሂብ ቅርጸት በሚጠቀሙ መተግበሪያዎች ላይ ለማጥቃት ዘዴን ይገድባል. ዘዴው አሁን ያለውን የአካባቢ ተደራሽነት ለማስፋት ለምሳሌ የተደበቀ የኋላ በሮች ወደ ያገለገሉ መተግበሪያዎች ለማዋሃድ እና እንዲሁም በደህንነት ተመራማሪዎች ማልዌር ሲተነተን የደህንነት ዘዴዎችን ለማለፍ ጥቅም ላይ ሊውል ይችላል። የፋይል ምትክ ከተተካ በኋላ የሚሠራው አፕሊኬሽኑ በተሻሻለው የውሂብ ጎታ ውስጥ ባለው ሠንጠረዥ ላይ የመጀመሪያውን የ SELECT ጥያቄ በሚፈጽምበት ጊዜ ነው.

እንደ ምሳሌ የአድራሻ ደብተር ስንከፍት በ iOS ውስጥ ኮድን የማስኬድ ችሎታ አሳይተናል, በ "AddressBook.sqlitedb" ዳታቤዝ ያለው ፋይል በታቀደው ዘዴ ተስተካክሏል. ጥቃቱ ተጋላጭነትን ተጠቅሟል fts3_tokenizer ተግባር (CVE-2019-8602፣ የጠቋሚ ማቋረጫ አቅም)፣ በኤፕሪል SQLite 2.28 ዝማኔ ውስጥ የተስተካከለ፣ ከሌላ ጋር ተጋላጭነት የዊንዶው ተግባራትን በመተግበር ላይ. በተጨማሪም በ PHP ውስጥ የተፃፈውን የአጥቂውን የጀርባ አገልጋይ በርቀት ለመቆጣጠር ዘዴውን መጠቀም በተንኮል አዘል ኮድ አሠራር ወቅት የተጠለፉ የይለፍ ቃሎችን ያከማቻል (የተጠለፉ የይለፍ ቃሎች በ SQLite የውሂብ ጎታ መልክ ተላልፈዋል)።

የጥቃቱ ዘዴ በ SQLite ሞተር ውስጥ ወደ ማህደረ ትውስታ ብልሹነት የሚወስዱ የዘፈቀደ ችግሮችን ለመጠቀም የሚፈቅዱ ሁለት ቴክኒኮችን "Query Hijacking" እና "Query Oriented Programming" በመጠቀም ላይ የተመሰረተ ነው. የ"Query Hijacking" ይዘት የ "sql" መስክን በ sqlite_master አገልግሎት ሠንጠረዥ ውስጥ መተካት ነው, ይህም የውሂብ ጎታውን መዋቅር ይወስናል. የተገለጸው መስክ በመረጃ ቋቱ ውስጥ ያሉትን የነገሮች አወቃቀር ለመግለጽ የሚያገለግል የዲዲኤል (የዳታ ፍቺ ቋንቋ) ብሎክ ይዟል። መግለጫው መደበኛውን የ SQL አገባብ በመጠቀም ይገለጻል, ማለትም. የ “ሠንጠረዥ ፍጠር” ግንባታ ጥቅም ላይ ይውላል ፣
በዳታቤዝ አጀማመር ሂደት (በመጀመሪያው ጅምር ወቅት) የሚፈጸመው።
sqlite3LocateTable ተግባራት በማህደረ ትውስታ ውስጥ ከሠንጠረዥ ጋር የተያያዙ ውስጣዊ መዋቅሮችን ለመፍጠር.

ሃሳቡ፣ “ሠንጠረዥ ፍጠር”ን በ “ፍጠር እይታ” በመተካት ምክንያት የእራስዎን እይታ በመግለጽ ማንኛውንም የመረጃ ቋት መዳረሻ መቆጣጠር ይቻላል። የ"CREATE VIEW"ን በመጠቀም የ"SELECT" ክዋኔ ከሠንጠረዡ ጋር የተሳሰረ ነው፣ይህም "TABLE ፍጠር" ከማለት ይልቅ የሚጠራ እና የተለያዩ የSQLite አስተርጓሚ ክፍሎችን እንድትደርስ ያስችልሃል። በመቀጠል በጣም ቀላሉ የጥቃት ዘዴ የ "load_extension" ተግባርን መጥራት ነው, ይህም የዘፈቀደ ቤተ-መጽሐፍትን ከቅጥያ ጋር ለመጫን ያስችልዎታል, ነገር ግን ይህ ተግባር በነባሪነት ተሰናክሏል.

የ "SELECT" ክዋኔውን ለማከናወን በሚቻልበት ጊዜ ጥቃትን ለመፈጸም "Query Oriented Programming" የሚለው ዘዴ ቀርቧል, ይህም በ SQLite ውስጥ ወደ ማህደረ ትውስታ ብልሹነት የሚወስዱ ችግሮችን ለመበዝበዝ ያስችላል. ቴክኒኩ የመመለሻ ተኮር ፕሮግራሞችን ያስታውሳል (ሪፕ፣ መመለሻ ተኮር ፕሮግራሚንግ)፣ ነገር ግን የጥሪ ሰንሰለት ለመገንባት ("መግብሮችን") ለመገንባት ያሉትን የማሽን ኮድ ቅንጣቢዎችን አይጠቀምም ነገር ግን በ SELECT ውስጥ የንዑስ መጠይቆችን ስብስብ ውስጥ ያስገባል።

በSQLite ውስጥ ተጋላጭነቶችን ለመጠቀም አዲስ ቴክኒክ አስተዋወቀ

በSQLite ውስጥ ተጋላጭነቶችን ለመጠቀም አዲስ ቴክኒክ አስተዋወቀ

ምንጭ: opennet.ru

አስተያየት ያክሉ