SQL INJECTION আসলে কি ?কেনো SQL INJECTION আমরা ইউজ করবো ?
এত কিছু জানার আগে যেটা আমাদের প্রথম জানতে হবে সেটা হচ্ছে SQL আসলে কি ? SQL হলো **স্ট্রাকচার কোয়েরি ল্যাঙ্গুয়েজ** যেটার মাধ্যমে আমরা কোন কিছু ডেটাবেসে(**DB**) সংরক্ষিত করতে পারি। আরে দাড়াও দাড়াও একটা নতুন কথা বলে ফেলেছি **ডেটাবেস** কিন্তু মাথায় তো এই প্রশ্নটাও আসতে পারে যে ডেটাবেস কি? ডেটাবেস হচ্ছে একটা স্টোরেঞ্জ আমরা ফোনে যে রকম ইন্টার্নাল স্টোরেজ এক্সটার্নাল স্টোরেজ ইউজ করি কোন কিছু স্টোর করার জন্য ঠিক সেই রকমই ওয়েবসাইটে কোন কিছু স্টোর করার জন্য ডেটাবেজ ব্যবহার করা হয় যার মধ্যে সমস্ত কিছু ডেটা স্টোর বা সংরক্ষিত করা হয়। সাধারণত ডেটাবেস কে দুটি ভাগে ভাগ করা হয় ।একটি হলো SQL এবং অন্যটি NOSQL আমরা মূলত এই বইয়ে SQL সমন্ধে কথা বলবো ।
SQL হলো একটি মাধ্যম যার মাধ্যমে ওয়েবসাইট থেকে ডেটাবেসে ডেটা স্টোর করানো হয় । ধরো আমরা যখন কোন ওয়েবসাইটে কোন কিছু সার্চ করি তখন যে রেজাল্টটা আমরা চোখের সামনে দেখতে পাই সেটা আসলে তার ডাটাবেসে আগে থেকেই সংরক্ষিত ছিল সেই সংরক্ষিত তথ্য গুলি ডেটাবেজ থেকে তুলে এনে আমাদের দেখানো হয়।
এই যে তুলে আনার কথা বললাম তুলে আনে SQL। ঠিক আমরা যেভাবে অন্যের কাছে কোন জিনিস চাই :- , এ ভাই ওইটা দে না, ওইটা কর নাহ প্লীজ , ঠিক সেই ভাবেই আমরা যখন সার্চ করি ,SQL ওই ভাবে ডেটাবেস এর কাছে সার্চ এর রেজাল্ট টা চাই কিন্তু ওটা একটু অন্য রকম করে ।ধরো তুমি amazone a কিছু প্রোডাক্ট সার্চ করছো(gift) তখন SQL Amazone এর ডেটাবেস এ গিয়ে কিভাবে বলে চলো দেখে নাওয়া যাক :-
ধরো তখন url টা এইরকম হতে পারে https://amazone.in/products?category=Gifts
তখন SQL টা ডেটাবেস এ কি বলবে চলো দেখি
**SELECT * FROM products WHERE category = ‘Gifts’ AND released = 1**
প্রতমত বলে রাখি যে sql ডেটাবেস এ ডেটা গুলো টেবিলে আকারে থাকে তাই এখানে **product** হচ্ছে একটা টেবিল যেটা **SELECT** করা হয়েছে এবং **category** হচ্ছে ওই টেবিল এর এটা কলাম ।এবং ওই কলাম এর **gift**হচ্ছে একটা রো
এখানে select এর পর যে * টি আছে সেটি ওই টেবিল এর সমস্ত কিছু কে নিদেশ করছে অর্থাৎ **product টেবিল এর gift category এর সব তথ্য **
একটু ছোট করে বললে এইরকম বোঝাই
সমস্ত তথ্য (*)
**product** টেবিল থেকে
যেখানে category হচ্ছে gift
এবং rleased হচ্ছে 1
এখানে rleased =1 বলতে বোঝানো হচ্ছে যে সমস্ত প্রোডাক্ট গুলি অলরেডি রিলিজ হয়ে গেছে, শুধুমাত্র সেগুলোই দেখানো হবে।
যদি ওয়েবসাইট এ ভালো সিকিউরিটি নাহ থাকে তাহলে যে প্রোডাক্ট গুলো rleased হয়নি সেইগুলোই খুব সহজ এই দেখা যাবে (মানে যে প্রোডাক্টগুলো ইউজার এর কাছ থেকে লুকানো আচ্ছে ওই গুলীও ) কিন্তু কি ভাবে সেটা দেখে নেওয়া যাক ।
এইক্ষেত্রে লিংকটি এইরকম হবে
https://insecure-website.com/products?category=Gifts’--
এবং SQL query টি এইরকম হবে
SELECT * FROM products WHERE category = ‘Gifts’—’ AND released = 1
এখানে মূল বিষয় হলো –( ডবল dash) যেটা SQL এ কমেন্ট হিসেবে কাজ করে ।
এটি কার্যকরভাবে কোয়েরির অবশিষ্টাংশকে সরিয়ে দেয়,
এর মানে হচ্ছে সমস্ত রিলিজ হওয়া প্রোডাক্টগুলো শুধু আমরা দেখতে পাই।
কিন্তু হ্যাকার কিভাবে সমস্ত প্রোডাক্ট দেখতে পায় তাদের কোন ক্যাটাগরি না জেনেই? এমনকি যে প্রোডাক্ট গুলো ওয়েবসাইটে হাইড করা থাকে সে প্রোডাক্টগুলো দেখতে পায় কিভাবে?
তারা ওয়েবসাইটে রিকোয়েস্ট করে কিছুটা এরকম ভাবে 👇
https://insecure-website.com/products?category=Gifts’+OR+1=1--
এই রিকোয়েস্টের ফলে উৎপন্ন সSQL এর কুয়েরিটি হয় কিছুটা এরকম 👇
SELECT * FROM products WHERE category = ‘Gifts’ OR 1=1—’ AND released = 1
এ ওপরের যে কয়েরিটি দেখছো এটা ডেটা বেঁসে থাকার সমস্ত প্রোডাক্টের শো করিয়ে দেয়। কারণ আখানে categorye হচ্ছে gift অথবা 1 সমান 1।
1 সমান 1 এটা সর্বদা true রিটার্ন করে তাই এক্ষেত্রে কুয়েরিটি ট্রু রিটার্ন করবে এবং ডেটাবেসের সমস্ত প্রোডাক্ট গুলি দেখিয়ে দেবে ।
এত বলে কি হবে চলনা লাইভ করা যাক 😁
আমরা পরের চ্যাপ্টায় দেখব কিভাবে সত্যিকারের ডাটাবেসকে(SQL) হ্যাক করা যায় এবং আমরা নিজেরাই সেটা করব 🤓
**SQL INJECTION এর ক্ষমতায় লুকানো তথ্য কিভাবে দেখা যায়**
এই লেবেটিতে একটি স্কেল ইনজেকশন ক্ষমতা সম্বন্ধে বলা দেখানো হচ্ছে, যেখানে সাহায্যে ওয়েবসাইটে লুকানো তথ্য গুলি আমরা খুব সহজেই দেখতে পাবো ।এই ল্যাব এ যখন কোন ইউজার category সিলেক্ট করে তখন SQL কুয়েরিটি সাধারণত এরকম হয় 👇
**SELECT * FROM products WHERE category = ‘Gifts’ AND released = 1**
তোমাদেরকে ল্যাবটি সলভ করার জন্য একটা SQL ইনজেকশন নিজেদেরকে তৈরি করে নিচে দেওয়া লিংকে ওয়েবসাইটে ক্লিক করে ইনজেকশনটি ইনজেক্ট করতে হবে । যেই SQL ইনজেকশনটি রিলিস্ট এবং যেগুলি অখনো রিলিজ হয় নি সেই সমস্ত প্রোডাক্ট দেখিয়ে দেবে মানে ডাটাবেসের যে সমস্ত প্রোডাক্টগুলি লুকানো আছে সেই প্রোডাক্ট গুলোই দেখিয়ে দেবে।
ভয় পাওয়ার কিছু নেই সমস্ত তথ্য আমি বলব কিভাবে কি করতে হবে সেই অনুযায়ী তোমরা করবে।
প্রথমে নিচে দেওয়া এই লিংকটিতে ক্লিক করে তোমরা portswigger.net এ একটা করে একাউন্ট ক্রিয়েট করে নেবে। একাউন্ট ক্রিয়েট না করলে কিন্তু তোমরা এই বইয়ের কোন ল্যাবে একসেপ্ট করতে পারবেনা।
আমি বইয়ের প্রথমে যে টুলের কথা বলেছিলাম burpauit সেই burpsuit এপ্লিকেশন এর সৃষ্টিকর্তা হচ্ছে এই portswigger.net ।
দেরি না করে চটপট নিচে দেওয়া লিংকে ক্লিক করে নিজেরা এক একটা প একাউন্ট ক্রিয়েট করে ফেলো
https://portswigger.net/users/register
আশা করছি তোমরা সকলেই অ্যাকাউন্ট ক্রিয়েট করে ফেলেছ 🙂
এখন আপাতত নিচে দেওয়া লিংকে ক্লিক করে লিংক ওপেন কর 👇
https://0a22006d04ebd857c0147ec000450091.web-security-academy.net/
লিংকে ক্লিক করার পর তোমরা কিছুটা এরকম দেখতে পাবে 👇
নিচের ওয়েবসাইটের স্ক্রিনশটটি সাধারণত মোবাইল থেকে তোলা ।কম্পিউটার এবং ল্যাপটপে এটি দেখতে একটু অন্যরকম হতে পারে কিন্তু এতে ভয় পাওয়ার কোন দরকার নেই।
এবার নিচে যে ক্যাটাগরী গুলো আমরা দেখতে পাচ্ছি সেগুলির মধ্যে কোন একটিতে ক্লিক করব । এবং ক্লিক করার পর আবার আমরা লিংকে ক্লিক করে লিংকটির পরিবর্তন লক্ষ্য করব লিংকটা আগে কি ছিল এবং এখন লিংক কেমন হয়েছে ।
লিংকে সাধারণত এরকম দেখাবে 👉 https://0a22006d04ebd857c0147ec000450091.web-security-academy.net/filter?category=Clothing%2c+shoes+and+accessories
‘+OR+1=1— 👈 এই লেখাটি বসিয়ে দাও ।
লেখাটি বসানোর পর লিংকটি এরকম হবে 👇
https://0a22006d04ebd857c0147ec000450091.web-security-academy.net/filter?category=’+OR+1=1--
এবং এন্টার বাটনে প্রেস কর মোবাইলে হলে গো বাটনে ক্লিক করো।
সবাইকে অসংখ্য অসংখ্য শুভেচ্ছা তোমরা তোমাদের জীবনের প্রথম হ্যাক করে ফেলেছ তোমরা দেখতে পাবে লুকানো তথ্য সমস্ত । দেখো ওয়েবসাইটে দেখো সমস্ত প্রোডাক্ট তোমরা দেখতে পাবে।
এখনো তোমাদের বুঝতে কোন অসুবিধা আছে তাহলে নিচের দেওয়া আমার ইউটিউব ভিডিও লিংকে ক্লিক করো ভিডিওটি দেখো এবং তারপর তোমরা আশা করছি খুব সহজেই বুঝতে পেরে যাবে 👇
https://youtube.com/shorts/iRRiSIGl57Q?feature=share


মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন