FixVibe
Covered by FixVibehigh

ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ (XSS) નબળાઈઓ શોધવી અને અટકાવવી

ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ (XSS) ત્યારે થાય છે જ્યારે એપ્લિકેશન યોગ્ય માન્યતા અથવા એન્કોડિંગ વિના વેબ પૃષ્ઠમાં અવિશ્વસનીય ડેટાનો સમાવેશ કરે છે. આ હુમલાખોરોને પીડિતના બ્રાઉઝરમાં દૂષિત સ્ક્રિપ્ટો ચલાવવાની મંજૂરી આપે છે, જે સત્ર હાઇજેક, અનધિકૃત ક્રિયાઓ અને સંવેદનશીલ ડેટા એક્સપોઝર તરફ દોરી જાય છે.

CWE-79

અસર

એક હુમલાખોર જે ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ (XSS) નબળાઈનો સફળતાપૂર્વક ઉપયોગ કરે છે તે પીડિત વપરાશકર્તા તરીકે માસ્કરેડ કરી શકે છે, વપરાશકર્તાને કરવા માટે અધિકૃત છે તે કોઈપણ ક્રિયા કરી શકે છે અને વપરાશકર્તાના કોઈપણ ડેટા [S1] ને ઍક્સેસ કરી શકે છે. આમાં એકાઉન્ટ્સને હાઇજેક કરવા માટે સત્ર કૂકીઝની ચોરી કરવી, નકલી ફોર્મ દ્વારા લૉગિન ઓળખપત્ર કેપ્ચર કરવું અથવા વર્ચ્યુઅલ ડિફેસમેન્ટ [S1][S2] સામેલ છે. જો પીડિત પાસે વહીવટી વિશેષાધિકારો હોય, તો હુમલાખોર એપ્લિકેશન અને તેના ડેટા [S1] પર સંપૂર્ણ નિયંત્રણ મેળવી શકે છે.

મૂળ કારણ

XSS ત્યારે થાય છે જ્યારે એપ્લિકેશન વપરાશકર્તા-નિયંત્રણ યોગ્ય ઇનપુટ મેળવે છે અને તેને યોગ્ય તટસ્થતા અથવા એન્કોડિંગ [S2] વગર વેબ પૃષ્ઠમાં સમાવે છે. આ ઇનપુટને પીડિતના બ્રાઉઝર દ્વારા સક્રિય સામગ્રી (જાવાસ્ક્રિપ્ટ) તરીકે અર્થઘટન કરવાની મંજૂરી આપે છે, જે વેબસાઇટ્સને એકબીજાથી અલગ કરવા માટે રચાયેલ સમાન મૂળ નીતિને અવરોધે છે.

નબળાઈના પ્રકારો

  • પ્રતિબિંબિત XSS: દુર્ભાવનાપૂર્ણ સ્ક્રિપ્ટો વેબ એપ્લિકેશનથી પીડિતના બ્રાઉઝર પર પ્રતિબિંબિત થાય છે, સામાન્ય રીતે URL પેરામીટર [S1] દ્વારા.
  • સંગ્રહિત XSS: સ્ક્રિપ્ટ સર્વર પર કાયમી રૂપે સંગ્રહિત થાય છે (દા.ત., ડેટાબેઝ અથવા ટિપ્પણી વિભાગમાં) અને પછીથી વપરાશકર્તાઓને [S1][S2] આપવામાં આવે છે.
  • DOM-આધારિત XSS: નબળાઈ સંપૂર્ણપણે ક્લાયંટ-સાઇડ કોડમાં અસ્તિત્વમાં છે જે અવિશ્વસનીય સ્રોતમાંથી ડેટાને અસુરક્ષિત રીતે પ્રોસેસ કરે છે, જેમ કે innerHTML [S1] પર લખવું.

કોંક્રિટ ફિક્સેસ

  • આઉટપુટ પર ડેટા એન્કોડ કરો: વપરાશકર્તા-નિયંત્રણ કરી શકાય તેવા ડેટાને રેન્ડર કરતા પહેલા તેને સુરક્ષિત સ્વરૂપમાં કન્વર્ટ કરો. HTML બોડી માટે HTML એન્ટિટી એન્કોડિંગનો ઉપયોગ કરો અને તે ચોક્કસ સંદર્ભો [S1][S2] માટે યોગ્ય JavaScript અથવા CSS એન્કોડિંગનો ઉપયોગ કરો.
  • આગમન પર ફિલ્ટર ઇનપુટ: અપેક્ષિત ઇનપુટ ફોર્મેટ માટે કડક અનુમતિ સૂચિઓ લાગુ કરો અને [S1][S2] ને અનુરૂપ ન હોય તેવી કોઈપણ વસ્તુને નકારી કાઢો.
  • સુરક્ષા હેડર્સનો ઉપયોગ કરો: JavaScript [S2] દ્વારા ઍક્સેસને રોકવા માટે સત્ર કૂકીઝ પર HttpOnly ફ્લેગ સેટ કરો. Content-Type અને X-Content-Type-Options: nosniff નો ઉપયોગ કરો તેની ખાતરી કરવા માટે કે બ્રાઉઝર્સ જવાબોને એક્ઝિક્યુટેબલ કોડ [S1] તરીકે ખોટો અર્થઘટન ન કરે.
  • સામગ્રી સુરક્ષા નીતિ (CSP): એક મજબૂત CSP નો ઉપયોગ કરો જે સ્ત્રોતોમાંથી સ્ક્રિપ્ટ્સ લોડ અને એક્ઝિક્યુટ કરી શકાય છે, જે ડિફેન્સ-ઇન-ડેપ્થ લેયર ZXCVFIXVIBETOKEN0ZXVXVIBETOKEN0ZXVXVICVX1VXVICVZKV12.

FixVibe તેના માટે કેવી રીતે પરીક્ષણ કરે છે

FixVibe સ્થાપિત સ્કેનિંગ પદ્ધતિઓ [S1] પર આધારિત બહુ-સ્તરીય અભિગમ દ્વારા XSS શોધી શકે છે:

  • નિષ્ક્રિય સ્કેન: Content-Security-Policy અથવા X-Content-Type-Options જેવા ગુમ થયેલ અથવા નબળા સુરક્ષા હેડરોને ઓળખવા કે જે XSS [S1] ને ઘટાડવા માટે રચાયેલ છે.
  • સક્રિય ચકાસણીઓ: યોગ્ય એન્કોડિંગ [S1] વગર પ્રતિભાવ બોડીમાં પ્રતિબિંબિત થાય છે કે કેમ તે નિર્ધારિત કરવા માટે URL પરિમાણો અને ફોર્મ ફીલ્ડ્સમાં અનન્ય, બિન-દૂષિત આલ્ફાન્યૂમેરિક સ્ટ્રિંગ્સને ઇન્જેક્ટ કરવી.
  • રેપો સ્કેન: "સિંક" માટે ક્લાયંટ-સાઇડ જાવાસ્ક્રિપ્ટનું વિશ્લેષણ કરવું જે અવિશ્વસનીય ડેટાને અસુરક્ષિત રીતે હેન્ડલ કરે છે, જેમ કે innerHTML, document.write, અથવા setTimeout, જેમાંથી સામાન્ય રીતે ડી-ડિકેટર્સ છે. XSS [S1].