SQL ਇੰਜੈਕਸ਼ਨ ਕਮਿਊਨੀਕੇਬਲਜ਼ ਲਈ ਟੈਸਟਿੰਗ

SQL ਇੰਜੈਕਸ਼ਨ ਹਮਲੇ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਬਹੁਤ ਜੋਖਮ ਰੱਖਦੇ ਹਨ ਜੋ ਡਾਇਨਾਮਿਕ ਸਮੱਗਰੀ ਤਿਆਰ ਕਰਨ ਲਈ ਡਾਟਾਬੇਸ ਬੈਕਐਂਡ ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ. ਇਸ ਕਿਸਮ ਦੇ ਹਮਲੇ ਵਿਚ, ਹੈਕਰ ਡਾਟਾਬੇਸ ਦੁਆਰਾ ਜਾਰੀ ਕੀਤੇ ਗਏ ਆਪਣੇ SQL ਆਦੇਸ਼ਾਂ ਨੂੰ ਟੀਕਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋਏ ਇੱਕ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਇਸਤੇਮਾਲ ਕਰਦੇ ਹਨ. ਇੱਕ ਉਦਾਹਰਨ ਲਈ, ਡੇਟਾਬੇਸ ਉੱਤੇ ਲੇਖ SQL ਇੰਜੈਕਸ਼ਨ ਹਮਲਿਆਂ ਨੂੰ ਵੇਖੋ. ਇਸ ਲੇਖ ਵਿਚ, ਅਸੀਂ ਕਈ ਤਰੀਕਿਆਂ ਵੱਲ ਇਕ ਨਜ਼ਰ ਮਾਰਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਆਪਣੇ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਇਹ ਤੈਅ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਉਹ ਐਸਕਿਊੂਐਲ ਇੰਜੈਕਸ਼ਨ ਹਮਲਿਆਂ ਲਈ ਕਮਜ਼ੋਰ ਹਨ ਜਾਂ ਨਹੀਂ.

ਆਟੋਮੇਟਿਡ ਐਸਕਿਊਲ ਇੰਜੈਕਸ਼ਨ ਸਕੈਨਿੰਗ

ਇਕ ਸੰਭਾਵਨਾ ਆਟੋਮੇਟਿਡ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਨਿਰਬਲਤਾ ਸਕੈਨਰ ਵਰਤ ਰਹੀ ਹੈ, ਜਿਵੇਂ ਕਿ HP ਦੀ ਵੈਬ ਇੰਨਸਪੇਸਟਰ, ਆਈਬੀਐਸ ਦੇ ਐਪਸੈਨ ਜਾਂ ਸੇਨਜਿਕ ਦੇ ਗੜੇ ਦੇ ਤੂਫਾਨ. ਇਹ ਸਾਧਨ ਤੁਹਾਡੀਆਂ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦਾ ਸੰਭਾਵੀ ਐਸਕੈਲ ਇੰਜੈਕਸ਼ਨ ਕਮਜੋਰਿਟੀਜ਼ ਲਈ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਦੇ ਆਸਾਨ, ਆਟੋਮੈਟਿਕ ਤਰੀਕੇ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ. ਹਾਲਾਂਕਿ, ਉਹ ਕਾਫ਼ੀ ਮਹਿੰਗੇ ਹੁੰਦੇ ਹਨ, ਪ੍ਰਤੀ ਸੀਟ $ 25,000 ਤਕ ਦੌੜਦੇ ਹਨ.

ਦਸਤੀ SQL ਇੰਜੈਕਸ਼ਨ ਟੈਸਟ

ਐਪਲੀਕੇਸ਼ਨ ਡਿਵੈਲਪਰ ਕੀ ਕਰਨਾ ਹੈ? ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਕੁਝ ਬੁਨਿਆਦੀ ਟੈਸਟਾਂ ਨੂੰ ਚਲਾ ਸਕਦੇ ਹੋ ਤਾਂ ਕਿ ਵੈਬ ਬ੍ਰਾਊਜ਼ਰ ਤੋਂ ਵੱਧ ਕੁਝ ਵੀ ਨਹੀਂ ਵਰਤ ਕੇ ਐਸਕਿਊਅਲ ਇੰਜੈਕਸ਼ਨ ਕਮਜੋਰੀਆਂ ਲਈ ਤੁਹਾਡੇ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰ ਸਕੋ. ਪਹਿਲੀ, ਸਾਵਧਾਨੀ ਦੇ ਇੱਕ ਸ਼ਬਦ: ਮੇਰੇ ਦੁਆਰਾ ਦੱਸੇ ਗਏ ਟੈਸਟਾਂ ਵਿੱਚ ਕੇਵਲ ਬੁਨਿਆਦੀ SQL ਇੰਜੈਕਸ਼ਨ ਫੋਲਾਂ ਦੀ ਭਾਲ ਹੈ. ਉਹ ਅਡਵਾਂਸਡ ਤਕਨੀਕਾਂ ਦੀ ਖੋਜ ਨਹੀਂ ਕਰਨਗੇ ਅਤੇ ਵਰਤੋਂ ਕਰਨ ਲਈ ਕੁਝ ਕੁ ਕਠੋਰ ਹੋਣਗੇ. ਜੇ ਤੁਸੀਂ ਇਸਦਾ ਖਰਚਾ ਕਰ ਸਕਦੇ ਹੋ, ਤਾਂ ਇੱਕ ਸਵੈਚਾਲਤ ਸਕੈਨਰ ਦੇ ਨਾਲ ਜਾਓ. ਹਾਲਾਂਕਿ, ਜੇਕਰ ਤੁਸੀਂ ਉਹ ਕੀਮਤ ਟੈਗ ਨਹੀਂ ਲੈ ਸਕਦੇ ਹੋ, ਤਾਂ ਮੈਨੂਅਲ ਟੈਸਟਿੰਗ ਇਕ ਬਹੁਤ ਵਧੀਆ ਕਦਮ ਹੈ.

ਇਹ ਪਤਾ ਲਗਾਉਣ ਦਾ ਸਭ ਤੋਂ ਸੌਖਾ ਤਰੀਕਾ ਹੈ ਕਿ ਕੋਈ ਕਾਰਜ ਕਮਜ਼ੋਰ ਹੈ, ਉਹ ਨਿਰੋਧਕ ਟੀਕੇ ਦੇ ਹਮਲੇ ਨਾਲ ਪ੍ਰਯੋਗ ਕਰਨਾ ਹੈ ਜੋ ਅਸਲ ਵਿੱਚ ਤੁਹਾਡੇ ਡੇਟਾਬੇਸ ਨੂੰ ਨੁਕਸਾਨ ਨਹੀਂ ਪਹੁੰਚਾਏਗਾ ਜੇਕਰ ਉਹ ਸਫਲ ਹੋਣਗੇ ਪਰ ਤੁਹਾਨੂੰ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਮੁਹੱਈਆ ਕਰੇਗਾ ਕਿ ਤੁਹਾਨੂੰ ਸਮੱਸਿਆ ਨੂੰ ਠੀਕ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ. ਉਦਾਹਰਨ ਲਈ, ਮੰਨ ਲਓ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਸਧਾਰਨ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਹੈ ਜੋ ਇੱਕ ਡਾਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਵਿਅਕਤੀ ਨੂੰ ਵੇਖਦਾ ਹੈ ਅਤੇ ਨਤੀਜਾ ਵਜੋਂ ਸੰਪਰਕ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਉਹ ਸਫ਼ਾ ਹੇਠਾਂ ਦਿੱਤੇ URL ਫੌਰਮੈਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike

ਸਾਨੂੰ ਇਹ ਮੰਨ ਲੈਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਇਹ ਪੇਜ਼ ਇੱਕ ਡੈਟਾਬੇਸ ਲੁੱਕਪ ਕਰ ਰਿਹਾ ਹੈ, ਜੋ ਕਿ ਹੇਠ ਦਿੱਤੇ ਵਰਗਾ ਕੋਈ ਪੁੱਛਗਿੱਛ ਵਰਤ ਰਿਹਾ ਹੈ :

ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਫ਼ੋਨ ਚੁਣੋ, ਜਿੱਥੇ lastname = 'chapple' ਅਤੇ firstname = 'mike'

ਆਉ ਇਸ ਨਾਲ ਥੋੜ੍ਹਾ ਜਿਹਾ ਪ੍ਰਯੋਗ ਕਰੀਏ ਉਪਰੋਕਤ ਸਾਡੀ ਧਾਰਨਾ ਦੇ ਨਾਲ, ਅਸੀਂ ਯੂਆਰਐਸ ਵਿੱਚ ਇਕ ਸਧਾਰਨ ਬਦਲਾਅ ਕਰ ਸਕਦੇ ਹਾਂ ਜੋ SQL ਇਨਜੈਕਸ਼ਨ ਹਮਲਿਆਂ ਲਈ ਟੈਸਟ ਕਰਦਾ ਹੈ:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+and+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1

ਜੇਕਰ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ SQL ਇੰਜੈਕਸ਼ਨ ਤੋਂ ਸਹੀ ਢੰਗ ਨਾਲ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਇਹ ਬਸ ਇਸ ਨਕਲੀ ਪਹਿਲੇ ਨਾਮ ਨੂੰ SQL ਕਥਨ ਵਿੱਚ ਪਲੱਗਦਾ ਹੈ ਜੋ ਡਾਟਾਬੇਸ ਦੇ ਵਿਰੁੱਧ ਚਲਾਉਂਦਾ ਹੈ, ਜਿਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ:

ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਫ਼ੋਨ ਚੁਣੋ, ਜਿੱਥੇ lastname = 'chapple' ਅਤੇ firstname = 'mike' ਅਤੇ (ਜਾਅਲੀ ਤੋਂ ਗਿਣਤੀ (*) ਦੀ ਚੋਣ ਕਰੋ)> 0 ਜਾਂ '1' = '1'

ਤੁਸੀਂ ਵੇਖੋਗੇ ਕਿ ਉਪਰੋਕਤ ਸਿੰਟੈਕਸ ਅਸਲੀ URL ਤੋਂ ਕੁਝ ਵੱਖਰਾ ਹੈ ਮੈਂ ਆਪਣੇ ਏਐਸਸੀਆਈ ਸਮਾਨ ਵਿਚ ਯੂਆਰਐਲ-ਏਨਕੋਡ ਕੀਤੀ ਵੇਰੀਏਬਲ ਨੂੰ ਬਦਲਣ ਦੀ ਅਜ਼ਾਦੀ ਲੈ ਲਿਆ ਹੈ ਤਾਂ ਕਿ ਉਦਾਹਰਣ ਦਾ ਪਾਲਣ ਕਰਨਾ ਆਸਾਨ ਹੋ ਸਕੇ. ਉਦਾਹਰਣ ਵਜੋਂ,% 3d '=' ਅੱਖਰ ਲਈ URL- ਇੰਕੋਡਿੰਗ ਹੈ. ਮੈਂ ਵੀ ਇਸੇ ਉਦੇਸ਼ਾਂ ਲਈ ਕੁਝ ਲਾਈਨ ਬਰੇਕ ਜੋੜਿਆ.

ਨਤੀਜਿਆਂ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨਾ

ਇਹ ਟੈਸਟ ਉਦੋਂ ਆਉਂਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਉਪਰੋਕਤ ਦਿੱਤੇ ਗਏ URL ਨਾਲ ਵੈਬਪੰਨਾ ਨੂੰ ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ ਜੇਕਰ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਚੰਗੀ ਤਰਾਂ ਨਾਲ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਡਾਟਾਬੇਸ ਨੂੰ ਪੁੱਛਗਿੱਛ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਨਪੁਟ ਤੋਂ ਇੱਕਲੇ ਕੋਟਸ ਨੂੰ ਛਾਪੇਗਾ. ਇਸ ਨਾਲ ਸਿੱਧੇ ਤੌਰ ਤੇ ਕਿਸੇ ਅਜਿਹੇ ਪਹਿਲੇ ਨਾਮ ਦੇ ਲਈ ਇੱਕ ਅਜੀਬ ਖੋਜ ਹੋ ਜਾਵੇਗੀ ਜਿਸ ਵਿੱਚ SQL ਦਾ ਕੋਈ ਸਮੂਹ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ! ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਇਕੋ ਜਿਹੇ ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ ਇੱਕ ਤਰੁੱਟੀ ਸੁਨੇਹਾ ਵੇਖੋਗੇ:

ਗਲਤੀ: ਨਾਂ ਮਾਈਕ + ਅਤੇ + (+ + + ਜਾਅਲੀ + + + + + + + + + + + + + + 3e0 + ਜਾਂ + 1% 3d1 ਚੈਪਲੇ ਦੇ ਨਾਲ ਨਹੀਂ ਮਿਲਿਆ).

ਦੂਜੇ ਪਾਸੇ, ਜੇਕਰ ਐਪਲੀਕੇਸ਼ਨ SQL ਇੰਜੈਕਸ਼ਨ ਦੀ ਕਮਜ਼ੋਰ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਇਹ ਸਟੇਟਮੈਂਟ ਸਿੱਧੇ ਡਾਟਾਬੇਸ ਨੂੰ ਪਾਸ ਕਰੇਗੀ, ਜਿਸ ਦੇ ਸਿੱਟੇ ਵਜੋਂ ਦੋ ਸੰਭਾਵਨਾਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੋਵੇਗੀ. ਪਹਿਲਾਂ, ਜੇ ਤੁਹਾਡੇ ਸਰਵਰ ਕੋਲ ਅਸ਼ੁੱਧੀ ਯੋਗਤਾ ਦੇ ਸੁਨੇਹੇ ਯੋਗ ਹਨ (ਜੋ ਤੁਹਾਨੂੰ ਨਹੀਂ ਕਰਨੇ ਚਾਹੀਦੇ!), ਤਾਂ ਤੁਸੀਂ ਇਸ ਤਰਾਂ ਦਾ ਕੁਝ ਵੇਖੋਗੇ:

ODBC ਡਰਾਈਵਰ ਗਲਤੀ ਲਈ ਮਾਈਕਰੋਸੌਫਟ ਓਐਲਏ ਡੀ ਬੀ ਪ੍ਰਦਾਤਾ '80040e37' [ਮਾਈਕ੍ਰੋਸੌਫਟ] [ਓਡੀਬੀਸੀ SQL ਸਰਵਰ ਡਰਾਈਵਰ] [SQL ਸਰਵਰ] ਗਲਤ ਆਬਜੈਕਟ ਨਾਂ 'ਫਰਜ਼ੀ'. /directory.asp, ਲਾਈਨ 13

ਦੂਜੇ ਪਾਸੇ, ਜੇ ਤੁਹਾਡਾ ਵੈਬ ਸਰਵਰ ਵਿਸਥਾਰਪੂਰਵਕ ਗਲਤੀ ਸੁਨੇਹੇ ਨਹੀਂ ਦਿਖਾਉਂਦਾ, ਤਾਂ ਤੁਹਾਨੂੰ ਵਧੇਰੇ ਆਮ ਗਲਤੀ ਮਿਲੇਗੀ, ਜਿਵੇਂ ਕਿ:

ਅੰਦਰੂਨੀ ਸਰਵਰ ਗਲਤੀ ਸਰਵਰ ਨੂੰ ਇੱਕ ਅੰਦਰੂਨੀ ਤਰੁੱਟੀ ਜਾਂ ਮਿਸਕੰਪਿਗਰੇਸ਼ਨ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ ਸੀ ਅਤੇ ਤੁਹਾਡੀ ਬੇਨਤੀ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ ਸੀ. ਕਿਰਪਾ ਕਰਕੇ ਸਰਵਰ ਪ੍ਰਬੰਧਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ, ਜਿਸ ਸਮੇਂ ਗਲਤੀ ਆਈ ਹੈ ਅਤੇ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਜੋ ਵੀ ਹੋ ਤੁਸੀਂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਗਲਤੀ ਹੋ ਸਕਦੀ ਹੈ ਇਸ ਤਰੁੱਟੀ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਸਰਵਰ ਗਲਤੀ ਲਾਗ ਵਿੱਚ ਉਪਲਬਧ ਹੋ ਸਕਦੀ ਹੈ.

ਜੇ ਤੁਸੀਂ ਉਪਰ ਦੋ ਗਲਤੀਆਂ ਵਿੱਚੋਂ ਕੋਈ ਇੱਕ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਐਕਸੀਕਿਊਟ ਇੰਜੈਕਸ਼ਨ ਦੇ ਹਮਲੇ ਲਈ ਕਮਜ਼ੋਰ ਹੁੰਦੀ ਹੈ! ਐਸਐਚਐਲ ਇੰਜੈਕਸ਼ਨਾਂ ਦੇ ਹਮਲਿਆਂ ਦੇ ਵਿਰੁੱਧ ਤੁਹਾਡੇ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਰੱਖਿਆ ਕਰਨ ਲਈ ਤੁਸੀਂ ਕੁਝ ਕਦਮ ਚੁੱਕ ਸਕਦੇ ਹੋ: