ইথিকাল হ্যাকিং ডে-৬: SQL ইনজেকশন - সম্পূর্ণ বাংলা গাইড
🎯 আজকের লক্ষ্য কী?
আজ আমরা SQL ইনজেকশন নিয়ে গভীরভাবে আলোচনা করবো। এটা শিখে আপনি ওয়েবসাইটের নিরাপত্তা দুর্বলতা বুঝতে পারবেন এবং সেগুলো ঠিক করার উপায় জানতে পারবেন। আমাদের আজকের মূল বিষয়গুলো হলো:
- SQL ইনজেকশন কী এবং এটা কীভাবে কাজ করে?
- বাস্তব জীবনের কিছু উদাহরণ দিয়ে বোঝা।
- DVWA নামে একটি টুল ব্যবহার করে হাতেকলমে প্র্যাকটিস।
- কীভাবে এই আক্রমণ থেকে নিজেকে বাঁচানো যায়।
ধাপ ১: SQL ইনজেকশনের সহজ পরিচিতি
SQL ইনজেকশন হলো এমন একটি কৌশল, যেখানে একজন আক্রমণকারী ওয়েবসাইটের ইনপুট ফিল্ডে (যেমন লগইন ফর্মে) কিছু কোড লিখে ডাটাবেসের সাথে ছলনা করে। এর ফলে সে এমন তথ্য দেখতে বা বদলাতে পারে, যার অনুমতি তার থাকার কথা নয়।
একটি সহজ উদাহরণ দেখি:
ধরা যাক, একটি ওয়েবসাইটে লগইন করতে এমন একটি SQL কুয়েরি ব্যবহৃত হয়:
এখন যদি কেউ পাসওয়ার্ড ফিল্ডে ' OR '1'='1 লিখে দেয়, তাহলে কুয়েরিটি এমন হবে:
এখানে '1'='1' সবসময় সত্য হয়। ফলে বৈধ পাসওয়ার্ড না জানলেও লগইন হয়ে যাবে! এটাই SQL ইনজেকশনের ম্যাজিক।
⚠️ একটু সাবধানতা
এই জ্ঞান শুধু ভালো কাজে ব্যবহার করুন। যেমন:
- নিজের ওয়েবসাইটের নিরাপত্তা পরীক্ষা করতে।
- অনুমতি নিয়ে পেনিট্রেশন টেস্টিং করতে।
- শিক্ষার জন্য এবং দক্ষতা বাড়াতে।
অন্যের ক্ষতি করার জন্য এটি ব্যবহার করা একদম নিষিদ্ধ এবং অবৈধ।
ধাপ ২: DVWA দিয়ে শুরু করা
DVWA মানে "Damn Vulnerable Web Application"। এটা একটি প্র্যাকটিস টুল, যেটা দিয়ে আমরা নিরাপত্তা দুর্বলতা শিখতে পারি। এটি সেটআপ করতে এই ধাপগুলো অনুসরণ করুন:
- XAMPP বা WAMP ইন্সটল করুন: এটা আপনার কম্পিউটারে সার্ভার তৈরি করবে।
- DVWA ডাউনলোড করুন: এটি পাবেন এই GitHub লিঙ্কে।
- ফাইল কপি করুন: DVWA ফোল্ডারটি XAMPP-এর "htdocs" ফোল্ডারে রাখুন।
- ব্রাউজারে চালু করুন: লিখুন
http://localhost/DVWA। - লগইন করুন: ডিফল্ট ইউজারনেম
adminএবং পাসওয়ার্ডpassword।
সব ঠিক থাকলে আপনি DVWA-এর ড্যাশবোর্ড দেখতে পাবেন। এখানে প্র্যাকটিস শুরু করা যাবে!
ধাপ ৩: SQL ইনজেকশন হাতেকলমে শিখি
লগইন বাইপাস করা
DVWA-তে SQL ইনজেকশন সেকশনে গিয়ে এটি ট্রাই করুন:
এখানে -- মানে বাকি কুয়েরি বাদ দেওয়া। ফলে পাসওয়ার্ড চেক না করেই লগইন হবে।
ডাটাবেস থেকে তথ্য বের করা
এবার আরেকটু এডভান্সড কিছু দেখি:
এটি ডাটাবেস থেকে সব ইউজারনেম এবং পাসওয়ার্ড দেখিয়ে দেবে। আশ্চর্যজনক, তাই না?
কীভাবে নিজেকে সুরক্ষিত রাখবেন?
SQL ইনজেকশন থেকে বাঁচতে এই পদ্ধতিগুলো ব্যবহার করুন:
| পদ্ধতি | কীভাবে কাজ করে? |
|---|---|
| Prepared Statements | ইনপুটকে কুয়েরি থেকে আলাদা রাখে, ফলে কোড ইনজেক্ট করা যায় না। |
| Input Validation | ইউজারের দেওয়া ডেটা চেক করে বিপজ্জনক ক্যারেক্টার বাদ দেয়। |
| WAF | Web Application Firewall আক্রমণ শনাক্ত করে ব্লক করে। |
এগুলো ব্যবহার করলে আপনার ওয়েবসাইট অনেক বেশি নিরাপদ হবে।