SQL ഇൻജക്ഷൻ വൈകല്യങ്ങൾക്കായി പരിശോധിക്കുന്നു

ചലനാത്മക ഉള്ളടക്കം സൃഷ്ടിക്കുന്നതിന് ഡാറ്റാബേസ് ബാക്കെൻഡിൽ ആശ്രയിക്കുന്ന വെബ് അപ്ലിക്കേഷനുകളിലേക്ക് എസ്.ക്.ഇ.ഇഞ്ചർ ആക്രമണങ്ങൾ ഉയർത്തുന്നു. ഇത്തരം ആക്രമണങ്ങളിൽ, ഡേറ്റാബേസ് നൽകിയ ജിഎച്ച്സി സൈറ്റുകൾ സ്വന്തമാക്കുന്നതിന് ഹാക്കർമാർ ഒരു വെബ് ആപ്ലിക്കേഷൻ കൈകാര്യം ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഡാറ്റാബേസുകൾ സംബന്ധിച്ച SQL ഇഞ്ചക്ഷൻ ലേഖനം കാണുക. ഈ ലേഖനത്തിൽ, നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകൾ SQL ഇഞ്ചക്ഷൻ ആക്രമണത്തിന് വിധേയമാണോ എന്ന് നിർണയിക്കുന്നതിന് നിരവധി മാർഗ്ഗങ്ങൾ ഞങ്ങൾ പരിശോധിക്കുന്നു.

ഓട്ടോമേറ്റഡ് എസ്.ക്യു.എൽ.ഇഞ്ചക്ഷൻ സ്കാനിംഗ്

HP ന്റെ വെബ്ഇൻസ്പെപ്പ്, IBM ന്റെ AppScan അല്ലെങ്കിൽ Cenzic's Hailstorm പോലുള്ള ഒരു ഓട്ടോമേറ്റഡ് വെബ് ആപ്ലിക്കേഷൻ വെൽനറബിളിറ്റി സ്കാനറാണ് ഒരു സാധ്യത ഉപയോഗിക്കുന്നത്. എസ്എൽ ഇഞ്ചക്ഷൻ വൈകല്യങ്ങൾക്കായി നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകൾ വിശകലനം ചെയ്യുന്നതിനുള്ള എല്ലാ ലളിതവും യാന്ത്രികവുമായ മാർഗങ്ങളാണ് ഈ ടൂളുകൾ നൽകുന്നത്. എന്നിരുന്നാലും, അവർ തികച്ചും വിലകുറഞ്ഞവരാണ്, സീറ്റ് ഒന്നിന് $ 25,000 വരെ.

മാനുവൽ എസ്.ക്.

ഒരു മോശം ആപ്ലിക്കേഷൻ ഡെവലപ്പർ എന്താണ്? നിങ്ങൾക്ക് ഒരു വെബ് ബ്രൌസറിൽ നിന്ന് മറ്റൊന്നും ഉപയോഗിക്കാൻ കഴിയാത്ത SQL Injection Vulnerabilities നായുള്ള നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകളെ മൂല്യനിർണ്ണയം ചെയ്യുന്നതിന് ചില അടിസ്ഥാന പരിശോധനകൾ നിങ്ങൾക്ക് ശരിക്കും റൺ ചെയ്യാൻ കഴിയും. ഒന്നാമത്, ഒരു മുന്നറിയിപ്പ് വാക്ക്: അടിസ്ഥാന SQL എൽജക്ഷൻ കുറവുകൾ മാത്രം നോക്കുന്നതിനെ ഞാൻ മാത്രമേ വിവരിക്കുന്നുള്ളൂ. അവർ നൂതന സാങ്കേതിക വിദ്യകൾ കണ്ടെത്തുകയില്ല, അവ ഉപയോഗിക്കാൻ വളരെ ബുദ്ധിമുട്ടുള്ളവയാണ്. നിങ്ങൾക്ക് അത് സ്വന്തമാക്കാൻ കഴിയുമെങ്കിൽ ഒരു ഓട്ടോമേറ്റഡ് സ്കാനറുമൊത്ത് പോകുക. എന്നിരുന്നാലും, നിങ്ങൾക്ക് ആ വില ടാഗ് കൈകാര്യം ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിൽ, മാനുവൽ പരീക്ഷണം മികച്ച ആദ്യപടിയാണ്.

ഒരു പ്രയോഗം അപകടകരമാണോ എന്ന് പരിശോധിക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗം, ദോഷകരമായ കുത്തിവയ്ക്കൽ ആക്രമണങ്ങളുമായി പരീക്ഷിക്കുന്നതാണ്, അവ വിജയിച്ചാൽ നിങ്ങളുടെ ഡേറ്റാബേസിന് ദോഷകരമായിരിക്കില്ല, പക്ഷേ നിങ്ങൾക്ക് ഒരു പ്രശ്നം പരിഹരിക്കേണ്ടതുണ്ടെന്നതിനുള്ള തെളിവുകൾ നിങ്ങൾക്ക് നൽകും. ഉദാഹരണത്തിന്, ഒരു ഡാറ്റാബേസിൽ ഒരു വ്യക്തിയെ നോക്കുന്നതും ഒരു ഫലമായി ബന്ധപ്പെടാനുള്ള വിവരങ്ങളും നൽകുന്ന ഒരു ലളിതമായ വെബ് അപ്ലിക്കേഷൻ നിങ്ങൾക്കുണ്ടെന്നാണ് കരുതുക. ഈ പേജ് ഇനിപ്പറയുന്ന URL ഫോർമാറ്റ് ഉപയോഗിച്ചേക്കാം:

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

ഇനിപ്പറയുന്നതിനോട് സമാനമായി ഒരു ചോദ്യം ഉപയോഗിച്ച് ഈ പേജ് ഒരു ഡാറ്റാബേസ് ലുക്കപ്പ് നടത്തുന്നുവെന്ന് ഞങ്ങൾ അനുമാനിക്കാം:

ഡയറക്ടറിയിൽ നിന്നും ഫോൺ നമ്പർ തിരഞ്ഞെടുക്കുക WHERE അവസാന നാമം = 'ചാപ്ൾ', ആദ്യനാമം = 'മൈക്ക്'

നമുക്ക് അൽപം പരീക്ഷിക്കാം. മുകളിലുള്ള ഞങ്ങളുടെ അനുമാനം കൊണ്ട്, നമുക്ക് SQL ഇൻജക്ഷൻ ആക്രമണത്തിനായുള്ള പരിശോധനകൾ നടത്തുന്ന URL- ന് ഒരു ലളിതമായ മാറ്റം വരുത്താൻ കഴിയും:

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

SQL ആപ്ലിക്കേഷൻ ശരിയായി പരിരക്ഷിതമായിരുന്നെങ്കിൽ, എസ്.ക്യു.എൽ. സംവിധാനത്തിൽ ഇത് നടപ്പിലാക്കിയ എസ്.ക്യു.എൽ. സ്റ്റേറ്റ്മെന്റിൽ ഈ വ്യാജ പേരാണ് ഉപയോഗിക്കുന്നത്.

ഡയറക്ടറിയിൽ നിന്നും ഫോണ്ട് തിരഞ്ഞെടുക്കുക WHAT അവസാന നാമം <'chapple', firstname = 'mike' AND (വ്യാജത്തിൽ നിന്ന് എണ്ണം തിരഞ്ഞെടുക്കുക *)> 0 അല്ലെങ്കിൽ '1' = '1'

മുകളിൽ നൽകിയിരിക്കുന്ന സിന്റാക്സ് യഥാർത്ഥ URL ൽ കുറച്ചുകൂടി വ്യത്യസ്തമാണ്. ഉദാഹരണം പിന്തുടരുന്നതിന് എളുപ്പമാക്കുന്നതിന് അവരുടെ ASCII തുല്യതകൾക്ക് വേണ്ടി URL- എൻകോഡുചെയ്ത വേരിയബിനെ ഞാൻ പരിവർത്തനം ചെയ്തു. ഉദാഹരണത്തിന്,% 3d = '=' പ്രതീകത്തിനുള്ള URL- എൻകോഡിംഗ് ആണ്. ഞാൻ സമാനമായ ആവശ്യങ്ങൾക്കായി ചില ലൈൻ ബ്രേക്കുകൾ ചേർത്തു.

ഫലങ്ങൾ വിലയിരുത്തുക

മുകളിലുള്ള ലിസ്റ്റുചെയ്തിരിക്കുന്ന URL ഉള്ള വെബ്പേജുകൾ നിങ്ങൾ ലോഡുചെയ്യാൻ ശ്രമിക്കുമ്പോൾ ഈ പരിശോധന നടക്കും. വെബ് ആപ്ലിക്കേഷൻ നല്ല രീതിയിൽ പെരുമാറിയെങ്കിൽ, ഡാറ്റാബേസിൽ അന്വേഷണത്തിന് മുമ്പ് അത് ഇൻപുട്ടിൽ നിന്ന് ഒരൊറ്റ ഉദ്ധരണികൾ പുറത്തുവിടും. ഇത് എസ്എച്ച്എൽ ഒരു കൂട്ടം ഉൾക്കൊള്ളുന്ന ആദ്യ നാമമുള്ള ഒരാൾക്ക് വേണ്ടത് വിചിത്രമായ ഒരു ലുക്കപ്പിൽ കലാശിക്കും! ചുവടെയുള്ള അപ്ലിക്കേഷനിൽ നിന്നുള്ള ഒരു പിശക് സന്ദേശം നിങ്ങൾ കാണും:

പിശക്: മൈക്ക് + ഉം + ഉം (പേര് + കൗണ്ട് (*) + വ്യാജമായി തിരഞ്ഞെടുക്കുക +% 3e0 + അല്ലെങ്കിൽ + 1% 3d1 ചാപിപ്!

മറുവശത്ത്, ആപ്ലിക്കേഷൻ എസ്.ക്.ജെ. ഇൻജക്ഷനിന് വിധേയമാകാൻ സാധ്യതയുണ്ടെങ്കിൽ, അത് സ്റ്റേറ്റ്മെന്റിന് നേരിട്ട് ഡാറ്റാബേസിൽ സമർപ്പിക്കും, അങ്ങനെ രണ്ടു സാധ്യതകളിൽ ഒന്ന് ഫലമായി ഉണ്ടാകുകയും ചെയ്യും. ഒന്നാമതായി, നിങ്ങളുടെ സെർവറിൽ വിശദമായ പിശക് സന്ദേശങ്ങൾ ഉണ്ടെങ്കിൽ (അത് നിങ്ങൾക്ക് പാടില്ല!), നിങ്ങൾ ഇതുപോലുള്ള എന്തെങ്കിലും കാണും:

ODBC ഡ്രൈവറുകൾക്കായുള്ള മൈക്രോസോഫ്റ്റ് OLE DB ദാതാവ് '80040e37' [Microsoft] [ODBC SQL Server Driver] [SQL Server] അസാധുവായ വസ്തുവിന്റെ പേര് 'വ്യാജം'. / ഡയറക്ടറി.ഒപ്, വരി 13

മറുവശത്ത്, നിങ്ങളുടെ വെബ് സെർവർ വിശദമായ പിശക് സന്ദേശങ്ങൾ പ്രദർശിപ്പിക്കുന്നില്ലെങ്കിൽ, ഇനിപ്പറയുന്നത് പോലെയുള്ള കൂടുതൽ പിഴവ് നിങ്ങൾക്ക് ലഭിക്കും:

ആന്തരിക സെർവർ പിശക് സെർവർ ഒരു ആന്തരിക പിശക് അല്ലെങ്കിൽ തെറ്റായ കോൺഫിഗറേഷൻ നേരിട്ടു, നിങ്ങളുടെ അഭ്യർത്ഥന പൂർത്തിയാക്കാൻ കഴിഞ്ഞില്ല. പിശക് സംഭവിച്ച സമയത്തെക്കുറിച്ചും പിശകുകൾ ഉണ്ടാക്കിയേക്കാവുന്ന എന്തും നിങ്ങളെ അറിയിക്കാൻ സെർവർ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക. ഈ പിശക് സംബന്ധിച്ച കൂടുതൽ വിവരങ്ങൾ സെർവർ പിശക് രേഖയിൽ ലഭ്യമായേക്കാം.

മുകളിലുള്ള രണ്ട് തെറ്റുകൾ നിങ്ങൾക്ക് ലഭിക്കുകയാണെങ്കിൽ, നിങ്ങളുടെ ആപ്ലിക്കേഷൻ SQL ഇൻജക്ഷൻ ആക്രമണത്തിന് വിധേയമാണ്! SQL Injection ആക്രമണങ്ങൾക്കെതിരെ നിങ്ങളുടെ അപ്ലിക്കേഷനുകൾ പരിരക്ഷിക്കുന്നതിന് നിങ്ങൾക്ക് ചില നടപടികൾ എടുക്കാം: