Padding Oracle – Pentesterlab [writeup]

ဒီရက္ပိုင္းအလုပ္ေတြရွုပ္ေနတာရယ္ Download မဆြဲႏိုင္တာရယ္ေၾကာင့္ VM ေတြေတာင္သိပ္မလုပ္ျဖစ္ဘူးျဖစ္ေနတယ္။ ဒီဟာေလးကေတာ့ Vulnhub မွာလဲတင္ထားတယ္ ။ Pentesterlab က Padding Oracle ဆိုတဲ့ VM ေလးတစ္ခုျဖစ္ပါတယ္။ File Size က 24 Mb ပဲဆုိေတာ့ တတ္ႏိုင္တယ္။ ဒါေၾကာင့္ရယ္ ေနာက္ထပ္ အေၾကာင္းတစ္ခုက Weak Cryptography အေၾကာင္းေလးပါ နားလည္ေစႏိုင္တဲ့ VM ေလးျဖစ္ေတာ့ လုပ္ျဖစ္သြားတာပါ။

Vulnhub Link

အဓိကျဖစ္ရတဲ့အေၾကာင္းကေတာ့ ဒီ Website က session ကို Cipher Block Chaining (CBC) Mode ကိုသံုးျပီး encrypt လုပ္ထားတာျဖစ္ပါတယ္။ Block Cipher Mode of Operation Wiki

Padding

Block Cipher ေတြမွာ လြတ္ေနတဲ့ေနရာေတြကုိ တူညီတဲ့ Bytes ေတြနဲ႕ျဖည့္သြားပါတယ္။ ေအာက္ကပံုေလးက သေဘာေပါက္ေစမွာျဖစ္ပါတယ္။

Encrypted Data ကို decrypt လုပ္ျပီးသြားတဲ့အခါမွာ ပိုေနတဲ့ padding ေတြကိုဖ်က္ပစ္လိုက္တယ္။ ဒီလိုဖ်က္တဲ့အခ်ိန္မွာ invalid ျဖစ္ေနတဲ့ padding ေတြမွာ error , lacks of results , slower response စတာေတြျဖစ္တတ္ပါတယ္။ ဒါေတြအေပၚမူတည္ျပီး decrypt လုပ္လို႕ရတယ္ဆိုတဲ့ အားနည္းခ်က္ရွိပါတယ္။

ဒါဆိုရင္ က်ေနာ္တို႕ Lab ကိုေျဖၾကည့္ၾကတာေပါ့။

က်ေနာ္တို႕ Session ေတြရဖို႕ဆိုေတာ့ပထမဆံုး register လုပ္လိုက္မွျဖစ္မယ္။ ဒီေတာ့ ကိုယ့္ acc ကိုယ္ create လုပ္လိုက္မယ္။

Ok ဒီလိုဆိုရင္ေတာ့ luna ဆိုတဲ့ user အတြက္ session ရွိေနပါျပီ။ ဒါေလးကိုၾကည့္ရေအာင္

ဒီရလာတဲ့ cookie ေတြကို decrypt လုပ္ဖို႕လိုပါတယ္။ ဒီေနရာမွ နည္းနည္း သိထားရမွာက ဘယ္လိုအခ်ိန္မ်ိဳးေတြမွာ ဒီလို Vulnerability ရွိလဲဆိုတာသိဖို႕လိုပါတယ္။ အဓိကကေတာ့ user အေနနဲ႕ ဘယ္၂ခါပဲ login ၀င္၀င္ cookies value ေတြကေျပာင္းလဲသြားျခင္းမရွိဘူးဆိုရင္ေတာ့ တကယ္လို႕မ်ား က်ေနာ္တို႕ admin user အတြက္ cookie ကို generate လုပ္လို႕ရရင္ admin အေနနဲ႕၀င္သြားႏိုင္ျပီဆိုတာပါပဲ။

ဒီေတာ့ကာ admin အေနနဲ႕ generate မလုပ္ခင္ သူ႕နဂိုဟာကို decrypt လုပ္ဖို႕လိုပါတယ္။ အဲဒီအတြက္ kali မွာ builtin ပါ၀င္တဲ့ padbuster ဆိုတဲ့ tool ကိုသံုးပါမယ္။

padbuster http://192.168.0.101/login.php mUq%2BTcrlhoCn9xn4vzXo0MpmWrMfWTWk 8 --cookies auth=mUq%2BTcrlhoCn9xn4vzXo0MpmWrMfWTWk -encoding 0

First Block

Second Block

ဒီေတာ့ က်ေနာ္တို႕ user=luna ဆိုတဲ့ plain text ရပါျပီ။ ဒါကိုက်ေနာ္တို႕ admin အေနနဲ႕ encrypt ျပန္လုပ္ျပီး Cookie ေနရာမွာအစားထိုးမွာျဖစ္ပါတယ္။ user=admin

padbuster http://192.168.0.101/login.php mUq%2BTcrlhoCn9xn4vzXo0MpmWrMfWTWk 8 --cookies auth=mUq%2BTcrlhoCn9xn4vzXo0MpmWrMfWTWk -encoding 0 -plaintext user=admin

Result

ဒါကို က်ေနာ္တို႕လက္ရွိ cookie နဲ႕ျပန္ခ်ိန္းမယ္။

Bravo 😀

Thanks for reading 😀

Refrence : Pentesterlab

1 Comment

Comments are closed.