1. Trang chủ
  2. » Công Nghệ Thông Tin

tài liệu hướng dẫn về các phương pháp tấn công của hacker vào các ứng dụng web bị lỗi sql

125 786 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 125
Dung lượng 7,16 MB

Nội dung

LỜI NÓI ĐẦUTài liệu này dành cho bất cứ những ai quan tâm tới bảo mật thông tin cho ứng dụng Web có sử dụng cơ sở dữ liệu, đặc biệt dành cho các quản trị Website, quản trị máy chủ Web Se

Trang 1

Tài liệu hướng dẫn về các phương pháp tấn công của hacker vào các ứng dụng

Web bị lỗi SQL

1

Trang 2

LỜI NÓI ĐẦUTài liệu này dành cho bất cứ những ai quan tâm tới bảo mật thông tin cho ứng dụng Web có sử dụng cơ sở dữ liệu, đặc biệt dành cho các quản trị Website, quản trị máy chủ Web Server có chạy các ứng dụng Web có nguy cơ tiềm ẩn và cũng là tài liệu tham khảo rất tốt cho các bạn đang theo học về quản trị mạng Tài liệu này sẽ hướng các bạn làm thế nào để có được một hệ thống giả lập về các lỗi SQL Injection của ứng dụng Web, cách sử dụng các công cụ hỗ trợ trong việc tấn công vào các ứng dụng Web bị lỗi SQL Injection

Vì đây là tài liệu hướng dẫn về các phương pháp tấn công của hacker vào các ứng dụng Web bị lỗi SQL Injection, phương châm của chúng tôi là “Hack không phải là phá hoại – Hack để bảo mật hơn !” Nên chúng tôi xin nhắc nhở các bạn đây chỉ là tài liệu có tính chất tham khảo thực hành LAB, chúng tôi không chịu trách nhiệm việc các bạn dùng kiến thức này vào việc vi phạm pháp luật nhà nước Công Hòa Xã Hội Chủ Nghĩa Việt Nam

Cuối cùng thì chân thành cám ơn tài liệu của các tác giả O’Reilly, Kevin Spett, AirScanner và các diễn đàn về bảo mật đã cung cấp tài liệu để chúng tôi hoàn thành cuốn tài liệu hướng dẫn thực hành LAB này

2

Trang 3

Mọi thắc mắc xin gửi về : anhducb@gmail.com

Giới thiệu chung :

Nội dung của phần LAB của module 14 – SQL Injection thể hiện rất rõ phương châm “Hack để bảo mật hơn !”, module này bao gồm chuyên về những phương thức

và kỹ năng thực hành thâm nhập hệ thống như : quét lỗi bảo mật, truyền các lệnh thực thi trái phép, xâm nhập hệ thống máy chủ Web …của hacker để người quản trị có cái nhìn tổng quan từ phía những hacker để thực hiện chế độ bảo mật cho Web site của mình một cách tốt hơn

Vì lý do các lỗi bảo mật về SQL Injection thì rất nhiều các ứng dụng Web bị mắc phải Do đó trong giới hạn của tài liệu này tôi lấy một ví dụ điển hình về lỗi SQL Injection đó là lỗi ứng dụng Web ASP (Active Server Pages) làm ví dụ để hướng dẫn trong phần LAB của module này

Mục tiêu :

Tham gia quản trị bảo mật hệ thống máy chủ chạy các ứng dụng Web có sử dụng cơ sở dữ liệu ở các tổ chức, công ty, xí nghiệp, cơ quan

- Nắm vững các phương pháp khảo sát, đánh giá mức độ an ninh mạng

- Nắm vững các kỹ năng về kiến thức, thực hành và kinh nghiệm Ethical Hacking

- Xác định được nguyên nhân, nhận diện chính xác đối tượng, động cơ, cách thức của kẻ tấn công xâm nhập dữ liệu hệ thống Xác định mục tiêu, mối nguy hiểm thường trực về an ninh ứng dụng Web của tổ chức

- Phương thức thiết kế hệ thống và ứng dụng Web theo hướng bảo

mật Phương thức đối phó với sự cố khi xảy ra

- Hiểu rõ khái niệm, phương thức hoạt động của các hacker

- Biết sử dụng phương pháp và các công cụ cơ bản để kiểm tra an ninh bảo mật trên ứng dụng Web của tổ chức

Điều kiện :

- Có kiến thức về Hệ điều hành mạng Windows (tương đương MCSA)

- Có kiến thức về Hệ quản trị cớ sở dữ liệu Microsoft SQL Server (tương đương MCDBA)

3

Trang 4

- Có kiến thức về lập trình Web : HTML, ASP, PHP

Trang 5

1 Phần chuẩn bị cho bài thực hành LAB:

- Phần này yêu cầu các bạn sử dụng 2 hệ thống PC để có thể thực hành bài LAB và thấy được hiệu quả của những bài thực hành

- Tốt nhất các bạn nên sử dụng công cụ tạo máy ảo(VMware

Workstation, Micsoft Virtual PC) để có thể thực hiện tốt phần thực hành LAB

- Ở đây tôi sẽ đưa ra mô hình thực hành như sau :

- Trong đó máy Attack sẽ sử dụng Windows XP sp2 và máy chủ Web

là victim sử dụng Windows 2000 Server

1.1 Máy chủ Web Server victim :

1.1.1 Một hệ điều hành (OS) Microsoft Windows 2000 Server :

- Tôi sử dụng phiên bản Windows 2000 Server để hướng dẫn các bạn thực hành bài LAB này cho thuận tiện

5

Trang 6

- Việc làm sao để có hệ điều hành trên tất nhiên các bạn đã biết tôi sẽ không nhắc tới, bên cạnh đó ta cần có 1 Web Server chạy trên nền Web Server IIS 5.0 (Internet Information Service) Phần này các bạn đã học qua môn MCSA (Microsoft Certified System Administrator ) tất nhiên phải biết cách cài đặt gói phần mềm Web Server này ở đâu ra

- Ở đây tôi xin nhắc lại để những bạn nào chưa biết có thể biết cách cài đặt gói phần mềm này để phục vụ cho bài thực hành LAB dưới đây

- Vào Start  Setting  Control Panel  Add / Remove Programs

- Chọn Add / Remove Windows Components

- Chọn dấu chọn gói Internet Information Services (IIS), gói phần mềm này sẽ chạy được các ứng dụng Web Application ASP

6

Trang 7

- Chọn Next 

7

Trang 8

- Chờ hệ thống cài đặt gói phần mềm IIS vào

8

Trang 9

- Chọn Finish

- Đến đây ta đã chuẩn bị xong phần Web Server cho hệ thống victim

để phục vụ bài thực hành LAB dưới đây

1.1.2 Một hệ quản trị cơ sở dữ liệu (database) Microsoft SQL Server 2000 :

- Tôi sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2000 Standard để hướng dẫn cho các bạn bài thực hành LAB này cho thuận tiện

- Việc làm sao để có và cách thức cài đặt gói phần mềm hệ quản trị cơ

sở dữ liệu Microsoft SQL Server thì bạn nào đã học qua MCDBA

(Micosoft Certified Database Administrator ) tất nhiên phải biết cách cài đặt và sử dụng như thế nào

- Ở đây tôi xin nhắc lại một cách cơ bản để các bạn chưa biết có thể tự mình cài đặt gói phần mềm này để phục vụ cho bài thực hành LAB dưới đây

- Chọn file  setup.bat (trong thư mục gốc cài đặt)

9

Trang 10

- Chọn Next 

10

Trang 11

- Chọn Local Computer  chọn Next 

11

Trang 12

- Chọn Create a new instance of SQL Server, or install Client Tools  chọn Next 

12

Trang 13

- Chọn Next 

13

Trang 14

- Chọn Server and Client Tools  chọn Next 

14

Trang 15

- Chọn Yes 

15

Trang 16

- Điền CD key vào và chọn Next 

16

Trang 17

- Để mặc định Default  chọn Next 

17

Trang 18

- Chọn Custom  chọn Next 

18

Trang 19

- Chọn Next 

19

Trang 20

- Chọn Use the same account …  chọn Use the Local System account  chọn Next 

20

Trang 21

- Chọn Mixed Mode (Windows Authentication and SQL Server

Authentication)  chọn Blank Password (Chú ý : do ở đây làm thực hành LAB tôi sẽ để password rổng, trên thực tế không ai làm điều này !)

 Chọn Next 

21

Trang 22

- Chọn Next 

22

Trang 23

- Chọn Muti – Protocol  chọn Enable Multi – Protocol Encryption

 chọn Next  (Chú ý : Các bạn hãy chú ý và nhớ port number của

Microsoft SQL Server “1433” để phục vụ cho bài thực hành LAB dưới đây)

23

Trang 24

- Chọn Next 

24

Trang 25

- Chọn Per Seat for :  nhập vào 10 (Ở đây tôi chọn là 10)  chọn Continue .

25

Trang 26

- Chờ trong giây lát để hệ thống cài đặt gói phần mềm vào 

26

Trang 28

- Chọn Finish 

28

Trang 29

- Đến đây ta chuẩn bị xong phần Microsoft SQL Server cho hệ thống victim để phục vụ bài thực hành LAB dưới đây

1.1.3 Một source Web Application bị lỗi SQL Injection :

- Tôi sử dụng một bộ source Web Application ASP bị lỗi SQL

Injection của “Juggy Bank” để hướng dẫn các bạn chuẩn bị cho bài thực hành LAB này một cách thuận tiện

- Vào Start  Programs  Microsoft SQL Server  Enterprise Manager 

29

Trang 30

- Start SQL 

30

Trang 31

- Vào Start  Programs  Microsoft SQL Server  Query Analyzer

31

Trang 32

- Chọn SQL Server Machine (Ở đây tôi chọn máy victim vừa cài đặt xong)  OK 

32

Trang 33

- Import dữ liệu database vào SQL Server 2000  File  Open (Ctrl + Shift + O)  đường dẫn đến thư mục source Web Application (Ví dụ : Desktop\Sql\data)  chọn “juggybank.sql”  Open

33

Trang 34

- Execute query (F5)  Close

34

Trang 36

- Click chuột phải  chọn All tasks  chọn Import data  chọn Next 

36

Trang 37

- Data Source :  chọn Text File 

- File name :  đường dẫn đến thư mục source Web Application (Ví

dụ : Desktop\Sql\data)  chọn “juggybank-userinfo-data.txt”  Open

37

Trang 38

- Chọn Next 

38

Trang 39

- Chọn Next 

39

Trang 40

- Chọn Next 

40

Trang 41

- Database :  chọn “juggybank”  chọn Next 

41

Trang 42

- Destination :  chọn “userinfo”  chọn Next 

42

Trang 43

- Chọn Next 

43

Trang 44

- Chọn Finish 

44

Trang 45

- Chọn OK 

45

Trang 46

- Chọn Done 

46

Trang 47

- Click chuột phải  chọn All tasks  chọn Import data  chọn Next 

47

Trang 49

- Data Source :  chọn Text File 

- File name :  đường dẫn đến thư mục source Web Application (Ví

dụ : Desktop\Sql\data)  chọn “juggybank-usercreditcard-data.txt”  Open

49

Trang 50

- Chọn Next 

50

Trang 51

- Chọn Next 

51

Trang 52

- Chọn Next 

52

Trang 53

- Database :  chọn “juggybank”  chọn Next 

53

Trang 54

- Destination :  chọn “Creditcard”  chọn Next 

54

Trang 55

- Chọn Next 

55

Trang 56

- Chọn Finish 

56

Trang 57

- Chọn OK 

57

Trang 58

- Chọn Done 

58

Trang 59

- Chọn thư mục source Web Application (Ví dụ : Desktop\Sql)  click chuột phải  chọn Properties  chọn Tab Web Sharing 

59

Trang 60

- Chọn Share this folder  chọn Directory browsing  chọn OK

60

Trang 61

- Chọn OK 

61

Trang 62

- Vào Start  Programs  Administrative Tools  Data Sources (ODBC) 

62

Trang 63

- Chọn Table System DSN  chọn Add 

- Chọn SQL Server  chọn Finish 

63

Trang 64

- Name :  nhập “juggybank” (Ở đây tôi chọn “juggybank” làm ví dụ)  Server :  chọn máy victim (Ở đây tôi chọn “CEH-LAB”)  chọn Next 

64

Trang 65

- Chọn With SQL Server authentication …  Login ID :  nhập vào

SA (Đây là username admin của SQL Server)  Password :  để trống (Vì khi ta cài đặt Microsoft SQL Server để password của SA là rổng)  chọn Next 

- Change the default database to :  chọn “juggybank” (tên của database ta vừa tạo lúc ban đầu)  chọn Next 

65

Trang 66

- Chọn Finish 

- Chọn Test Data Source … 

66

Trang 67

- Chọn OK 

- Chọn OK 

67

Trang 68

- Chọn OK 

68

Trang 69

- Đến đây ta chuẩn bị xong phần source Web Application ASP (bị lỗi SQL Injection) cho hệ thống victim để phục vụ bài thực hành LAB dưới đây

1.2.1 Scan System Web Server – Quét cổng dịch vụ máy chủ Web :

- Trong phần scan này tôi giới thiệu 3 công cụ dễ sử dụng nhất là Angry IP Scanner ver 2.21, Super Scan ver 3.0 và SQL Scan ver 1.00

Angry IP Scanner 2.21 : Đây là công cụ dùng để quét 1 dãi (rang ip)

IP trên toàn hệ thống mạng

Super Scan 3.0 : Đây là công cụ quét toàn bộ dãi IP và các port đang được open của các IP đó trên toàn bộ hệ thống mạng

69

Trang 70

SQL Scan 1.00 : Đây cũng là công cụ quét toàn bộ dãi IP và port thì

do ta chỉ định (ví dụ: 1433 – 1434 port SQL server) trên toàn hệ thống mạng

70

Trang 71

1.2.2 Exploit – Khai thác lổ hổng :

- Trong phần này tôi giới thiệu cho các bạn 2 công cụ Exploit căn bản nhất của lỗi SQL Injection như sau : SQLExec ver 1.0, Shadow Database Scan ver 1.0.0.63, THCsql ver 0.1, Netcat, forceSQL và SQLdict ver 2.1

- Vì đây là những công cụ căn bản nhất để Exploit nên các bạn cần tìm hiểu thêm về chúng thông qua Internet và các diễn đàn về bảo mật

- Và lưu ý có một số công cụ sử dụng câu lệnh để khai thác lổ hổng

và không support cho GUI

SQLExec ver1.0 : Đây là công cụ khai thác lỗ hổng của SQL

Injection, khai thác trực tiếp vào xp_cmdshell

71

Trang 72

Shadow Database Scan ver 1.0.0.63 : Đây là công cụ quét thăm dò các lổi bảo mật của ứng dụng Web và hệ quản trị cơ sở dữ liệu như MSSQL Server, MySQL, Oracle, DB2…

THCsql ver 0.1 : Đây cũng là công cụ khai thác lỗ hổng của SQL Injection nhưng không tấn công trực tiếp vào xp_cmdshell

72

Trang 73

Netcat : Đây là một công cụ dùng để kết nối với cổng sau (backdoor) trên máy chủ Web bị lỗi

forceSQL : Đây là công cụ dùng để crack password username SA (System Administrator) của Microsoft SQL Server Và chỉ hỗ trợ bằng câu lệnh

73

Trang 74

SQLdict ver 2.1 : Đây là công cụ dùng để crack password username

SA của hệ quản trị cơ sở dữ liệu Microsoft SQL Server Và được hỗ trợ sử dụng bằng giao diện

74

Trang 75

2 Phần thực hành LAB :

Nội dung :

- SQL Injection là gì ?

- Attack SQL Servers – Tấn công trực tiếp vào SQL Server

- Sử dụng các kỹ thuật SQL Injection để xâm nhập trái phép vào hệ thống

- Sử dụng công cụ khai thác và tìm kiếm lổ hổng của SQL Server

- Tài liệu tham khảo

- Tóm tắt kết quả

2.1 SQL Injection là gì ?

- Khi triển khai hoặc xây dựng các ứng dụng Web trong môi trường internet, rất nhiều nhà quản trị (Administrator) hoặc các chính sách của các công ty vẫn chủ quan cho rằng việc đảm bảo an toàn, bảo mật cho toàn bộ

hệ thống máy chủ nhằm giảm thiểu xuống mức thấp nhất khả năng bị tấn công từ các hacker chỉ đơn giản là tập trung vào các vấn đề to lớn như hệ điều hành, hệ quản trị cơ sở dữ liệu, webserver sẻ được cho chạy ứng

dụng…mà họ (người quản trị và chính sách của các công ty) quên mất rằng ngay những ứng dụng chạy trên đó cũng tiềm ẩn rất nhiều lổ hổng bảo mật Một trong số các lổ hổng bảo mật đó là lỗi SQL Injection, tại Việt Nam hiện nay đã qua rồi cái thời mà người quản trị Website, Web Server chỉ làm những công việc như diệt virus, malware, w0rm…, cập nhập các bản vá lỗi

từ các hãng phần mềm hệ thống mà bỏ qua việc quan tâm đến lỗi của các ứng dụng Web Đây chính là nguyên nhân tại sao trong thời gian vừa qua không ít các Website của Việt Nam bị tấn công và đa số là đều dựa vào lỗi SQL Injection Vậy SQL Injection là gì ?

- SQL Injection là một kỹ thuật cho phép các hacker tấn công và lợi dụng lổ hổng trong việc kiểm tra dữ liệu nhập 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 để truyền vào (Injection) và thực thi các câu lệnh SQL bất hợp pháp (vấn đề này do người phát triển ứng dụng vô tình hoặc sơ suất trong quá trình phát triền ứng dụng không lường trước được) Hậu quả của việc này rất tai hại vì nó cho phép các hacker có thể thao tác xóa, hiệu chỉnh , thêm mới …do có toàn quyền trên cơ sở dữ liệu của ứng dụng, nguy hiểm hơn là server mà ứng dụng đó đang

chạy Loại lỗi này thường xuyên xảy ra trên các ứng dụng web có sử dụng

dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như Microsoft SQL Server, MySQL, Oracle, DB2 …

2.2 Attack SQL Servers – Tấn công trực tiếp vào SQL Server :

75

Trang 76

- Attack SQL Server có thể hiểu sau khi các hacker đã quét thăm dò

hệ thống máy chủ Web và có được thông tin về máy chủ Web như hệ điều hành, Web Server, hệ quản trị cơ sở dữ liệu …và các thông tin về các port đang được open trên Web Server Và lúc này có thể do vài lý do hoặc cũng

có thể do sở thích mà các hacker không tấn công vào các ứng dụng Web, mà

họ lại sử dụng các Bug được Publish trên các diễn đàn về bảo mật, tấn công trực tiếp vào máy chủ Web đang bị lỗi SQL Injection để có được nhiều thông tin hơn hoặc có được quyền quản trị máy chủ Web đang bị lỗi SQL Injection trên

- Vì vậy ta cần hiểu ở đây, khi máy chủ Web chạy thêm bất cứ một dịch vụ nào tất nhiên sẽ open một port nào đó thì đây chính là nguy cơ tiềm

ẩn bị tấn công từ các hacker

- Từ ví dụ dưới đây ta có thể thấy sự nguy hiểm luôn luôn tiềm ẩn từ các dịch vụ đang được chạy trên máy chủ Web Ví dụ dưới đây là sự tấn công giữa một máy Attackid (Windows XP SP2) và máy chủ Web (Windows

2000 Server) đang chạy dịch vụ hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2000 Standard

- Hacker sẽ thăm dò sơ qua về Website (ví dụ :

http://athena.com.vn/Sql/client.htm )

76

Trang 77

- Hacker sẽ thử kiểm tra xem Website này có sử dụng hệ quản trị cở

sở dữ liệu không ?

77

Trang 78

- OK  như vậy Website này hiện đang có 1 lỗi SQL Injection trong file login.asp tại line 5

78

Trang 79

- Hacker lúc này tiếp tục kiểm tra IP của Website này

- OK  hacker đã có IP của Website và tiếp tục quét port SQL Server của Website (port 1433 - 1434), để đảm bảo rằng port này đang ở trạng thái open trên Web Server

79

Trang 80

- OK  như vậy đến lúc này hacker đã có quá đầy đủ thông tin về Web Server đang bị lỗi SQL Injection

- Đến đây có thể do nhu cầu tấn công vào ứng dụng Web không còn thu hút hacker, họ bắt đầu chuyển qua hành động tấn công trực tiếp vào port của SQL Server đang ở trạng thái open Và sử dụng công cụ SQLExec ver 1.0 để tấn công vào máy chủ Web Server bị lỗi SQL Injection

80

Ngày đăng: 11/07/2014, 00:23

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w