eosoeoooeeeeos এসকিউএল ইনজেকশন একটি কোড ঢোকানর প্রয়োগ কৌশল যেটি উপাত্ত চালিত অ্যাপ্লিকেশন আক্রমণ করতে ব্যবহৃত হয়
এই পদ্ধতিতে অসৎ উদ্দেশ্যমূলক এসকিউএল স্টেটমেন্টবিবৃতিসমূহ এন্ট্রি ফিল্ডে সম্পাদন করার জন্য প্রবেশ করান হয় উদাহরণস্বরূপ ডাটাবেসের সমস্ত তথ্য আক্রমণকারীর কাছে পাঠিয়ে দেয়
এসকিউএল ইনজেকশন একটি অ্যাপ্লিকেশন সফ্টওয়্যারের কোন একটি নিরাপত্তা ঝুঁকিকে কাজে লাগায়উদাহরণস্বরূপ যখন বেশিরভাগ সময় এসকিউএল ইনজেকশন ওয়েবসাইটগুলির জন্য একটি আক্রমণ বাহক হিসাবে পরিচিত কিন্তু এটি এসকিউএলের যে কোন প্রকার ডাটাবেস আক্রমণ করতেও ব্যবহৃত হতে পারে
এসকিউএল ইনজেকশন আক্রমণ আক্রমণকারীদের পরিচয় ফাঁকি দিতে বিদ্যমান তথ্য বিনষ্ট বা বদলাবার সুযোগ করে দিতে অগ্রাহ্যমূলক সমস্যার সৃষ্টি করে যেমন ট্রান্সাক্সানলেনদেন নাকচ করা অথবা ব্যালেন্সউদ্বৃত্ত পরিবর্তন করা সিস্টেমের সব তথ্য সম্পূর্ণ প্রকাশের অনুমতি উপাত্ততথ্য নষ্ট করে ফেলা অথবা এটি অন্যত্র অনুপলব্ধ করা এবং ডাটাবেজ সার্ভারের প্রশাসক হওয়া ইত্যাদির অনুমতি দেয়
র একটি সমীক্ষায় দেখা গেছে যে গড় ওয়েব অ্যাপ্লিকেশন প্রতি মাসে টি আক্রমণের প্রচারণা পেয়েছে খুচরো ব্যবসায়ী ও অন্যান্য ব্যাবসায়ীদের গড়ে টি আক্রান্ত হবার সম্ভাবনা দেখা গেছে
সালে এসকিউএল ইনজেকশনের প্রথম প্রকাশ্য আলোচনার শুরু উদাহরণস্বরূপ সালের ফ্র্যাক ম্যাগাজিনেের একটি নিবন্ধ
ওপেন ওয়েব অ্যাপ্লিকেশন সিকিউরিটি প্রকল্প দ্বারা এবং সালের ওয়েব অ্যাপ্লিকেশনের আক্রান্ত হবার শীর্ষ টি ঝুঁকির একটি এসকিউএল ইনজেকশন এসকিউএলআই বিবেচনা করা হয়
সালে এসকিউএলআই ওপেন ওয়েব অ্যাপ্লিকেশন সিকিউরিটি প্রকল্পে আক্রান্ত হবার শীর্ষ টি ঝুঁকির প্রথম নম্বরে ছিল
এসকিউএল ইনজেকশনের প্রধান চারটি উপশ্রেণী আছে স্টর্ম ওয়ার্ম কম্পাঊন্ড এস কিউ এল আইয়ের একটি প্রতিরূপ
পর্যন্ত এসকিউএলআইএর বিবর্তন অনুসারে এই শ্রেণীবিভাগ এসকিউএলআই এর অবস্থা উপস্থাপন করে পরবর্তী পরিমার্জনের কাজ চলছে
এই ধরনের এসকিউএল ইনজেকশন ঘটে যখন ব্যবহারকারীর ইনপুট অব্যাহতি অক্ষরগুলির জন্য পরিশ্রুত হয় না এবং তখন এটি একটি এসকিউএল স্টেটমেন্টবিবৃতিতে পাসঅতিক্রান্ত হয়
এটি এই অ্যাপ্লিকেশনটির এন্ড ইউসারপ্রান্তিক ব্যবহারকারী দ্বারা ডাটাবেস সম্পাদনায় স্টেটমেন্টে সম্ভাব্য কারচুপির ফলাফল
কোডের নিম্নলিখিত লাইন এই ঝুঁকিটি তুলে ধরে স্টেটমেন্টবিবৃতি ses e see এই এসকিউএল কোডটি ব্যবহারকারীদের টেবিল থেকে নির্দিষ্ট নামের ব্যবহারকারীর তথ্যগুলি টেনে আনার জন্য নির্মিত
যদিও ব্যবহারকারীর নাম ভেরিএবেলটি একটি ক্ষতিকারক ব্যবহারকারীর দ্বারা নির্দিষ্ট ভাবে নির্মিত হয় এসকিউএল স্টেটমেন্ট কোডটি নির্মান কর্তার অভীষ্টর চেয়ে বেশি কিছু করতে পারে
উদাহরণ হিসেবে বলা যায় যেমন ব্যবহারকারীর নাম ভেরিএবেল নির্দিষ্টকরণ এইভাবে অথবা এমনকি বাকি কুয়েরি ব্লক করতে কমেন্টসমন্তব্য ব্যবহার করা এসকিউএল কমেন্টস তিন ধরনের হয়
তিনটির সবকটি লাইনের শেষে একটি ফাঁকা স্থান আছে ঊর্ধ্বতন ভাষা দ্বারা নিম্নলিখিত একটি এসকিউএল স্টেটমেন্ট এইপ্রকার ses e ses e এই কোড একটি অনুমোদনের কার্যপ্রণালীরূপে ব্যবহার করা হলে এই উদাহরণটি একজন নির্দিষ্ট ব্যবহারকারীর নামের বদলে সমস্ত ব্যবহারকারীদের প্রত্যেকটি ডাটা ফিল্ড নির্বাচনে ব্যবহার হতে পারে যেমন কোডারযিনি কোড লিখেছিলেন চেয়েছিলেন
কারণ মূল্যায়ন সবসময় সত্য শর্ট সার্কিট মূল্যায়ণ নীচের বিবৃতিতে ব্যবহারকারীর নাম এর নিম্নলিখিত মান ব্যবহারকারী টেবিল মুছে ফেলার পাশাপাশি seo টেবিল থেকে সমস্ত ডেটা নির্বাচন করতে পারে একটি এপিআই ব্যবহার করে যেটি একাধিক স্টেটমেন্টের অনুমতি দেয় সারাংশ হল প্রতিটি ব্যবহারকারীর তথ্য প্রকাশ করতে পারে এই ইনপুটটি নিম্নলিখিত চূড়ান্ত ও নিদিষ্ট এসকিউএল স্টেটমেন্ট উপস্থাপনা করে
ses e ses seo যদিও বেশির ভাগ সার্ভার প্রয়োগ ব্যবস্থাগুলো একাধিক বিবৃতি এই ভাবে একটি কলের মাধ্যমে কার্যকর করার অনুমতি দেয়
কিছু এসকিউএল এপিয়াই যেমন পিএইচপির oe ফাংশনটি নিরাপত্তার কারণে এটার অনুমতি দেয় না
এটি সম্পূর্ণরূপে আলাদা ক্যোয়ারী ইনজেকশনের থেকে আক্রমণকারীদের বাধা দেয় কিন্তু তাদের ক্যোয়ারী পরিবর্তন করার থেকে আটকাতে পারে না
এই ধরনের এসকিউএল ইনজেকশন ঘটে যখন একটি ইউসার সাপ্লাায়েড ব্যবহারকারী দ্বারা লিখিত ফিল্ডটি শক্তিশালী ভাবে টাইপ করা হয় না অথবা টাইপ কন্সট্রেন্টের এর জন্য যাচাই করা থাকে না
এইটি ঘটতে পারে যখন একটি সাংখ্যিক ক্ষেত্র একটি এসকিউএল স্টেটমেন্টে ব্যবহার করা হয় কিন্তু প্রোগ্রামার ব্যবহারকারীর সরবরাহকৃত ইনপুটটি সাংখ্যিক কিনা তা যাচাই করতে কোন চেক লাগান না
যেমন এই বিবৃতি থেকে স্পষ্ট যে প্রণেতা ক্ষেত্রটির সঙ্গে সংযুক্ত e টি একটি সংখ্যাই হোক এমনটি চেয়েছিলেন
যাইহোক এটি আসলে একটি স্ট্রিং হলে এন্ড ইউসার এস্কেপ কারেক্টারের প্রয়োজনকে বাদ দিয়ে স্টেটমেন্টটি ইচ্ছামত বদলাতে পারেন
উদাহরণস্বরূপ e কে সেট করে ses ডাটাবেস থেকে ব্যবহারকারীদের টেবিলটি ড্রপ করে দেবেমুছে দেবে যেহেতু এসকিউএলটি দাঁড়িয়েছে seo ses ব্লাইন্ড এসকিউএল ইনজেকশন সেক্ষেত্রে ব্যবহার হয় যখন একটি ওয়েব অ্যাপ্লিকেশন একটি এসকিউএল ইনজেকশন ঝুঁকির মুখে থাকে কিন্তু ইনজেকশনটির ফলাফল আক্রমণকারী কাছে দৃশ্যমান নয়
ঝুঁকিযুক্ত পাতাটি উপাত্ত প্রদর্শনকারী পাতা নাও হতে পারে কিন্তু ওই পাতাটি কল করার জন্য যে বৈধ এসকিউএল স্টেটমেন্টটি আছে তাতে যে যৌক্তিক বিবৃতি ইনজেকট করা হয়েছে তার ফলাফলের উপর নির্ভর করে ভিন্নভাবে উপাত্ত প্রদর্শিত হতে পারে
আক্রমণের এই ধরনটি প্রথাগতভাবে সময় সাপেক্ষ কারণ প্রতিটি বিট উদ্ধার করার জন্য একটি নতুন বিবৃতি তৈরি করা প্রয়োজন হয় এবং পাতাটির কাঠামোর উপর নির্ভর করে আক্রমণ অনেক সময় অসফল হতে পারে
সাম্প্রতিক ক্রমবিকাশে আরো সামঞ্জস্যপূর্ণ এবং দক্ষ নিষ্কাশনের অনুমতি সহ প্রতিটি অনুরোধে একাধিক বিট পুনরুদ্ধার করতে অনুমতি দেয় কোন অসফল অনুরোধ ছাড়া
একবার ঝুঁকির স্থান এবং লক্ষ্যস্থলের তথ্যটি প্রতিষ্ঠিত হলে বিভিন্ন সরঞ্জাম দণ্ডের সাহায্যে এই আক্রমণগুলি স্বয়ংক্রিয়ভাবে হতে পারে
এক ধরনের ব্লাইন্ড এসকিউএল ইনজেকশন ডাটাবেসকে একজন সাধারণ অ্যাপ্লিকেশন পাতায় একটি যৌক্তিক বিবৃতি মূল্যায়ন করতে বাধ্য করে
উদাহরণস্বরূপ একটি বই পর্যালোচনা ওয়েবসাইট যেটি বই পর্যালোচনা প্রদর্শন নির্ধারণ করার জন্য একটি কোয়েরি স্ট্রিং ব্যবহার করে
সেইজন্য oe ইউয়ারএল কুয়েরিটি সার্ভারে রান করাবে
ooees e যা থেকে বুকরিভিউ টেবিলের মধ্যে সংরক্ষিত আইডি এর পর্যালোচনা ডেটা দিয়ে পর্যালোচনা পাতা ভরবে কুয়েরিটি সার্ভারে সম্পূর্ণরূপে ঘটবে ব্যবহারকারী ডাটাবেস টেবিল বা ফিল্ডের নামগুলো কিংবা কোয়েরি স্ট্রিং কোনটাই জানে না
ব্যবহারকারী শুধুমাত্র দেখেন যে উপরোক্ত ইউয়ারএল এ একটি বই পর্যালোচনা ফেরৎ আসছে
একজন হ্যাকার ইউআরএলগুলি লোড করতে পারেন
oe এবং oe যথাক্রমে যে ক্যোয়ারীগুলি ঘটতে পারে ooees দ্বারা যদি মূল পর্যালোচনা লোড হয় এবং থেকে একটি খালি অথবা ত্রুটি পাতায় ফিরিয়ে দেওয়া হয় এবং ব্যবহারকারীকে ইনপুটটি অবৈধ সতর্ক করার জন্য ফেরত পৃষ্ঠা তৈরি করা নেই অথবা অন্য কথায় একটি ইনপুট টেস্ট স্ক্রিপ্ট দ্বারা ফাঁদে পড়েছে সাইটটি সম্ভবত একটি এসকিউএল ইনজেকশন আক্রমণের ঝুঁকির সম্মুখীন হতে পারে যেহেতু কুয়েরি সম্ভবত উভয় ক্ষেত্রেই সফলভাবে গৃহীত হবে
হ্যাকার মাইএসকিউএল সার্ভারে চলমান সংস্করণ নম্বরটি প্রকাশ করার জন্য এই কুয়েরি স্ট্রিং দ্বারা পরিকল্পিত পথে এগিয়ে যেতে পারেন oe যা একটি সার্ভারে চলমান মাইএসকিউএল তে বই পর্যালোচনা এবং অন্যথায় একটি খালি অথবা ত্রুটি পৃষ্ঠা দেখাবে
হ্যাকার আক্রমণের আরেকটি পথ আবিস্কার অথবা তার লক্ষ্য পূর্ণ না হওয়া পর্য্যন্ত সার্ভার থেকে আরও তথ্যের সংগ্রহের জন্য কুয়েরি স্ট্রিংএর ভিতর কোড ব্যবহার চালিয়ে যেতে পারেন
দ্বিতীয় সারির এসকিউএল ইনজেকশন ঘটে যখন অবিলম্বে নির্বাহ হবার বদলে জমা দেওয়া ভ্যালুতেমানে সংরক্ষিত ক্ষতিকারক কমান্ডটি থাকে
কিছু কিছু ক্ষেত্রে অ্যাপ্লিকেশন সঠিকভাবে একটি এসকিউএল বিবৃতি এনকোড করে এবং বৈধ এসকিউএল হিসাবে সংরক্ষণ করতে পারে
এরপরে অ্যাপ্লিকেসানের অন্য অংশ এসকিউএল ইনজেকশন সুরক্ষা নিয়ন্ত্রণ ছাড়া এই সংরক্ষিত এসকিউএল বিবৃতিটি চালাতে পারে
এই আক্রমণে কিভাবে জমা দেওয়া মান পরে ব্যবহার করা হয় তার আরো জ্ঞান প্রয়োজন
অটোমেটেড ওয়েব অ্যাপ্লিকেশন নিরাপত্তা স্ক্যানারগুলি এই ধরনের এসকিউএল ইনজেকশন সহজে সনাক্ত করে না এবং ম্যানুয়ালভাবে নির্দেশ দেওয়ার দরকার হতে পারে কোথায় তথ্যপ্রমাণের জন্য চেক করতে হবে যেখানে এই ধরণের চেষ্টা করা হচ্ছে
এসকিউএল ইনজেকশন একটি সুপরিচিত আক্রমণ এবং সহজে সরল পদক্ষেপ দ্বারা আটকানো সম্ভব
টকটকের উপর সালে এসকিউএল ইনজেকশনের একটি আপাত হামলার পর বিবিসির রিপোর্ট নিরাপত্তা বিশেষজ্ঞরা স্তম্ভিত হন যে এই ধরনের একটি বৃহৎ কোম্পানিও এটার দ্বারা ঝুঁকিপ্রবন হতে পারে
সবচেয়ে উন্নত প্ল্যাটফর্মগুলিতে প্যারামিটারযুক্ত বিবৃতি যেগুলি প্যারামিটার দ্বারা কাজ করে সেটির বিবৃতিতে ব্যবহারকারীর ইনপুট এম্বেডিংসন্নিবদ্ধ করার পরিবর্তে কখনও কখনও বলা হয় প্লেসহোল্ডার বা ব্লাইন্ড ভেরিয়েব্ল গুলি ব্যবহার করা যেতে পারে
একটি প্লেসহোল্ডার একটি অযৌক্তিক এসকিউএল টুকরা নয় শুধুমাত্র উল্লেখিত টাইপেরধরনের মান সংরক্ষণ করতে পারে
অতএব এসকিউএল ইনজেকশন কেবল একটি অদ্ভুত এবং সম্ভবত অবৈধ পরামিতি মান হিসাবে গণ্য করা হবে
অনেক ক্ষেত্রে এসকিউএল স্টেটমেন্ট নির্দিষ্ট এবং প্রতিটি প্যারামিটার এক একটি ভেরিএব্ল একটি টেবিল নয়
ব্যবহারকারীর ইনপুট তখন একটি প্যারামিটারে নির্ধারিতআবদ্ধ হয়