አክስትሮፍ በ C #

ይህን በማድረጌ በእውነት አዝናለሁ ፣ ግን ይህ ችግር እኔ በሰራሁበት ጣቢያ ላይ ሊበዘብዝ የሚችል የደህንነትን ጉዳይ ስለሚወክል ይህንን በአዲስ መለያ እለጥፋለሁ ፡፡

የተጠቃሚ አስተያየቶችን የሚወስድ ስክሪፕት አለን (ሁሉም አስተያየቶች በእንግሊዝኛ ናቸው)። በሁለት ዓመታት ውስጥ በግምት 3,000,000 አስተያየቶችን ሰብስበናል ፡፡ ከተንኮል-አዘል ባህሪ ምልክቶች ሁሉ የአስተያየቶች ሰንጠረ checkን እያጣራሁ ነበር እናም በዚህ ጊዜ ለሐዋርያው ​​ቅኝት አደረግሁ ፡፡ ይህ በሁሉም ሁኔታዎች ወደ ኤችቲኤምኤል አካል ( ') መለወጥ ነበረበት ፣ ነገር ግን ገጸ ባህሪው የተረፈበትን 18 መዝገቦችን (ከ 3 ሚሊዮን ውስጥ) አገኘሁ ፡፡ በእውነቱ ጭንቅላቴን እየሰበረ ያለው ነገር ከእነዚህ 18 አስተያየቶች ውስጥ በአንዱ ውስጥ አንድ ሐዋርያ በእውነቱ በተሳካ ሁኔታ ተለውጧል - ሁለተኛው ደግሞ ተር survivedል ፡፡

ይህ ምናልባት የ XSS ተጋላጭነት እንዳለን ያመላክታል ፡፡

የእኔ ፅንሰ-ሀሳብ ምን እየተከናወነ ነው አንድ ተጠቃሚ ምዕራባዊ ያልሆነ ኮድ በሚጠቀም የኮምፒተር ሲስተም ላይ ገፁን መምታቱ እና የእነሱ አሳሹ የእኛን ገጽ utf-8 charset ዝርዝርን ችላ በማለት ፣ የእሱ / ሷ ግብዓት ወደ አገልጋዩ አካባቢያዊ ኮድ (ኮድ) አይቀየርም ፡፡ ዳታቤዙን እስኪመታ ድረስ (ስለዚህ C # ገጸ-ባህሪውን እንደ ሐዋርያው ​​ዕውቅና ስለሌለው መለወጥ አልቻለም ፣ ግን የመረጃ ቋቱ ወደ LATIN1 ሰንጠረዥ ለመፃፍ ሲሞክር ነው) ፡፡ ግን ያ አጠቃላይ ግምት ነው ፡፡

ይህን ከዚህ በፊት አጋጥሞት ወይም ምን እየተከናወነ እንዳለ የሚያውቅ ሰው አለ?

እና ከሁሉም በላይ ደግሞ ጽሑፌን እንዴት እንደምሞክር ማንም ያውቃል? ወደ መንቀሳቀስ ወደ HttpUtility ምናልባት ሁኔታውን ያስተካክላል ፣ ግን ይህ እንዴት እንደነበረ እስከማውቅ ድረስ ችግሩ እንደተስተካከለ ማወቅ አልችልም ፡፡ የእኛ የመፍትሔ ሥራዎች ለማወቅ ይህንን ለመፈተሽ መቻል ያስፈልገኛል ፡፡

አርትዕ

ዋው ፡፡ ቀድሞውኑ በ 20 ነጥቦች ላይ ፣ ስለሆነም ጥያቄዬን ማረም እችላለሁ ፡፡

በአንዱ አስተያየቴ ላይ ችግር የሚፈጥሩ የሚመስሉ በርካታ ቁምፊዎችን እንዳገኘሁ ጠቅሻለሁ ፡፡ እነሱ የሚከተሉትን ያካትታሉ: 0x2019, 0x02bc, 0x02bb, 0x02ee, 0x055a, 0xa78c. እነዚህ በእኛ ማጣሪያ ውስጥ በትክክል ያልፋሉ ፡፡ እንደ አለመታደል ሆኖ እነሱ በሁሉም የ HttpUtility ኢንኮዲንግ ዘዴዎች በኩል በትክክል ያልፋሉ ፡፡ ግን አንዴ ወደ የመረጃ ቋቱ ውስጥ ከገቡ በኋላ ወደ ትክክለኛ ሐዋርያዊነት ወይም ወደ “?” ይለወጣሉ ፡፡

በግምገማው ላይ ይመስለኛል ችግሩ እነዚህ ገጸ-ባህሪዎች በራሳቸው ላይ ስጋት ስለሌለባቸው HttpUtility እነሱን ለመለወጥ ምንም ምክንያት የለውም ፡፡ በጃቫ ስክሪፕት ውስጥ ምንም ጉዳት የላቸውም ፡፡ በኤችቲኤምኤል ውስጥ እነሱ የቁምፊ ውሂብ ብቻ ናቸው እና ምንም ጉዳት የላቸውም። እና በ ‹SQL› ክፍል ውስጥ ምንም ጉዳት የላቸውም (የመረጃ ቋቱ ተመሳሳይ ኮድ (ኮድ) የሚጋራ ከሆነ) ፡፡ ለእኛ ያለው ችግር እኛ በመረጃ ቋቱ ውስጥ የምንጠቀምበት ኮድ (ኮድ) የተለየ ስለሆነ በመረጃ ቋቱ ውስጥ የማስገባት ሂደት እነዚህን “የማይታተሙ” ቁምፊዎችን ወደ “የታወቁ አቻዎቻቸው” መለወጥን ያካትታል (በዚህ ሁኔታ “መጥፎ”) እና “ ያልታወቁ አቻዎች "(እንደ"? "ተብሎ የተተረጎመው)። ይህ ሙሉ በሙሉ ዕውር-ወደ ጎን ለጎን ወደ ኤች.ቲ.ቲ.ቲቲቲቲንግ ኢንኮዲንግ ተግባሮቻቸው የበለጠ ባለመገንባቴ በኤስኤምኤስ ትንሽ ቅር ተሰኝቻለሁ ፡፡ ግን ሌላ የተሻለ ሀሳብ ያለው ካለ እባክዎ ከዚህ በታች ይለጥፉ።

10
задан Anonymous 3 June 2011 в 10:27
поделиться