Tải bản đầy đủ (.docx) (9 trang)

Tiểu luận môn học an toàn thông tin Hacking Database mySQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (403 KB, 9 trang )

Hacking Database: mySQL
GVHD: Nguyễn Duy
Nhóm 19
SV1: Nguyễn Mạnh Tuấn - 08520439
SV2: Nguyễn Hữu Tú - 08520452
SV3: Trần Quang Vũ - 08520479
SV4: Lưu Xuân Khoa – 08520498
MMT03/UIT
NỘI DUNG
I.Lý thuyết:
1. MYSQL DATABASE:
MYSQL database là một phần mềm cơ sở dữ liệu mã nguồn mở, nhớ vào tính linh
hoạt, hiệu xuất cao, đáng tin cậy, dễ dàng cho người sử dụng và hoàn toàn miễn
phí, MYSQL đã trở thành hệ cơ sở dữ liệu phổ biến nhất trên thế giới.
2
MYSQL hoạt động bằng cách sử dụng ngôn ngữ truy vấn có cấu trúc SQL để lắng
nghe và xử lý những query và trả về giá trị tương ứng.
2. Điểm yếu:
Hệ cơ sở dữ liệu mySQL hiện nay khá hoàn thiện, chỉ có thể tấn công do việc viết
code web application chưa tốt hoặc do host không bảo mật, dẫn đến người khác
tiếp cận được.
3. Ngữ cảnh và mục đích đạt được:
MYSQL cho phép người dùng có thể đăng nhập từ xa trên các máy trạm, vì vậy có
thể lợi dụng điều này để đăng nhập vào server với những quyền user tương ứng
Sau khi đã đăng nhập vào MYSQL ta có thể làm được những việc sau:
• Thêm vào các tài khoản có quyền root để tiện cho những lần đăng nhập sau
nếu tài khoản bị chiếm là tài khoản root.
• Đọc được các thông tin nhay cảm của người dùng.
• Upload backdoor để thuận tiện cho các lần tấn công sau
• Chỉnh sửa hoặc xóa những sữ liệu của người dùng.
II. Mô hình triển khai:


- Có nhiều cách tấn công vào MYSQL phổ biến như SQL Injection, Local Attack,
XSS,…. Bằng cách kiểm tra lỗi bảo mật của website ta sẽ lựa chọn 1 cách tấn công
phù hợp và hiểu quả nhất.
Phương thức tấn công RFI(Remote file inclution): đây là phương pháp cho phép
người tấn công include 1 file điều khiển từ nơi khác về để thực thi những mã khai
thác trên site nạn nhân.
3
Hacker
Marware(Shell)Vicm's site
Ở đây ta xây dựng mô phỏng trên local.
Công cụ để tấn công:
• Trình duyệt web
• Đường dẫn đến 1 file marware từ 1 nơi khác
Các bước triển khai tấn công:
• Đầu tiên hacker sẽ truy cập vào site nạn nhân, kiểm tra lỗi
• Truyền giá trị vào site nạn nhân là 1 đường dẫn đến nơi chứa marware
• Marware sẽ được gọi về và thực thi trên site nạn nhân
• Hacker sử dụng marware được thực thi kiểm soát cấu cấu trúc mã nguồn của
site nạn nhân trên server
• Hacker tìm kiếm username và password trong mã nguồn đó để đăng nhập
vào MYSQL và thực thi những câu truy vấn.
4
III. Triển khai tấn công:
1.Kiểm tra lỗi bảo mật của website:
Xét đường dẫn al/GUI/webroot/index.php?page=about
Ta thấy biến page được truyền vào giá trị là about thong qua phương thức GET
Đây là đoạn mã sử lý:
<?php

$page= isset($_GET['page']) ? $_GET['page'] :

"default";
Include_once($page.".php");
………
Ta thấy biến $page có 2 trường hợp : 1 là giá trị truyền vào qua phương thức GET,
2 là giá trị mặc định default. Sau đó biến $pagesẽ được nối vào 1 chuỗi
“.php”vào cuối và cho vào lệnh include_once để thực thi.
Ở đây để cho tiện lợi thì người lập trình đã đặt tên những file php cần include trùng
tên với các giá trị quy định được truyền vào biến $page. Điều này vô cùng nguy
hiểm vì nếu người dùng cố ý thay đổi giá trị truyền vào bằng 1 đường dẫn đến nơi
chứa những đoạn mã độc hại thì vô tình lệnh include_oncesẽ include những
đoạn mã này vào nội dung website.
Cách kiểm tra đơn giản nhất là ta thêm 1 dấu nháy vào cuối giá trị truyền vào
Và thông báo lỗi sẽ có dạng như sau:
5
Hoặc ta có thể kiểm tra bằng cách thêm vào những ký tự sau “././”
Ký tự này là ký tự dùng để chuyển đường dẫn dến file hiện tại chưa thư mục đó.
Nếu nội dung vẫn không thay đổi nghĩa là người lập trình đã không kiểm tra biến
truyền vào.
2. Tấn công RFI:
Ta truyền vào biến page 1 đường dẫn đến nơi chứa mã độc, virus, marware,….
Ở đây ta truyền vào đường dẫn đến nơi chưa Shell C99đây là 1 virus cho phép
xem cũng như chỉnh xửa cấu trúc mã nguồn của website.
Do đây là đinh dạng file là text nên phía có đuôi .txt, sau khi truyền vào thì biến
này sẽ được nối thêm chuỗi “.php” trở thành “.txt.php” và sẽ có thông báo
lỗi
Do đó ta phải thêm dấu “?” vào cuối giá trị truyền vào để php hiểu rằng những
thành phần phía sau nó đều là biến và chuỗi “.php” ở đây sẽ được tách ra thành 1
biến khác nên hàm include_oncesẽ chỉ include file txt thôi.
Sau khi thành công, nội dung site sẽ có dạng như sau:
6

Đây là giao diện điều khiển của chương trình shell c99. Nó hiện tất cả các cấu
trúc mã nguồn của site nạn nhân, các cấu hình của php, các thư mục và quyền
hạn của user hiện hành đối với thư mục đó. Ta có thể dễ dàng thêm, xóa hoặc
sửa đổi các thư mục này. Ngoài ra nếu người quản trị server cấu hình không kỹ,
ta có thể truy cập vào các thư mục bên ngoài và thực hiện tấn công sang các site
trên cùng server đó.
Để tấn công vào MYSQL ở đây ta sẽ tìm file cấu hình kết nối cơ sở dữ liệu của
website.
7
Ở đây, cấu hình kết nối cơ sở dữ liệu nằm trong file connect.inc.php
Sau khi có được username và password ta tiến hành đăng nhập vào cơ sở dữ liệu.
Ở đây do làm trên local nên ta không phải tìm đường dẫn đến trang đăng nhập
MYSQL. Nếu làm trên website thật, thường đường dẫn đăng nhập vào cpanel cũng
như mysql thường là />Sau khi đăng nhập vào cơ sở dữ liệu, bạn có thể hoàn toàn thực hiện các thao tác
thêm, xóa, sửa trên cơ sở dữ liệu của nạn nhân.
8
III. Nhận xét:
Ưu điểm: không phải sử dụng nhiều công cụ, ta chỉ cần 1 trình duyệt web và 1
file malware từ 1 host khác.
Khuyết điểm:
• Sẽ không thể thực hiện tấn công nếu người lập trình lọc giá trị truyền vào
hoặc cấu hình allow_url_fopenhay allow_url_includetrên
server là OFF.
• Lâu vì phải tìm file cấu hình kết nối MYSQL
Cách phòng chống:
• Sử dụng câu lệnh điều kiện Switch-caseđể lọc giá trị truyề vào
• Cấu hình allow_url_fopen hay allow_url_includetrong
php.inilà OFF
• Sử dụng htaccess để rewrite đường dẫn.
• Đặt tên file cầu hình kết nối MYSQL khó đoán và đặt trong các thư mục mà

hacker không ngờ tới.
9

×