Skip to main content

SQL Injection Vulnerabilities க்கான சோதனை

Anonim

SQL Injection தாக்குதல்கள் மாறும் உள்ளடக்கத்தை உருவாக்க ஒரு தரவுத்தள பின்தளத்தில் சார்ந்து வலை பயன்பாடுகளுக்கு மிகப்பெரிய அபாயங்களை அளிக்கின்றன. இந்த வகை தாக்குதல், ஹேக்கர்கள் தரவுத்தளத்தால் வெளியிடப்பட்ட தங்கள் சொந்த SQL கட்டளைகளை ஒரு முயற்சியில் ஒரு வலை பயன்பாட்டை கையாள வேண்டும். உதாரணமாக, தரவுத்தளங்களின் மீது SQL Injection Attacks கட்டுரை பார்க்கவும். இந்த கட்டுரையில், உங்கள் வலை பயன்பாடுகளை SQL Injection Attacks பாதிக்கப்படுகிறதா என்பதை தீர்மானிக்க பல வழிகளில் பாருங்கள்.

தானியங்கி SQL ஊசி ஸ்கேனிங்

ஒரு சாத்தியமான ஒரு வலைத்தள பயன்பாட்டு பாதிப்பு ஸ்கேனர் ஐப் பயன்படுத்துகிறது, ஹெச்பி இன் வலை இன்ஸ்பெக்ட், ஐபிஎம் இன் ஆப்ஸ்கான் அல்லது சென்சிக் இன் ஹெய்டெஸ்ட்ம் போன்றவை. இந்த கருவிகளில் அனைத்து சாத்தியமான SQL ஊசி பாதிப்புகளுக்கு உங்கள் வலை பயன்பாடுகள் பகுப்பாய்வு எளிதாக, தானியங்கு வழிகளில் வழங்குகின்றன. இருப்பினும், அவர்கள் மிகவும் விலையுயர்ந்தவர்கள், சீட்டுக்கு $ 25,000 வரை இயங்கும்.

கையேடு SQL ஊசி சோதனைகள்

செய்ய ஏழை பயன்பாடு டெவலப்பர் என்ன? நீங்கள் ஒரு வலை உலாவலைக் காட்டிலும் SQL Injection Vulnerabilities ஐப் பயன்படுத்தி உங்கள் வலை பயன்பாடுகளை மதிப்பீடு செய்ய சில அடிப்படை சோதனைகளை உண்மையில் இயங்க முடியும். முதலாவதாக, ஒரு எச்சரிக்கை எச்சரிக்கை: அடிப்படை SQL எஜெக்டிக் குறைபாடுகளை மட்டுமே நாம் காண்கின்ற சோதனைகள். அவர்கள் மேம்பட்ட நுட்பங்களை கண்டுபிடிப்பதில்லை மற்றும் பயன்படுத்த சற்று கடினமாக இருக்கும். நீங்கள் அதை வாங்க முடிந்தால், தானியங்கி ஸ்கேனர் மூலம் செல்லுங்கள். எனினும், நீங்கள் அந்த விலை டேக் கையாள முடியாது என்றால், கையேடு சோதனை ஒரு பெரிய முதல் படியாகும்.ஒரு பயன்பாடு பாதிக்கப்படக்கூடியதா என்பதை மதிப்பீடு செய்ய எளிய வழி, தீங்கு விளைவிக்கும் உட்செலுத்துதல் தாக்குதல்களுடன் பரிசோதனை செய்வது, அவை வெற்றிகரமாக உங்கள் தரவுத்தளத்தை பாதிக்காது, ஆனால் நீங்கள் ஒரு சிக்கலை சரிசெய்ய வேண்டும் என்பதற்கான ஆதாரங்களை உங்களுக்கு வழங்கும். உதாரணமாக, ஒரு தரவுத்தளத்தில் ஒரு நபரைப் பார்ப்பதுடன் அதன் விளைவாக தொடர்புத் தகவலை வழங்குவதற்கும் ஒரு எளிய வலை பயன்பாட்டினை நீங்கள் வைத்திருப்பதாக வைத்துக்கொள்வோம். பின்வரும் பக்கத்தை பின்வரும் பக்க வடிவத்தில் பயன்படுத்தலாம்:

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 இன்ஜின்களுக்கு எதிராக பாதுகாக்கப்படவில்லை என்றால், அது வெறுமனே தரவுத்தளத்திற்கு எதிராக செயல்படும் SQL அறிக்கையில் இந்த போலி முதல் பெயரை செருகுவதால், இதன் விளைவாக:

தொலைபேசியைத் தேர்ந்தெடு

அடைவில் இருந்து

WHERE கடைசி பெயர் = 'சாப்பல்' மற்றும் முதல் பெயர் = 'மைக்'

மற்றும் (போலி எண்ணிலிருந்து (*) தேர்வு செய்யவும்)> 0

அல்லது '1' = '1'

மேலே கண்டறிதல் அசல் URL இல் உள்ளதை விட கொஞ்சம் வித்தியாசமானது என்பதை நீங்கள் கவனிக்கலாம். URL ஐ குறியிடப்பட்ட மாறிமுறையை தங்கள் ASCII ஒப்பீட்டளவிற்கு மாற்றியமைப்பதை எளிதாக்குவதற்கு நாங்கள் சுதந்திரத்தை எடுத்தோம். எடுத்துக்காட்டாக,% 3d ஆனது '=' பாத்திரத்திற்கான URL- குறியீட்டு முறை ஆகும். இதே போன்ற காரணங்களுக்காக சில வரி இடைவெளிகளை நாங்கள் சேர்த்துள்ளோம்.

முடிவுகளை மதிப்பீடு செய்தல்

மேலே பட்டியலிடப்பட்டுள்ள URL உடன் வலைப்பக்கத்தை ஏற்ற முயற்சிக்கும் போது சோதனை நிகழ்கிறது. இணைய பயன்பாடு நன்கு செயல்பட்டால், தரவுத்தளத்தில் கேள்விக்கு முன்னர் உள்ளீடுகளிலிருந்து ஒற்றை மேற்கோள்களை அகற்றிவிடும். இது வெறுமனே SQL ஒரு கொத்து அடங்கும் ஒரு முதல் பெயர் யாரோ ஒரு வித்தியாசமான பார்வை ஏற்படுத்தும். கீழே உள்ளதைப் போன்ற பயன்பாட்டிலிருந்து ஒரு பிழை செய்தியை நீங்கள் காண்பீர்கள்:

பிழை: பயனர் பெயர் மைக் + மற்றும் + உடன் காணவில்லை (தேர்வு + + (போலி + இலிருந்து +) +% 3e0 + அல்லது + 1% 3d1

சேப்பலால்!

மறுபுறம், பயன்பாடு SQL ஊசி பாதிக்கப்படாவிட்டால், அது தகவல் நேரடியாக தரவுத்தளத்தில் அனுப்பப்படும், இதன் விளைவாக இரண்டு சாத்தியக்கூறுகளில் ஒன்று. முதலாவதாக, உங்கள் சேவையகம் விரிவான பிழை செய்திகளை இயலுமைப்படுத்தியிருந்தால் (இது நீங்கள் செய்யக்கூடாது), நீங்கள் இதைப் போன்ற ஏதாவது ஒன்றை பார்ப்பீர்கள்:

ODBC இயக்கிகள் பிழை '80040e37' க்கான மைக்ரோசாப்ட் OLE DB வழங்குநர்

மைக்ரோசாப்ட் ODBC SQL சர்வர் டிரைவர் SQL Server தவறான பொருள் பெயர் 'போலி'.

/ directory.asp, வரி 13

மறுபுறம், உங்கள் வலை சேவையகம் விரிவான பிழை செய்திகளைக் காட்டவில்லை என்றால், நீங்கள் இன்னும் பொதுவான பிழை ஒன்றைப் பெறுவீர்கள்:

உள்ளக சர்வர் பிழைசேவையகம் உள்ளக பிழை அல்லது தவறான கட்டமைப்பு மற்றும் உங்கள் கோரிக்கையை முடிக்க முடியவில்லை.

பிழையை ஏற்படுத்திய நேரத்தையும், பிழையை ஏற்படுத்தியிருப்பதற்கு நீங்கள் செய்திருக்கக்கூடிய எதையும் பற்றியும் அறிய சேவையக நிர்வாகியை தொடர்பு கொள்ளவும்.

இந்த பிழை பற்றிய மேலும் தகவலுக்கு சர்வர் பிழை பதிவில் கிடைக்கும்.

மேலே உள்ள இரு பிழைகளில் ஒன்றை நீங்கள் பெறினால், உங்கள் பயன்பாடு SQL ஊசி தாக்குதலுக்கு பாதிக்கப்படக்கூடியது. SQL Injection தாக்குதல்களுக்கு எதிராக உங்கள் பயன்பாடுகளைப் பாதுகாக்க சில படிகள் உள்ளன:

  • எல்லா பயன்பாடுகளிலும் அளவுரு சோதனை செய்தல். எடுத்துக்காட்டுக்கு, நீங்கள் ஒரு வாடிக்கையாளர் எண்ணை உள்ளிடுமாறு கேட்டுக் கொண்டால், வினவலை நிறைவேற்றுவதற்கு முன்னர் உள்ளீடு எண் என்பதை உறுதிப்படுத்தவும்.
  • SQL வினவல்களை செயல்படுத்தும் கணக்கின் அனுமதியைக் கட்டுப்படுத்தவும். குறைந்தபட்ச சலுகை விதிமுறை பொருந்தும். வினவலை நிறைவேற்ற பயன்படும் கணக்கு அதை இயக்க அனுமதி இல்லை என்றால், அது வெற்றி பெறாது.
  • SQL குறியீட்டை நேரடியாக தொடர்புப்படுத்த பயனர்களைத் தடுக்க சேமிக்கப்பட்ட நடைமுறைகள் (அல்லது ஒத்த தொழில்நுட்பங்கள்) பயன்படுத்தவும்.