ကြ်န္ေတာ္တို ့ SQL ထိုးတဲ့အခါက်ရင္ Order by/ group by စသျဖင့္ ကြ်န္ေတာ္တို ့ထိုးႀကတယ္ေပါ့။ Manal Sql injection Tutorial ကိုေတာ့ အရင္တုန္းက တင္ထားျပီးသားရွိတဲ့အတြက္ ကြ်န္ေတာ္မေျပာေတာ့ဘူး။ ကိုယ့္ဘာကို ရွာဖတ္ေတာ့..။ UNION SELECT အဆင့္ကို ေရာက္တဲ့အခါမွာ တခ်ိဳ ့ဆိုက္ေတြက WAF ခံထားႀကတယ္ဗ်ာ... WAF ဆိုတာ Web Application Firewall ေပါ့... အဲလိုခံထားတဲ့အခါ ကြ်န္ေတာ္တို ့ဆီမွာ 403 error ဆိုျပီး Forbidden error တစ္ခုတက္တယ္။ အဲဒီ WAF ကို Bypass လုပ္ျပီး UNION SELECT ကို ဆက္လုပ္သြားႀကတာေပါ့ဗ်ာ။
ေအာက္က ပံုစံက ကြ်န္ေတာ္တုိ့ လုပ္ေနႀကအတိုင္း ထိုးႀကည့္တယ္ေပါ့ဗ်ာ...
http://www.site.com/index.php?id=-1 UNION SELECT 1,2,3,4--
အဲဒီအခါမွာ ကြ်န္ေတာ္တို ့Forbidden Error ဆိုျပီး Error တစ္ခုတက္တယ္။
အဲဒီေတာ့ ကြ်န္ေတာ္တို ့WAF ကို bypass လုပ္ရေတာ့မယ္... bypass လုပ္နည္းေတြအမ်ားႀကီး ရွိတယ္။ အလြယ္ဆံုးနည္းကေန တစ္ဆင့္ခ်င္းေျပာသြားတာေပါ့...။
အခုစေျပာတဲ့ method ေတြက Simple Method ေတြပါ။
# Comments
ကြ်န္ေတာ္တို ့php လိုမ်ိဳး web programming language ေတြမွာ comment ေရးတယ္ဆိုတာရွိတယ္..အဲဒီ comment ေရးပံုမ်ိဳးနဲ့ UNION SELECT လုပ္ျပီး ထိုးသြားတာပါ။
http://www.site.com/index.php?id=-1/*!UNION*/ /*!SELECT*/ 1,2,3,4--
ဒါက simple method ထဲက အရိုးရွင္းဆံုးနဲ့ အလြယ္ဆံုးပါပဲ.. WAF အမ်ားစုက ဒီနည္းနဲ့ bypass လုပ္လို ့မရေတာ့တာမ်ားတယ္... အဲေတာ့ ေနာက္တစ္နည္းနဲ့ေပါ့ :D
# Change The Case of Letters
WAF မခံထားတဲ့ ဆိုက္ေတြဆို UNION SELECT ကို upper case နဲ့ပဲ ေရးေရး lower case နဲ့ပဲ ေရးေရး ျပႆနာမရွိပါဘူး။ WAF ကိုေက်ာ္ဖို ့ဆို Uppercase နဲ့ lowercase ကိုေရာေထြးေရးျခင္းနဲ့ bypass လုပ္သြားလို ့ရနိုင္ပါတယ္။
http://www.site.com/index.php?id=-1 uNIoN sELecT 1,2,3,4--
ဒီနည္းကလဲ သိပ္အသံုး၀င္တဲ့နည္းေတာ့မဟုတ္ေသးပါဘူး...။ simple ထဲကမွ အရွင္းဆံုးေလးေတြျဖစ္ေနေသးတယ္။
# Combine the previous Methods
နာမည္အတိုင္းပဲ ပထမ method ႏွစ္ခုကို ေပါင္းျပီး ထိုးႀကည့္တာပါ...
http://www.site.com/index.php?id=-1/*!uNIOn*/ /*!SelECt*/ 1,2,3,4--
ဒီနည္းကေတာ့ WAF ေတာ္ေတာ္မ်ားမ်ားကို bypass လုပ္နိုင္ပါတယ္...။
# Replace Keywords
တစ္ခ်ိဳ ့ firewall ေတြက URL ထဲမွာ Union Select ဆိုတာကို ေတြ ့တာနဲ့ ျဖဳတ္ပစ္လိုက္တယ္. အဲဒီအခါက် ကြ်န္ေတာ္တို ့ Union Select လုပ္ထားက မျပည့္မစံုျဖစ္ျပီး error ေတြ ျဖစ္ကုန္ေရာ...
အဲဒီေတာ့ ကြ်န္ေတာ္တို ့ ဒီနည္းေလးကို စမ္းႀကည့္တယ္...
http://www.site.com/index.php?id=-1 UNIunionON SELselectECT 1,2,3,4--
ဒီနည္းက အလုပ္လုပ္သြားပံုကိုသာ အဓိက သိေစခ်င္တာပါ...သိပ္အလုပ္မျဖစ္ဖူး.. :D ကြ်န္ေတာ္တို ့ UNI ေနာက္မွာ union ကိုဆက္ေရးျပီး ေနာက္က ON ကိုကပ္ေရးထားတယ္ (UNIunionON) အဲဒီမွာ သူက စစ္မယ္.. URL မွာ union ဆိုတာပါလား.. ပါရင္ျဖဳတ္လိုက္တယ္... အလယ္က union ကိုျဖဳတ္လိုက္ေတာ့ UNI နဲ့ ON နဲ့က ေပါင္းျပီး UNION ဆိုျပီး ျပန္ျဖစ္သြားတယ္ေပါ့ SELECT လဲအဲလိုပဲ.. ေနာက္ပိုင္း WAF ေတြမွာက URL ကို ထပ္ကာထပ္ကာ စစ္ေနတာ မုိ့ လို ့ဒီနည္းက သိပ္အသံုးမ၀င္ေတာ့ပါဘူး။
# Inline Comments
Inline comment ကိုသံုးျပီး WAF ေတာ္ေတာ္မ်ားမ်ားကို bypass လုပ္လို ့ရပါတယ္။ ဘယ္လိုလုပ္မလဲဆိုေတာ့ inline comment ဆိုတဲ့အတိုင္းပဲ UNION SELECT ထဲက စာလံုးတစ္လံုးကို encode လုပ္ျပီး comment ေတြနဲ့ ခံေရးတာ.. အဲလိုေရးေတာ့ Firewall ေတြလဲ UNION SELECT ကို မဖမ္းနိုင္ေတာ့ဘူး။
http://www.site.com/index.php?id=-1%55nION/**/%53ElecT 1,2,3,4--
အဲဒီမွာ %55 ဆိုတာက U ကို encode လုပ္ထားတာျဖစ္ျပီးေတာ့ %53 ဆိုတာကေတာ့ S ပါ... ႏွစ္သက္ရာကို encode လုပ္လို ့ရပါတယ္....။
OK ကြ်န္ေတာ္တို ့Simple Method ေတြကို သိျပီ။ Advanced Method ေတြကိုေတာ့ ကြ်န္ေတာ္ေနာက္မွ တင္ေပးေတာ့မယ္...။ ဒီနည္းေတြမွာ မရွင္းတာရွိရင္ ေမးလို ့ရပါတယ္... ။
Good Luck all !





0 comments:
Post a Comment