Sql injection Basic
Part-1
আমাকে অনেকে ইনবক্সে জিজ্ঞেস করেন,
" কিভাবে SQLi এর কাজ করবো? "
" কিভাবে শুরু করবো? "
তাদের জন্য আমি এই কথাগুলো। আশা করি কিছু জানতে পারবেন। আজ SQLi এর union based & string based injection নিয়ে কথা বলবো আমি।
প্রথমে আমি vulnerability নিয়ে কথা বলবো। সব সাইট এ SQLi হয় না। হবেও না। যেসকল সাইটে SQLi হবে সেসকল সাইট-কে SQLi vulnerable site বলা হবে।
আমাদের SQLi এর জন্য আমি একটা সাইট কল্পনা করে নিলাম। যেটা হচ্ছে,
http://www.example.com/
এবার এর একটি parameter বের করলাম। যেটা দাড়ালো এমনঃ
http://www.example.com/index.php?id=1
এবার আমাদের প্রথম যেই কাজটা হবে সেটা হলো, site টা কি SQLi এর প্রতি vulnerable কিনা সেটা যাচাই করা। এজন্য, আপনাকে url এর শেষে একটা ' (single cotation) দিতে হবে।
পুরো url টা দাড়ায়ঃ
http://www.example.com/index.php?id=1'
এবার অনেক কিছুই হতে পারে।
1. SQL error দেখাতে পারে
2. Photo vanish or, corrupted হতে পারে
3. Text size ছোট-বড় হতে পারে
4. লেখা ভ্যানিশ হতে পারে
এমন যেকোনকিছু দেখলে সেটাকে SQLi vulnerable বলে চিহ্নিত করবেন। তবে sure হওয়ার জন্য, Link এর শেষের ' এর জায়গায়, %23 দেবেন। যদি আবারো একই error দেখা যায় তাহলে সেই সাইট vulnerable নাহ। তবে, ব্যতিক্রম থাকবেই। সেটাকে উদাহরণ বানিয়ে উপস্থাপন করাটা বোকামি।
আপনি যখন নিশ্চিত যে, এটা SQLi vulnerable তখন আপনার প্রথম কাজ হবে এটা কি String Based or, Union Based সেটা যাচাই করা। যাচাই করার অন্যতম উপায় হলো, parameter সহ যে url আছে তার পেছনে,
১। --
২। '--+-
এই দুটো একটা একটা করে বসিয়ে দেখতে হবে কোনটি দ্বারা সাইট-টি আগের অবস্থায় ফিরে আসে।
http://www.example.com/index.php?id=1--
নাকি
http://www.example.com/index.php?id=1'--+-
যদি, (1) নাম্বার অর্থাৎ, -- দিয়ে normal এ আসে তাহলে এটি union based SQLi. আর যদি '--+- দিয়ে normal এ আসে তাহলে এটি string based SQLi.
বাকি কথা আমার পরবর্তী Post এ বলবো। 😊
শুভকামনা রইলো 😊