OfSec :: SQL Injection in Post Method

এই পোস্টে আমরা দেখেছিলাম কিভাবে SQLi করতে হয় এবং এটাকে Prevent করা যায় । এটি ছিল http get method এর উপর sql injection । আজকে দেখব কিভাবে http post method এ sql injection করা যায় । তাহলে শুরু করা যাক ।

আমাদের আগের ডাটাবেসই আমরা ব্যবহার করবো এবং আগের পিএইচপি কোডই কিন্তু এক জায়গায় পরিবর্তন থাকবে তাহলো । আমরা আগে ডাটা নিয়েছিলাম GET ব্যবহার করে, কিন্তু এবার আমরা ডাটা নিবো POST ব্যবহার করে যেহেতু আমরা এবার POST method এ sql injection করব ।



( Database Structure )

( PHP Code [ only change GET <-> POST ])

GET method এর মত POST method এ ডাটা URL এর মাধ্যমে Pass হয় না । তাই এবার আমরা সরাসরি URL থেকে Inject করতে পারবো না , এজন্য আমাদের অন্য একটা Script থেকে POST Request পাঠাতে হবে । এখানে আমরা পাইথনে একটা Script ব্যবহার করে Request পাঠাব । :)

 ( Python Code to send POST Request )

 এখানে POST Request এর জন্য পাইথনের Request library ব্যবহার করেছি । প্রথন লাইনে সেটিই ইম্পরট করেছি । দ্বিতীয় লাইনে পাইথনের dictionary data structure ব্যবহার করে  পোস্ট ডাটার জন্য id, value pair তৈরি করেছি । তৃতীয় লাইনে Post request send করেছি এবং 4th লাইনে আউটপুট প্রিন্ট করেছি ।

 ( Output of python code )

 বাহ , সব ঠিক ঠাকই দেখা যাচ্ছে :) এবার id,value র value পরিবর্তন করে দেখি ইঞ্জেক্ট করা যায় কিনা :)


উপরে দেখুন value র সাথে ' অ্যাড করে request পাঠানোর ফলে ইরর দিচ্ছে :D :D
বাহ বাহ , তাহলে ইঞ্জেক্ট করা যাচ্ছে । এবার তাহলে বাকী কাজ গুলো ও করার চেষ্টা করি :)

 :D :D


query value গুলো যেহেতু আগের মতোই ( GET Method ) তাই আমরা আর সব গুলো টেস্ট করলাম না :) এবং Protection এর উপায়ও আগের মতোই
এখানে একটা সমস্যা হল query id যেহেতু url এ pass হচ্ছে না তাই তা দেখা যাবে না । তবে তাও বের করার জন্য একটু নেট ঘাটাঘাটি করলেই কিছু tools পেয়ে যাবেন । :)

Raw Code : PHP & Python

Share this

Related Posts

Previous
Next Post »