Sql injection attack မိတ္ဆက္

View previous topic View next topic Go down

Sql injection attack မိတ္ဆက္

Post  emolay on Mon Jun 13, 2011 4:28 am

ဒီတခါေတာ့ SQL where clause အေၾကာင္းေလးေလ့လာၾကရေအာင္......အသံုးၿပဳမယ့္ syntax ေလးကေတာ့ ဒီလိုပါ။

select*
from table_name
where column_name + operator +values

ထံုးစံအတိုင္း select * ဆိုတာကေတာ့ ေကာ္လံေတြ အကုန္လံုးကို ေခၚၾကည့္ဖို့ command ပါ ။ table_name ေနရာမွာ မိမိၾကည့္မယ့္ table ရဲ ့အမည္ကိုထည့္ပါ ။ where ဆိုတဲ့ command ကေတာ့ ေကာ္လံတခုရဲ ့ ေအာက္ကတိတိက်က်သိထားတဲ့ row တခုကို ေခၚၾကည့္ဖို့ပါ ။ ရွဳပ္သြားၿပီထင္ပါတယ္။ေအာက္မွာထပ္ရွင္းပါ့မယ္။

( စာၾကြင္း ။ ။ Sql query command ေတြကိုေရးတဲ့အခါမွာ တိတိက်က်ေရးသားရမယ္လို ့ မသတ္မွတ္ထားပါဘူး ။ javascript variables ေတြကို ေရးတဲ့အခါ မွာ C အၾကီးနဲ့c အေသးမတူပါဘူး ။ js ဟာ sensitive ၿဖစ္ပါတယ္ ။ စာလံုးအၾကီးအေသး ေသခ်ာခြဲၿခားေရးရပါတယ္ ။ sql ကေတာ့ no sensitive ပါ ။ SELECT နဲ့ select တူတူပါပဲ ။ ဒါေလးတခ်က္ေလာက္သိထားရပါမယ္။ )

ကၽြန္ေတာ္တို့ SMF_1USERS ဆိုတဲ့ TABLE မွာ user ေတြက ေထာင္ခ်ီရွိတယ္ဆိုပါေတာ့ဗ်ာ . ဆိုလိုတာက row ေတြအမ်ားၾကီးရွိတယ္ဆိုပါေတာ့ ။ ေကာ္လံ name ေတြကလဲ အမ်ားၾကီးပဲ ။ ကၽြန္ေတာ္တို ့ ၿမင္ခ်င္တာက admin ရဲ့ data အခ်ိဳ့ပဲဗ်ာ ။ ဆိုလိုတာက admin ရဲ့ username ၊ password ၊ email စတာေတြေပါ့ ။ ေကာ္လံ name ေတြအမ်ားၾကီးထဲက ကၽြန္ေတာ္တို ့ေခၚၾကည့္မွာက usernameရွိတဲ့ user_name ၊ password ရွိတဲ့ user_password၊ email ရွိတဲ့ user_email ဆိုတဲ့ ေကာ္လံေတြဆိုပါစို ့ ။ ဒါ နမူနာေၿပာတာေနာ္ ။ site တခုနဲ့တခုအမည္ေပးပံုၿခင္းတူခ်င္မွတူမွာပါ ။ မိတ္ေဆြတို ့က ေမးပါလိမ့္မယ္ ။ သူမ်ား site ရဲ ့ ေကာ္လံ name ေတြကို ဘယ္လို သိမွာလဲလို ့ ..... ဟုတ္ကဲ့.... site မွာ vulnerability ရွိလို ့ injection ထိုးၿပီး ေပါက္ၿပီဆိုရင္ၿဖင့္ query ေတြ သံုးၿပီး သိေအာင္လုပ္နိုင္ပါတယ္။ေနာက္ပိုင္းေရးသားခ်က္ေတြမွာေတြ ့ရမွာပါ ။အခုစကားစပ္မိလို့ေၿပာတာပါ။ကဲ...ဆက္ရေအာင္....

select user_name, user_password, user_email
from smf_1users
where user_name='admin'

ဒါဆိုရင္ user_name ဆိုတဲ့ ေကာ္လံေအာက္မွာ admin ဆိုတဲ့ စာလံုးရွိတဲ့ row တခုပဲ က်လာပါလိမ့္မယ္ ။ က်န္တဲ့ user ေတြရဲ့ row ေတြ က်လာမွာမဟုတ္ပါဘူး ။ query command ကို ၿပန္ရွင္းရရင္ select user_name, user_password, user_email ဆိုတာက user_name, user_password, user_email ဆိုတဲ့ ေကာ္လံ 3 ခုကိုပဲ မွတ္ၿပီး ၿပပါလို ့ဆိုတာပါ ။ line 2 ကေတာ့ သိၿပီးသားပါ ။ table ကိုညႊန္းတာပါ ။ line 3 ကေတာ့ user_name ဆိုတဲ့ ေကာ္လံဟာ admin ဆိုတဲ့ တန္ဖိုးရွိတယ္လို ့ = operator နဲ့ ေၾကၿငာလိုက္တာပါ ။ ဆိုလိုတာက user_name ေကာ္လံေအာက္မွာ admin ဆိုတဲ့ value ရွိေနတဲ့ row တခုပဲ မွတ္ၿပီး ၿပပါလို ့ command ေပးလိုက္တာပါ ။ operators သေကၤတေတြနဲ့ အသံုးၿပဳပံုေတြ ကိုေတာ့ ကၽြန္ေတာ္ဆက္လက္ေရးသားမယ့္ အပိုင္းမွာ ေလ့လာၾကပါ ။ where clause အခန္းဟာ အေရးၾကီးၿပီး အသံုးမ်ားသလို operator ေတြနဲ့ တြဲသံုးပံုေတြကိုပါေသခ်ာသိထားမွ အသံုးခ်နိုင္မွာၿဖစ္လို ့ ေသခ်ာေလ့လာရမယ့္ အခန္းၿဖစ္ပါတယ္ ။

emolay

Posts : 114
Join date : 2011-06-12
Age : 22

View user profile

Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum