Tải bản đầy đủ (.pdf) (35 trang)

Bài tập lớn môn an toàn mạng (40)

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 (5.36 MB, 35 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN

Bài báo cáo kết thúc học phần
Học phần: An toàn mạng
Web Applications
Tools: SQLsus

Giảng viên hướng dẫn:

TS. Đặng Minh Tuấn

Sinh viên thực hiện:

Đỗ Minh Hiếu

Mã sinh viên:

B18DCAT081

Nhóm mơn học:

02

Hà Nội, 2021


MỤC LỤC
DANH MỤC CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT ........................................................... 3
LỜI MỞ ĐẦU.............................................................................................................................................. 4
1.



Tìm hiểu chung .................................................................................................................................... 5
1.1.

Web Application.......................................................................................................................... 5

1.2.

Tổng quan về SQL Injection ...................................................................................................... 6

1.3.

Giới thiệu về Kali Linux ............................................................................................................. 7

1.4.

Giới thiệu về SQLsus .................................................................................................................. 8

1.4.1.

Inband .................................................................................................................................. 9

1.4.2.

Blind ..................................................................................................................................... 9

1.5.
2.

3.


4.

Lịch sử hình thành .................................................................................................................... 10

Hướng dẫn cài đặt ............................................................................................................................. 11
2.1.

Đối với máy chạy hệ điều hành Kali Linux............................................................................. 11

2.2.

Đối với máy chạy hệ điều hành khác (Windows, Mac OS…) ............................................... 14

Bài lab, kịch bản demo ..................................................................................................................... 20
3.1.

Kịch bản ..................................................................................................................................... 20

3.2.

Demo 1........................................................................................................................................ 21

3.3.

Demo 2........................................................................................................................................ 26

3.4.

Demo 3........................................................................................................................................ 29


So sánh, đánh giá............................................................................................................................... 33

KẾT LUẬN ................................................................................................................................................ 34
Tài liệu tham khảo .................................................................................................................................... 35


DANH MỤC CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT
Từ viết tắt

Thuật ngữ tiếng Anh

Thuật ngữ tiếng Việt

HTML

HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản

HTTP

HyperText Transfer Protocol

Giao thức truyền tải siêu văn bản

SQL

Structured Query Language

Ngôn ngữ truy vấn dữ liệu có cấu trúc


URI

Uniform Resource Identifier

Định dạng tài nguyên thống nhất

Word Wide Web

Mạng lưới toàn cầu

WWW


LỜI MỞ ĐẦU
Cùng với sự phát triển nhanh chóng của công nghệ, ứng dụng web ngày càng cải
tiến và được sử dụng rộng rãi. Kéo theo là những tiềm ẩn trong việc bảo mật ứng dụng
web đang càng ngày gây quan ngại cho người dùng, do đó, vấn đề bảo mật web đang là
lĩnh vực vơ cùng nóng hổi, thu hút được nhiều sự chú ý. Ứng dụng web ngày nay dần trở
thành mục tiêu tấn công phổ biến của tin tặc, các hình thức tấn cơng của các hacker cũng
ngày càng tinh vi và phức tạp hơn. Trong các cuộc tấn cơng đó, lỗ hổng bị khai thác
nhiều nhất là SQL Injection (chiếm 68% các cuộc tấn công lỗ hổng bảo mật web đứng
đầu trên bảng xếp hạng của OWASP).
Hiện nay, trên thế giới đã phát triển rất nhiều công cụ phát hiện và khai thác lỗ
hổng bảo mật web như: Acunetix, SQLMap, Havij, BurpSuite, ZAP, SQLsus, Nmap…
nhằm đảm bảo an toàn cho người sử dụng. Trong bài báo cáo này em xin giới thiệu và
demo về SQLsus một cơng cụ đắc lực giúp các hacker có thể tấn công vào các website.
Bài báo cáo bao gồm các phần:
1. Tìm hiểu chung
2. Hướng dẫn cài đặt
3. Bài lab, kịch bản demo

4. So sánh đánh giá và kết luận


1. Tìm hiểu chung
1.1.

Web Application

Web Application (Web App) là một trình duyệt web được lưu trữ trên một server
từ xa. Được phân phối qua internet thơng qua giao diện trình duyệt. Nó được thiết kế với
nhiều mục đích khác nhau. Hơn nữa nó cịn được sử dụng từ cá nhân đến doanh nghiệp.
Các Web app thường sử dụng để thực hiện webmail, máy tính trực tuyền hoặc bán hàng
online. Hầu hết các trình duyệt đều có thể truy cập được. Một số web app chỉ có thể được
truy cập bằng một trình duyệt cụ thể.
Các web app thường được mã hóa bằng ngơn ngữ được trình duyệt hỗ trợ chẳng
hạn như JavaScript và HTML vì các ngơn ngữ này dựa vào trình duyệt để render. Một số
ứng dụng sẽ yêu cầu xử lý từ máy chủ. Phần cịn lại thì không cần xử lý ở máy chủ. Dưới
đây là quy trình xử lý một request của web application:
 User yêu cầu (request) đến web server qua internet thơng qua trình duyệt
web hoặc user interface của ứng dụng.
 Web server chuyển tiếp yêu cầu này đến Web Application Server.
 Web application server thực hiện các yêu cầu chẳng hạn như truy vấn
database hoặc xử lý dữ liệu. Sau đó tạo kết quả của dữ liệu được yêu cầu.
 Web application server gửi kết quả đến web server với thông tin yêu cầu
hoặc dữ liệu đã được xử lý.
 Web server phản hồi lại máy khác (client) với các thông tin được u cầu.
Sau đó nó sẽ xuất hiện trên máy tính của user.
Web application nổi bật và phổ biến vì những lợi ích mà nó mang lại cực kỳ tiện
lợi. Cùng với những ưu điểm của nó như:
 Được thiết kế để mang lại cho người dùng trải nghiệm tốt hơn. Dễ dàng và

tốn ít chi phí cho việc làm hệ thống trên web với những nền tảng và nhiều
kích thước màn hình khác nhau.
 Thiết lập dễ dàng: chỉ mất vài phút để thiết lập một user mới, cung cấp
URL, username, password.
 Truy cập linh hoạt.


 Ln được cập nhật vì mọi người đều truy cập cùng một phiên bản của web
application thông qua một URL. Họ sẽ luôn truy cập vào phiên bản cập
nhật của phần mềm.
 Tăng dung lượng lưu trữ với tính năng sử dụng cloud.
Tuy nhiên ngoài những ưu điểm trên thì web application cũng có những nhược
điểm như:
 Phụ thuộc vào internet: mặc dù truy cập internet 4G và wifi nhưng nếu vơ
tình mất kết nối thì sẽ khơng thể truy cập web application.
 Tốc độ bị giảm: web application hoạt động chậm hơn so với ứng dụng web
trên server cục bộ.
 Hỗ trợ trình duyệt: rất tiếc rằng khơng phải tất cả chúng ta đều sử dụng một
trình duyệt. Điều này có nghĩa là q trình phát triển cần đảm bảo app của
mình được hỗ trợ nhiều trình duyệt.
 Bảo mật: nhiều người dùng cho rằng dữ liệu sẽ kém an tồn hơn trong
Cloud.
Chính vì vấn đề bảo mật của web application mà trong bài báo cáo này em sẽ thực
hiện một cuộc tấn công web bằng kỹ thuật inject sử dụng công cụ sqlsus được cài đặt trên
hệ điều hành kali linux.
1.2.

Tổng quan về SQL Injection
-


Khái niệm:
 SQL Injection là một kỹ thuật cho phép những kẻ tấn công lỗ hổng của việc
kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của
hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh
SQL bất hợp pháp.
 SQL injection có thể cho phép những kẻ tấn công thực hiện thao tác trên cơ
sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy.


-

Nguyễn nhân:
 Dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác không được
kiểm tra hoặc kiểm tra không kỹ lưỡng.
 Ứng dụng sử dụng các câu lệnh SQL động, trong đó dữ liệu được kết
nối với mã SQL gốc để tạo câu lệnh SQL hồn chỉnh.

-

Tính nguy hiểm của tấn công SQL Injection: Tùy vào mức độ tinh vi, SQL
injection có thể cho phép kẻ tấn cơng:
 Vượt qua các khâu xác thực người dùng.
 Chèn, xóa hoặc sửa đổi dữ liệu.
 Đánh cắp các thông tin trong CSDL.
 Chiếm quyền điều khiển hệ thống.

-

SQL Injection có thể chia nhỏ thành các dạng sau:
 In-band SQLi

 Out-of-band SQLi
 Blind-boolean-blind SQLi

1.3.

Giới thiệu về Kali Linux
Năm 2006 team bảo mật nổi tiếng Offensive Security đã phát triển một bản phân

phối Linux dựa trên nền tảng Ubuntu mang tên Backtrack. Ngay từ khi ra đời Backtrack
đã nhanh chóng trở nên nổi tiếng tồn cầu với tất cả những ai tìm hiểu về bảo mật. Với
nhiều công cụ mạnh mẽ, Backtrack tỏ ra là một vũ khí sắc bén trong việc phân tích an
tồn hệ thống mạng.
Đến tháng 3/2013 Backtrack nhận được một bản nâng cấp lớn và được nhà phát
hành đặt cho một cái tên cũng mới toanh: Kali Linux. Có thể nói Kali Linux là bản
nâng cấp tồn diện của Backtrack với những tính năng nổi bật như:
 Phát triển dựa trên nền tảng Debian do vậy Kali Linux sở hữu khả năng
đồng bộ kho lưu trữ phần mềm (repository) với kho phần mềm của Debian.
 Tăng tính năng tương thích với nền tảng ARM.
 Khả năng nâng cấp phiên bản dễ dàng nhờ vào nền tảng Dibian.


 Cộng đồng người dùng lớn, giúp bạn dễ dàng tìm kiếm sự giúp đỡ khi gặp
vấn đề.
Cịn lại vẫn là những dịng lệnh Linux quen thuộc hay những tính năng đã từng rất
quen thuộc trước đó như:
 Trên 600 công cụ kiểm thử bảo mật hacking, pentest, …
 Các công cụ thu thập thông tin mạng như Nmap, Wireshark, …
 Các công cụ tấn công mật khẩu như Aircrack-ng, Crunch…
 Và cịn rất nhiều cơng cụ hacking khác liên tục được cập nhật.
Dù được hỗ trợ mạnh như vậy nhưng Kali Linux không phải một hệ điều hành

được xây dựng cho những tình huống sử dụng hằng ngày. Phần lớn người dùng hệ điều
hành này đề là những chuyên gia an tồn thơng tin được đào tạo bài bản. Dù vậy trừ khi
bạn là một chuyên gia và có những kiến thức sâu rộng, quá trình nghiên cứu sử dụng
các Tools hacking chỉ nên thử nghiệm trên các máy ảo và các kịch bản do bạn tự dựng
nên vì một hành động khơng kiểm sốt được có thể gây thiệt hại và pháp luật có thể tìm
đến bạn.
1.4.

Giới thiệu về SQLsus
Sqlsus là một công cụ tiêm SQL mã nguồn mở, được viết bằng perl.
Thơng qua giao diện dịng lệnh, bạn có thể truy xuất (các) cấu trúc cơ sở dữ liệu,

đưa vào các truy vấn SQL của riêng bạn (thậm chí những truy vấn phức tạp), tải xuống
các tệp từ máy chủ web, thu thập dữ liệu trang web, kiểm soát cửa sau, sao chép cơ sở
dữ liệu và nhiều hơn thế nữa.
Sqlsus tập trung vào tốc độ và hiệu quả, tối ưu hóa khơng gian tiêm sẵn có, sử
dụng tốt nhất các hàm MySQL.
Nó sử dụng các truy vấn con xếp chồng lên nhau và một thuật toán tiêm mù mạnh
mẽ để tối đa hóa dữ liệu được thu thập trên mỗi lần truy cập máy chủ web.
Trên hết sqlsus là một trình kết xuất cơ sở dữ liệu cực kỳ nhanh, nó có thể inband hoặc
blind.


Nếu các đặc quyền đủ cao, sqlsus sẽ là một trợ thủ đắc lực cho việc tải lên các cửa
sau thơng qua điểm tiêm và tiếp quản máy chủ web.
Nó sử dụng SQLite như một phần mềm phụ trợ, để sử dụng dễ dàng hơn những gì
đã được kết xuất và tích hợp rất nhiều tính năng thơng thường như hỗ trợ cookie, http
proxying, https…
1.4.1. Inband
Nếu truy vấn của bạn có khả năng trả về nhiều hơn một hàng, SQLsus sẽ sử dụng

nhiều truy vấn con mà nó có thể sử dụng tại một thời điểm (mỗi truy vấn), ở dưới một
thời hạn có thể định cấu hình.
Do đó, nó có thể lấy lên đến hàng nghìn bản ghi chỉ trong 1 lần truy cập máy chủ
(tùy thuộc vào không gian tiêm có sẵn)
Khi bạn đã tìm thấy một nội dung chèn, bạn cần tìm số cột chính xác cho UNION.
SqlSus sẽ thực hiện cơng việc cho bạn, nó xác định số lượng cột cần thiết và cột nào
trong số đó phù hợp để đưa ra
1.4.2. Blind
Việc tiêm mù được hỗ trợ, sử dụng các phản hồi có điều kiện và đa luồng (thực tế,
một lần nữa, nhiều quy trình).
Cơng cụ đã được tối ưu hóa về tốc độ và lượt truy cập của máy chủ:
-

Giữ cho tất cả các chủ đề bận rộn và lượt truy cập của máy chủ:

-

Đối sánh từng mục với một vài biểu thức chính quy, trước khi sử dụng
brutefocing, để xác định không gian ký tự sẽ sử dụng, giảm rất nhiều số lần
truy cập cần thiết.


1.5.

Lịch sử hình thành
SQLsus được phát triển bởi Jérémy Ruffet với phiên bản đầu tiên là version 0.1
Các phiên bản của SQLsus là:













Version 0.1
Version 0.2
Version 0.3
Version 0.4
Version 0.41
Version 0.5 RC 1
Version 0.5
Version 0.6
Version 0.7
Version 0.7.1
Version 0.7.2

Theo thời gian trải qua nhiều phiên bản thì sqlsus đã có rất nhiều cải tiến. Phiên
bản hiện tại đang được sử dụng là 0.7.2 với một số cải tiến nỗi bật như:
 Hỗ trợ time-based blind injection.
 Có thể buộc sqlsus thốt khi nó bị treo.
 Thêm thanh tiến trình ở chế độ inband…


2. Hướng dẫn cài đặt
2.1.


Đối với máy chạy hệ điều hành Kali Linux
- Trước tiên chúng ta cần kiểm tra xem máy đã được cài đặt sẵn tools SQLsus
hay chưa

-

Như máy ở trên chưa được cài đặt sẵn tools SQLsus thì chúng ta có thể chạy
câu lệnh sau để cài đặt:

sudo apt install sqlsus


-

Do sqlsus là một tools khá cũ nên khi install như các tools mới hiện nay khơng
được do đó chúng ta cần update và install thêm libswitch- perl

-

Sau khi đã update xong chúng ta tiến hành cài đặt lại:


 Cài đặt thành công


2.2. Đối với máy chạy hệ điều hành khác (Windows, Mac OS…)
 Trước tiên cần sử dụng máy ảo (Virtualbox hoặc Vmware) để cài đặt hệ điều
hành Kali Linux
 Tạo một máy ảo mới và chọn hệ điều hành tương ứng


 Thêm file .iso


 Cài đặt ngôn ngữ

 Lựa chọn khu vực


 Cài đặt mạng

 Cài đặt mật khẩu


 Lựa chọn phân vùng ổ đĩa


 Chờ đợi q trình cài đặt hồn tất


 Đăng nhập

 Sau khi cài đặt máy ảo Kali thành cơng thì chúng ta sẽ cài đặt tools
SQLsus (như phần 2.1). Phần này đã được trình bày ở trên nên em xin
phép khơng trình bày lại ở đây.


3. Bài lab, kịch bản demo
3.1.


Kịch bản
-

Bước 1: Lựa chọn website tấn cơng.

-

Bước 2: Khởi chạy file cấu hình
sqlsus –g <tên file>

-

Bước 3: Sửa đổi đường link mặc định trong file cấu hình bằng đường link đến
trang web cần tấn công.
nano <tên file>

-

Bước 4: Start tools sqlsus.
sqlsus
start

-

Bước 5: Sử dụng các câu lệnh get để thu thập thông tin về database, tables,
columns.
get database
get tables
get columns


-

Bước 6: Sử dụng các câu lệnh sql như select để thu thập thông tin chi tết về các
cột, các bảng trong database.
select * from <table_name>

 Sau khi đã thu thập được các thông tin cần thiết chúng ta có thể thực
hiện các hành động tiếp theo như đăng nhập trang web, tài khoản
ngân hàng, …


3.2.

Demo 1
-

Lựa chọn trang web để tấn công:
/>
-

Mở tools sqlsus và khởi tạo file cấu hình:


-

Mở file cấu hình và thay đổi đường link đến trang web muốn tấn công:

-

Khởi động sqlsus và tiến hành quét dưới quyền quản trị viên:



-

Lấy thông tin về database của trang web:

-

Lấy thông tin về các bảng trong database:


-

Lấy thơng tin chi tiết về các cột có trong bảng:

-

Lấy thông tin về uname, pass trong bảng users:


-

Dùng thông tin về user vừa lấy được để truy đăng nhập

 Vì đây là website chuyên dùng để tấn công demo nên sau khi đăng
nhập thành công em đã thay đổi thông tin mặc định của website.


×