FixVibe
Covered by FixVibehigh

ਕਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ (XSS) ਕਮਜ਼ੋਰੀਆਂ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਅਤੇ ਰੋਕਥਾਮ ਕਰਨਾ

ਕ੍ਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ (XSS) ਉਦੋਂ ਵਾਪਰਦੀ ਹੈ ਜਦੋਂ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਸਹੀ ਪ੍ਰਮਾਣਿਕਤਾ ਜਾਂ ਏਨਕੋਡਿੰਗ ਦੇ ਬਿਨਾਂ ਇੱਕ ਵੈਬ ਪੇਜ ਵਿੱਚ ਗੈਰ-ਭਰੋਸੇਯੋਗ ਡੇਟਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ। ਇਹ ਹਮਲਾਵਰਾਂ ਨੂੰ ਪੀੜਤ ਦੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖਤਰਨਾਕ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸੈਸ਼ਨ ਹਾਈਜੈਕਿੰਗ, ਅਣਅਧਿਕਾਰਤ ਕਾਰਵਾਈਆਂ, ਅਤੇ ਸੰਵੇਦਨਸ਼ੀਲ ਡਾਟਾ ਐਕਸਪੋਜ਼ਰ ਹੁੰਦਾ ਹੈ।

CWE-79

ਪ੍ਰਭਾਵ

ਇੱਕ ਹਮਲਾਵਰ ਜੋ ਸਫਲਤਾਪੂਰਵਕ ਇੱਕ ਕਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ (XSS) ਕਮਜ਼ੋਰੀ ਦਾ ਸ਼ੋਸ਼ਣ ਕਰਦਾ ਹੈ, ਇੱਕ ਪੀੜਤ ਉਪਭੋਗਤਾ ਦੇ ਰੂਪ ਵਿੱਚ ਭੇਸ ਪਾ ਸਕਦਾ ਹੈ, ਉਪਭੋਗਤਾ ਨੂੰ ਕਰਨ ਲਈ ਅਧਿਕਾਰਤ ਕੋਈ ਵੀ ਕਾਰਵਾਈ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਉਪਭੋਗਤਾ ਦੇ ਕਿਸੇ ਵੀ ਡੇਟਾ [S1] ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਖਾਤਿਆਂ ਨੂੰ ਹਾਈਜੈਕ ਕਰਨ ਲਈ ਸੈਸ਼ਨ ਕੂਕੀਜ਼ ਨੂੰ ਚੋਰੀ ਕਰਨਾ, ਜਾਅਲੀ ਫਾਰਮਾਂ ਰਾਹੀਂ ਲੌਗਇਨ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰਨਾ, ਜਾਂ ਵਰਚੁਅਲ ਡੈਫੇਸਮੈਂਟ [S1][S2] ਸ਼ਾਮਲ ਹੈ। ਜੇਕਰ ਪੀੜਤ ਦੇ ਕੋਲ ਪ੍ਰਬੰਧਕੀ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਹਨ, ਤਾਂ ਹਮਲਾਵਰ ਐਪਲੀਕੇਸ਼ਨ ਅਤੇ ਇਸਦੇ ਡੇਟਾ [S1] 'ਤੇ ਪੂਰਾ ਨਿਯੰਤਰਣ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦਾ ਹੈ।

ਮੂਲ ਕਾਰਨ

XSS ਉਦੋਂ ਵਾਪਰਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਉਪਭੋਗਤਾ-ਨਿਯੰਤਰਿਤ ਇਨਪੁਟ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ ਅਤੇ ਇਸਨੂੰ ਬਿਨਾਂ ਸਹੀ ਨਿਰਪੱਖਤਾ ਜਾਂ ਐਨਕੋਡਿੰਗ [S2] ਦੇ ਇੱਕ ਵੈਬ ਪੇਜ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਦੀ ਹੈ। ਇਹ ਇਨਪੁਟ ਨੂੰ ਪੀੜਤ ਦੇ ਬ੍ਰਾਊਜ਼ਰ ਦੁਆਰਾ ਸਰਗਰਮ ਸਮੱਗਰੀ (ਜਾਵਾ ਸਕ੍ਰਿਪਟ) ਦੇ ਰੂਪ ਵਿੱਚ ਵਿਆਖਿਆ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਇੱਕ ਦੂਜੇ ਤੋਂ ਵੈਬਸਾਈਟਾਂ ਨੂੰ ਅਲੱਗ ਕਰਨ ਲਈ ਬਣਾਈ ਗਈ ਸਮਾਨ ਮੂਲ ਨੀਤੀ ਨੂੰ ਰੋਕਦਾ ਹੈ [S1][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 ਤੈਨਾਤ ਕਰੋ ਜਿੱਥੋਂ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ, ਇੱਕ ਰੱਖਿਆ-ਵਿੱਚ-ਡੂੰਘਾਈ ਵਾਲੀ ਪਰਤ ZXCVFIXVIBETOKEN0ZXVXVIBETOKEN0ZXVIBETOKEN3ZXCV।

FixVibe ਇਸਦੇ ਲਈ ਕਿਵੇਂ ਟੈਸਟ ਕਰਦਾ ਹੈ

FixVibe ਸਥਾਪਤ ਸਕੈਨਿੰਗ ਵਿਧੀਆਂ [S1] ਦੇ ਅਧਾਰ ਤੇ ਬਹੁ-ਪੱਧਰੀ ਪਹੁੰਚ ਦੁਆਰਾ XSS ਦਾ ਪਤਾ ਲਗਾ ਸਕਦਾ ਹੈ:

  • ਪੈਸਿਵ ਸਕੈਨ: Content-Security-Policy ਜਾਂ X-Content-Type-Options ਵਰਗੇ ਗੁੰਮ ਜਾਂ ਕਮਜ਼ੋਰ ਸੁਰੱਖਿਆ ਸਿਰਲੇਖਾਂ ਦੀ ਪਛਾਣ ਕਰਨਾ ਜੋ XSS [S1] ਨੂੰ ਘਟਾਉਣ ਲਈ ਤਿਆਰ ਕੀਤੇ ਗਏ ਹਨ।
  • ਐਕਟਿਵ ਪ੍ਰੋਬਜ਼: URL ਪੈਰਾਮੀਟਰਾਂ ਅਤੇ ਫਾਰਮ ਖੇਤਰਾਂ ਵਿੱਚ ਵਿਲੱਖਣ, ਗੈਰ-ਨੁਕਸਾਨ ਵਾਲੇ ਅਲਫਾਨਿਊਮੇਰਿਕ ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨਾ ਅਤੇ ਇਹ ਪਤਾ ਲਗਾਉਣ ਲਈ ਕਿ ਕੀ ਉਹ [S1] ਸਹੀ ਐਨਕੋਡਿੰਗ ਦੇ ਬਿਨਾਂ ਜਵਾਬ ਦੇ ਭਾਗ ਵਿੱਚ ਪ੍ਰਤੀਬਿੰਬਿਤ ਹਨ।
  • ਰੇਪੋ ਸਕੈਨ: "ਸਿੰਕਸ" ਲਈ ਕਲਾਇੰਟ-ਸਾਈਡ JavaScript ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨਾ ਜੋ ਗੈਰ-ਭਰੋਸੇਯੋਗ ਡੇਟਾ ਨੂੰ ਅਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਹੈਂਡਲ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ innerHTML, document.write, ਜਾਂ setTimeout ਵਿੱਚ ਆਮ ਹਨ, XSS [S1].