FixVibe
Covered by FixVibecritical

SQL ਇੰਜੈਕਸ਼ਨ: ਅਣਅਧਿਕਾਰਤ ਡਾਟਾਬੇਸ ਪਹੁੰਚ ਨੂੰ ਰੋਕਣਾ

SQL ਇੰਜੈਕਸ਼ਨ (SQLi) ਇੱਕ ਨਾਜ਼ੁਕ ਕਮਜ਼ੋਰੀ ਹੈ ਜਿੱਥੇ ਹਮਲਾਵਰ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਡੇਟਾਬੇਸ ਸਵਾਲਾਂ ਵਿੱਚ ਦਖ਼ਲ ਦਿੰਦੇ ਹਨ। ਖਤਰਨਾਕ SQL ਸੰਟੈਕਸ ਇੰਜੈਕਟ ਕਰਕੇ, ਹਮਲਾਵਰ ਪ੍ਰਮਾਣਿਕਤਾ ਨੂੰ ਬਾਈਪਾਸ ਕਰ ਸਕਦੇ ਹਨ, ਪਾਸਵਰਡ ਅਤੇ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਵੇਰਵਿਆਂ ਵਰਗੇ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਨੂੰ ਦੇਖ ਸਕਦੇ ਹਨ, ਜਾਂ ਅੰਡਰਲਾਈੰਗ ਸਰਵਰ ਨਾਲ ਸਮਝੌਤਾ ਕਰ ਸਕਦੇ ਹਨ।

CWE-89

SQL ਇੰਜੈਕਸ਼ਨ ਦਾ ਪ੍ਰਭਾਵ

SQL ਇੰਜੈਕਸ਼ਨ (SQLi) ਇੱਕ ਹਮਲਾਵਰ ਨੂੰ ਉਹਨਾਂ ਸਵਾਲਾਂ ਵਿੱਚ ਦਖਲ ਦੇਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜੋ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਇਸਦੇ ਡੇਟਾਬੇਸ [S1] ਵਿੱਚ ਕਰਦੀ ਹੈ। ਪ੍ਰਾਇਮਰੀ ਪ੍ਰਭਾਵ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਜਿਵੇਂ ਕਿ ਉਪਭੋਗਤਾ ਪਾਸਵਰਡ, ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਵੇਰਵੇ, ਅਤੇ ਨਿੱਜੀ ਜਾਣਕਾਰੀ [S1] ਤੱਕ ਅਣਅਧਿਕਾਰਤ ਪਹੁੰਚ ਸ਼ਾਮਲ ਹੈ।

ਡਾਟਾ ਚੋਰੀ ਤੋਂ ਪਰੇ, ਹਮਲਾਵਰ ਅਕਸਰ ਡਾਟਾਬੇਸ ਰਿਕਾਰਡਾਂ ਨੂੰ ਸੋਧ ਜਾਂ ਮਿਟਾ ਸਕਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਐਪਲੀਕੇਸ਼ਨ ਵਿਵਹਾਰ ਵਿੱਚ ਲਗਾਤਾਰ ਤਬਦੀਲੀਆਂ ਜਾਂ ਡੇਟਾ ਦਾ ਨੁਕਸਾਨ [S1] ਹੋ ਸਕਦਾ ਹੈ। ਉੱਚ-ਤੀਬਰਤਾ ਵਾਲੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, SQLi ਨੂੰ ਬੈਕ-ਐਂਡ ਬੁਨਿਆਦੀ ਢਾਂਚੇ ਨਾਲ ਸਮਝੌਤਾ ਕਰਨ ਲਈ, ਸੇਵਾ ਤੋਂ ਇਨਕਾਰ ਕਰਨ ਵਾਲੇ ਹਮਲਿਆਂ ਨੂੰ ਸਮਰੱਥ ਕਰਨ, ਜਾਂ ਸੰਗਠਨ ਦੇ ਸਿਸਟਮਾਂ ਵਿੱਚ ਇੱਕ ਨਿਰੰਤਰ ਬੈਕਡੋਰ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਵਧਾਇਆ ਜਾ ਸਕਦਾ ਹੈ [S1]ZXCVFIXVIXVIZBIXTO

ਰੂਟ ਕਾਰਨ: ਅਸੁਰੱਖਿਅਤ ਇੰਪੁੱਟ ਹੈਂਡਲਿੰਗ

SQL ਇੰਜੈਕਸ਼ਨ ਦਾ ਮੂਲ ਕਾਰਨ ਇੱਕ SQL ਕਮਾਂਡ [S2] ਵਿੱਚ ਵਰਤੇ ਗਏ ਵਿਸ਼ੇਸ਼ ਤੱਤਾਂ ਦੀ ਗਲਤ ਨਿਰਪੱਖਤਾ ਹੈ। ਇਹ ਉਦੋਂ ਵਾਪਰਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਬਾਹਰੀ-ਪ੍ਰਭਾਵਿਤ ਇਨਪੁਟ ਨੂੰ ਸਿੱਧੇ ਪੁੱਛਗਿੱਛ ਸਤਰ [S1][S2] ਵਿੱਚ ਜੋੜ ਕੇ SQL ਸਵਾਲਾਂ ਦਾ ਨਿਰਮਾਣ ਕਰਦੀ ਹੈ।

ਕਿਉਂਕਿ ਇੰਪੁੱਟ ਨੂੰ ਪੁੱਛਗਿੱਛ ਢਾਂਚੇ ਤੋਂ ਸਹੀ ਢੰਗ ਨਾਲ ਅਲੱਗ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਡੇਟਾਬੇਸ ਦੁਭਾਸ਼ੀਏ ਉਪਭੋਗਤਾ ਇੰਪੁੱਟ ਦੇ ਹਿੱਸੇ ਨੂੰ SQL ਕੋਡ ਦੇ ਤੌਰ 'ਤੇ ਲਾਗੂ ਕਰ ਸਕਦਾ ਹੈ ਨਾ ਕਿ ਇਸਨੂੰ ਸ਼ਾਬਦਿਕ ਡੇਟਾ [S2] ਵਜੋਂ ਮੰਨਣ ਦੀ ਬਜਾਏ। ਇਹ ਕਮਜ਼ੋਰੀ ਇੱਕ ਪੁੱਛਗਿੱਛ ਦੇ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਵਿੱਚ ਪ੍ਰਗਟ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਵਿੱਚ SELECT ਸਟੇਟਮੈਂਟਾਂ, INSERT ਮੁੱਲ, ਜਾਂ UPDATE ਸਟੇਟਮੈਂਟਾਂ [S1] ਸ਼ਾਮਲ ਹਨ।

ਠੋਸ ਫਿਕਸ ਅਤੇ ਮਿਟੀਗੇਸ਼ਨ

ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਸਵਾਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ

SQL ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਰੋਕਣ ਦਾ ਸਭ ਤੋਂ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕਾ ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਸਵਾਲਾਂ ਦੀ ਵਰਤੋਂ ਹੈ, ਜਿਸ ਨੂੰ ਤਿਆਰ ਸਟੇਟਮੈਂਟਾਂ [S1] ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਜੋੜਨ ਦੀ ਬਜਾਏ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਢਾਂਚਾਗਤ ਵਿਧੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜੋ ਡੇਟਾ ਅਤੇ ਕੋਡ [S2] ਨੂੰ ਵੱਖ ਕਰਨ ਨੂੰ ਲਾਗੂ ਕਰਦੇ ਹਨ।

ਸਭ ਤੋਂ ਘੱਟ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਦਾ ਸਿਧਾਂਤ

ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਕਾਰਜਾਂ ਲਈ ਲੋੜੀਂਦੇ ਸਭ ਤੋਂ ਘੱਟ ਅਧਿਕਾਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਡੇਟਾਬੇਸ ਨਾਲ ਜੁੜਨਾ ਚਾਹੀਦਾ ਹੈ [S2]. ਇੱਕ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਖਾਤੇ ਵਿੱਚ ਪ੍ਰਸ਼ਾਸਕੀ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਨਹੀਂ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ ਅਤੇ ਇਸਦੇ ਫੰਕਸ਼ਨ [S2] ਲਈ ਲੋੜੀਂਦੇ ਖਾਸ ਟੇਬਲਾਂ ਜਾਂ ਓਪਰੇਸ਼ਨਾਂ ਤੱਕ ਸੀਮਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।

ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਏਨਕੋਡਿੰਗ

ਜਦੋਂ ਕਿ ਪੈਰਾਮੀਟਰਾਈਜ਼ੇਸ਼ਨ ਦਾ ਬਦਲ ਨਹੀਂ, ਇਨਪੁਟ ਪ੍ਰਮਾਣਿਕਤਾ ਸੁਰੱਖਿਆ-ਵਿੱਚ-ਡੂੰਘਾਈ [S2] ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ। ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਇੱਕ ਸਵੀਕਾਰ-ਜਾਣ-ਪਛਾਣੀ-ਚੰਗੀ ਰਣਨੀਤੀ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਦੇ ਹੋਏ ਕਿ ਇਨਪੁਟ ਅਨੁਮਾਨਿਤ ਕਿਸਮਾਂ, ਲੰਬਾਈਆਂ ਅਤੇ ਫਾਰਮੈਟਾਂ [S2] ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।

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

FixVibe ਪਹਿਲਾਂ ਹੀ ਗੇਟਡ active.sqli ਸਕੈਨਰ ਮੋਡੀਊਲ ਰਾਹੀਂ SQL ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ। ਕਿਰਿਆਸ਼ੀਲ ਸਕੈਨ ਸਿਰਫ਼ ਡੋਮੇਨ ਮਾਲਕੀ ਦੀ ਪੁਸ਼ਟੀ ਅਤੇ ਤਸਦੀਕ ਤੋਂ ਬਾਅਦ ਚੱਲਦੇ ਹਨ। ਚੈਕ ਪੁੱਛਗਿੱਛ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਨਾਲ ਸਮਾਨ-ਮੂਲ GET ਅੰਤਮ ਬਿੰਦੂਆਂ ਨੂੰ ਕ੍ਰੌਲ ਕਰਦਾ ਹੈ, ਇੱਕ ਬੇਸਲਾਈਨ ਜਵਾਬ ਸਥਾਪਤ ਕਰਦਾ ਹੈ, SQL-ਵਿਸ਼ੇਸ਼ ਬੁਲੀਅਨ ਅਸੰਗਤੀਆਂ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਈ ਦੇਰੀ ਲੰਬਾਈ ਵਿੱਚ ਸਮੇਂ ਦੀ ਪੁਸ਼ਟੀ ਤੋਂ ਬਾਅਦ ਸਿਰਫ ਇੱਕ ਖੋਜ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ। ਰਿਪੋਜ਼ਟਰੀ ਸਕੈਨ code.web-app-risk-checklist-backfill ਦੁਆਰਾ ਮੂਲ ਕਾਰਨ ਨੂੰ ਫੜਨ ਵਿੱਚ ਵੀ ਮਦਦ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਟੈਂਪਲੇਟ ਇੰਟਰਪੋਲੇਸ਼ਨ ਨਾਲ ਬਣਾਈਆਂ ਕੱਚੀਆਂ SQL ਕਾਲਾਂ ਨੂੰ ਫਲੈਗ ਕਰਦਾ ਹੈ।