1. Trang chủ
  2. » Luận Văn - Báo Cáo

Môn học an ninh mạng Đề tài tìm hiểu về input validation

28 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm hiểu về Input Validation
Tác giả Dao Doan Duy Thang, Duong Tuan Kiet
Người hướng dẫn Phạm Dinh Thắng
Trường học Trường Đại Học Ngoại Ngữ - Tin Học Thành Phú Hồ Chớ Minh
Chuyên ngành An Ninh Mạng
Thể loại Đề tài
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 28
Dung lượng 3,04 MB

Nội dung

GIO] THIEU VE INPUT VALIDATION Input Validation — Kiểm tra dữ liệu đầu vào được thực hiện nhằm đảm bảo chỉ có những dữ liệu phù hợp đi vào hệ thống thông tin, tránh những đữ liệu độc hại

Trang 1

BO GIAO DUC VA DAO TAO Trường Đại Học Ngoại Ngữ - Tin Học Thành Phó Hồ Chí Minh

Khoa Công Nghệ Thông Tin

MÔN HỌC : AN NINH MẠNG

DE TAIL: TIM HIEU VE INPUT VALIDATION

Giáo Viên Hướng Dẫn : Thầy Phạm Dình Thắng

Thành Viên :

1 Dao Doan Duy Thang : 20DHI10174

Trang 2

TP Hồ Chí Minh, Ngày tháng năm

Trang 3

NHAN XET CUA GIANG VIEN

Trang 4

PHIẾU CHAM DIEM MON THI VAN DAP Diém phan trinh bay — Diém hé 10

Họ tên OC he6t9Sd0dtdetd9dhSeetbdsedeedeeebe

CBCT [Chữ ký;, QÁ s11 Sx 3# 3 522222 Chữ ký: 5-5 2< se seeerre

Điểm «ÓC 9 Ọ 9 4 9 4 ĐH HỌC 9 4 c9 4 9 0 6 0 09 6000 4008.06.09 0 60.0 6000 6.0009 — hd th Đo 9 in oi oi CD CĐ 9 CĐ ho CĐ ĐC Đ 0 0 0 00 600 60 0 6 0 6 0.0 6 006 Băng chữ: .- Bằng CHÑ: co Qo Q1 s.ee

Nhận xét

Điễm quá trình — Điểm hệ 10

Họ tên CBCT:

Điểm tổng kết: (Bằng chữ:

Trang 5

MUC LUC

I.GI: ỚTHI Ê VÊÊ INPUT VALIDATION à 5 5c S2 2112 10 12.1111 1x ng 111 111g nu ng

I PH UG@IG PHAP TAAN CÔNG THÔNG QUA INPUT VALIDATION cc chui

1 XML external entity - XX nh nh Hà HH HH KH TH HT KH xikrt 6

ha c9 8 6

CÔ EI Ồ äA ằố 6

Rs Fa 20 90 7

I0 ro ƑÈẰ 7 1.5 Các loại tân công XXE HH HH HH KHE KHE KH KT KĐT KHE ĐH KH Et 7

nh 7

2 Cross Site Scripting— XSS nh Hà Hà Hà Hà HH Ho HH KH HH HH 8

PP con na 4 8 2.2 Tần công XSS thực hiện như thề nào? - S1 St 212 2 E212 E12181135111115121111111 111111111 Ttrey 8 2.3 Các loại tân công XSS LH HH HH KH KHE KH KH KH KH KHE gà 9

3 Direcfory (raV€TSaÌL nhà Hà HH Hà HH HH HH HH KH HT HH HH HH HH pH HN 9 chÁc on a1 9 3.2 Phương thỨC tần CÔng - LH Tnhh HH HH HH TH HH HH TH HH HT HH TH HH kg trệt 10 h0 0) n ốố ốốằằằằắằẮ Ầ 10

"Nc oi na 10 L0) 0002 (0020 0.9) 0| sïlới:iiaiadđaiañi4ÁÝÝ 10 4.3 Phương thỨc tân công ¡th nh nh HH HT HH HH HH HH HH TT HH HH TH HH Hiện 10

II PHƯƠNG PHÁP BẢO MẬT DÙNG INPUT VALIDATION :- S 23t rét he ren re 11

Lo ROB OX tn 11 I4 00 auÀÌ ©®." 11

1.2 Ưu điểm và nhược điểm cỦa Regex - ch HH TH HH Hà HH hà ng gan 11

Trang 6

4, Kiém tra file upload .cccccscccsssssssssessssessssssssessssessusesssscsssessssessusessusesssscsssecsssessssesssecessesessesaveceaveeeess 20 4.1 Input Validation trong trong viéc kiểm tra file UPlOa oo cc cccccccsecssesessesessssessesessssetsseeseeesess 20

' sào nh 21

4.2.1 Giới hạn dung lượng cỦa file đưƯỢc uplOad c2 x22 E2 1xx ren re, 21 4.2.2 Giới hạn loại file được upload lên trang Web: - 2: tt v2 Hv 2221121111 E81 811151 8 re g 22

IV CÁC H_ Á CHÊÂ CỦA INPUT VALIDATION ccc tL t1 TH 1T ng nàng 111 1n gà nh niên 26

V KÊÂT LUẬN 5 L1 112 11021221111 Hà ng nành n1 1H11 ng te 26

Trang 7

I GIO] THIEU VE INPUT VALIDATION

Input Validation — Kiểm tra dữ liệu đầu vào được thực hiện nhằm đảm bảo chỉ có những

dữ liệu phù hợp đi vào hệ thống thông tin, tránh những đữ liệu độc hại xâm nhập và gây hại cho

hệ thống thông tin Input Validation nên được thực hiện sớm nhất có thể, nhất là ngay khi một

nguồn dữ liệu bên ngoài đi vào hệ thống thông tin

Tất cả các luồng dữ liệu đến từ các nguồn không dang tin cay (cac website, app ) cd thé

có chứa những mã độc gây hại đến hệ thống thông tin Vì vậy chúng đều phải được kiểm duyệt qua Input Validation

Input Validation không nên được sử dụng làm phương pháp chính trong việc ngặn chan những phương pháp xâm nhập vào hệ thống thông tin như SQL Injection, XSS, XXE Tuy nhiên, nêu được thiết lập cẩn thận, Input Validation có thể giảm thiểu thiệt hại từ các phương pháp tấn công trên

II PHƯƠNG PHAP TAN CONG THONG QUA INPUT VALIDATION

1 XML external entity - XXE

1.1 Giới thiệu

XXE (XML external entity) injection là một lỗ hông đã có từ lâu và hiện tại độ phủ sóng của XML trên các Web Application cũng đã giảm đi đôi chút Dù vậy, đây là một lỗ hồng một khi đã xuất hiện thì đều được đánh giá ở mức độ nghiêm trọng XXE đứng top 4/10 trong top Top 10 Web Application Security Risks cua OWASP

1.2, XML

XML được hiểu đơn giản là ngôn ngữ đánh dau mo rong Day la 1 cong cy duge phat triển để lưu trữ và vận chuyển dữ liệu Nó dùng để cấu trúc, lưu trữ va trong trao đổi đữ liệu giữa các ứng dụng và lưu trữ dữ liệu

Cụ thể hơn, chúng là những file có đuôi (extension) xml , nd giúp đơn giản hóa việc chia sẻ đữ liệu giữa các hệ thống khác nhau, vì thế nên có rất nhiều ngôn ngữ đánh đấu hay các ứng dụng khác dựa trên XML với những myc dich khac nhau (Vi du: RDF, RSS,

Trang 8

1.3 Entity

Các thực thé là 1 tính nang của định nghĩa loại tải liệu (DTD) được xác định bang cau lệnh ENTITY Các thực thê giúp ta xác định cấu trúc và sử dụng các phím tắt về cú pháp cũng như tham chiếu đến các cú pháp đó trong XML Thực thê có thể ở ngoài hoặc ở trong External entity la 1 thực thê tham chiếu đến nội dung ngoài tài liệu XXE

XXE (XML external entity) hay tấn công thực thê bên ngoài XML là lỗ hồng lợi dụng tính năng phân tích cú pháp của XML dùng để phân tích cú pháp đầu vào XML từ người dùng Từ đó kẻ tắn công có thể truy cập đến các tệp cục bộ, chạy các lệnh, quét các dịch vụ

và các công nội bộ, truy cập mạng nội bộ, từ đó có thể thực hiện 1 cuộc tấn công DOS đến máy chủ đề bị khai thác

1.4 Nguyên nhân

Về bán chất, lỗi XXE phát sinh đo bên trong XML có chứa các tính năng nguy hiểm và XML cho phép sử dụng các công cụ phân tích các tính nang nay

1.5 Các loại tấn công XXE,

® - Khai thác XXE để lấy dữ liệu tap tin

® - Khai thác XXE để thực hiện tan công SSRF

® - Khai thác blind XXE lọc dữ liệu ngoài băng

® - Khai thác blind XXE thông qua các thông báo lỗi

1.6 Hậu quả

Kẻ tấn công có thể lấy được dữ liệu của hệ thống, ngoải ra kẻ tấn công còn có thể truy

cập được tới các ứng dụng và các thiết bị phụ trợ mà ứng dụng này được phép truy cập Trong một số tình huống, kẻ tấn công có thể leo thang một cuộc tấn công XXE để xâm phạm các dữ liệu nhạy cảm của server hoặc cơ sở hạ tầng back-cnd khác, bằng cách tận dụng lễ hổng XXE để thực hiện các cuộc tấn công giả mạo yêu cầu phía máy chủ

Trang 9

2 Cross Site Scripting — XSS

2.1 Giới thiệu

Cross Site Scripting (XSS) là một trong những tấn công phố biến và đễ bị tấn công nhất mà tất cá các Tester có kinh nghiệm đều biết đến Nó được coi là một trong những tan công nguy hiểm nhất đối với các Ứng dụng web và có thê mang lại những hậu quả nghiêm trọng Giới thiệu về tấn công XSS Tấn công XSS là một đoạn mã độc, để khái thác một lỗ héng XSS, hacker sẽ chèn mã độc thông qua các đoạn script để thực thi chúng ở phía Client Thông thường, các cuộc tấn công XSS được sử dụng để vượt qua truy cập và mạo danh người dùng

Mục đích chính của cuộc tấn công này là ăn cắp dữ liệu nhận dạng của người dùng như: cookies, session tokens và các thông tin khác Trong hầu hết các trường hợp, cuộc tan cong này đang được sử dụng để ăn cắp cookie của người khác Như chúng ta biết, cookie giúp chúng tôi đăng nhập tự động Do đó với cookie bị đánh cắp, chúng tôi có thể đăng nhập bằng các thông tin nhận dạng khác Và đây là một trong những lý do, tại sao cuộc tấn công này được coi là một trong những cuộc tấn công nguy hiêm nhất

Tấn công XSS được thực hiện ở phía client Nó có thể được thực hiện với các ngôn ngữ lập trinh phía client khác nhau Tuy nhiên, thường xuyên nhất cuộc tân công này được thực

hiện với Javascript va HTML

2.2 Tấn công XSS thực hiện như thế nào?

Tấn công Cross Site Scripting nghĩa là gửi và chèn lệnh và script độc hại, những mã độc này thường được viết với ngôn ngữ lập trình phía client nhu Javascript, HTML, VBScript, Flash Tuy nhién, cach tấn công này thông thường sử dụng Javascript và HTML Cách tan công này có thể được thực hiện theo nhiều cách khác nhau, phụ thuộc vào

loại tấn công XSS, những mã độc có thể được phản chiếu trên trình duyệt của nạn nhân

hoặc được lưu trữ trong cơ sở đữ liệu và được chạy mỗi khi người dùng gọi chức năng thích hợp Nguyên nhân chính của loại tấn công này là xác thực đầu vào đữ liệu người dùng không phù hợp, dữ liệu độc hại từ đầu vào có thê xâm nhập vào dữ liệu đầu ra Mã

độc có thể nhập một seript và được chèn vào mã nguôn của website Khi đó trình duyệt không thể biết mã thực thi có phải độc hại hay không Do đó mã độc hại có thể đang được thực thị trên trình duyệt của nạn nhận hoặc bat kỳ hình thức giả nào đang được hiển thị cho

người sử dụng Có một số hình thức tấn công XSS có thể xảy ra Bên dưới là những hình thức tấn công chính cua Cross Site Scripting:

® Cross Site Scripting c6 thé xảy ra trên tập lệnh độc hại được thực hiện ở phía client

¢ Trang web hoac form gia mao duge hién thị cho người dùng (nơi nạn nhân nhập thông tin đăng nhập hoặc nhấp vào liên kết độc hại)

Trang 10

e _ Trên các trang web có quảng cáo được hiển thị

® Email độc hại được gửi đến nạn nhân Tấn công xảy ra khi tin tặc tìm kiếm những

lỗ hổng trên website và gửi nó làm đầu vào độc hại Tập lệnh độc hại được tiêm vào mã lệnh và sau đó được gửi dưới dạng đầu ra cho người dùng cuối cùng Chúng ta hãy phân tích một ví dụ đơn giản sau đây: Tưởng tượng chúng ta co | trang web với trường search, néu truong search là trường có lỗ hông, khi người dùng nhập bat kỳ

doan script thi né sé được thực thi

thé thay đổi đữ liệu hay thậm chí là chiếm quyền điều khiến server

Kiểm soát hợp lí truy cập nội dung trang web là yếu tố quyết định trong việc điều hành một máy chủ bảo mật Directory traversal là một khai thác HI'TP cho phép tin tặc truy cập đến những chỉ mục bị giới hạn, thực thi lệnh bên ngoài chỉ mục gốc của máy chủ web May chủ web cung cấp hai mức cơ ché bảo mật chính:

¢ Access Control Lists (ACLs)

¢ Root directory

Access Control List duoc su dung trong quá trình xác thực Đây là danh sách quản trị viên máy chủ sử dụng để xác định người dùng hay nhóm nảo đó có thê truy cập, thay đổi hoặc thực thí những file cụ thể trên máy chủ cũng như những quyền truy cập khác Chỉ mục gốc là chỉ mục đặc biệt trên ñle hệ thống máy chủ mà người dùng bị hạn chế trong đó Người dùng không thể truy cập bắt cứ thứ gì trong chỉ mục này

Ví dụ chỉ mục gốc mặc định của IIS trên Windows là C:\netpub\wwwroot và với cài đặt này, người dùng không thẻ truy cập vào C:\Windows nhưng có thê truy cập vào

10

Trang 11

C: Mnetpubìwwwroof\news, bat ki chi muc nao khac va file năm dưới chỉ mục gốc (giá thiết rằng người dùng hợp lệ trong ACL) Chỉ mục gốc ngăn người dùng truy cập những

file nhay cam trên máy chủ như emd.exe trên Windows hay passwd trén Linux/UNIX

3.2 Phương thức tắn công

Đẻ thực hiện một cuộc tấn công Directory Traversal, tất cả những gì tin tặc cần là

một trình duyệt web và một sô kiên thức tìm ra nơi chứa file và chỉ mục trên hệ thông

Với một hệ thống tổn tại lỗ hồng Directory traversal, tin tac cé thé lợi dụng nó để tìm

ra chi muc gốc và truy cập một phân của ñle hệ thống Điều này cho phép tin tặc xem những file bị giới hạn hay nguy hiểm hơn là tin tặc có thể thực thi những lệnh mạnh trên máy chủ, dẫn đến xâm hại hoàn toàn hệ thống Tin tặc sẽ thực thị những lệnh giả mạo thành thành viên của trang web Do đó kiểu tấn công hoàn toàn phụ thuộc vào cách thiết đặt người dùng trang web được phép truy cập những gì trong hệ thống

4 SQL Injection

4.1 Giới thiệu

SQL Injection là một kỹ thuật lợi dụng những lỗ hổng về câu truy vấn của các ứng

dụng Được thực hiện bằng cách chèn thêm một đoạn SQL để khai thác đữ liệu từ database

SQL injection có thể cho phép những ké tấn công thực hiện các thao tác như một người

quản trị web, trên cơ sở dữ liệu của ứng dụng

4,2 Sw nguy hiém cia SQL Injection

*® An cap hoặc sao chép dữ liệu của trang web hoặc hệ thống

e Thay đổi dữ liệu nhạy cảm của hệ thống

® - Người dùng có thê đăng nhập vào ứng dụng với tư cách người dùng khác

® - Người dùng có thê xem thông tin cá nhân thuộc về những người dùng khác

® - Người dùng có thê sửa đối cấu trúc của cơ sở đữ liệu

® Người dùng có thể kiểm soát máy chủ cơ sở đữ liệu, thực thi lệnh họ muốn

Trang 12

Regex là từ viết tắt của Regular Expression có nghĩa là biểu thức chính quy Đây

là một chuỗi các ký tự đặc biệt được định nghĩa để tạo nên các mẫu (pattern) Chúng được

sử dụng để phân tích cú pháp, sự trùng khớp, tìm kiếm, thay thế trong các chuỗi và đoạn ký

tự

1.2 Ưu điểm và nhược điểm của Regex

Ưu điểm: Vì các biểu thức chính quy có tac dung dé so khớp các dữ liệu đầu vào

chi tiết và cụ thê hơn Bạn có thê có thể kiểm tra, tìm lỗi và xử ly các tiện ích tìm kiếm các chuỗi từ người dùng nhập vào dựa vào những mẫu quy định sẵn Chính vì đó nên ta có thể ràng buộc được những chi tiết các dữ liệu đầu vào nhanh chóng và chính xác

Nhược điểm: Khó nắm bắt được vì nó khá trừu tượng và rắc tối, Regular

expression đòi hỏi bạn phải biết được những cú pháp mà kẻ xấu có thể sử dụng để thực hiện việc tấn công, đồng thời phải thường xuyên cập nhật để tránh bị tắn công

1.3 Triển khai

Ta xét đoạn code PHP sau :

12

Trang 13

Sẽ rất nguy hiểm nếu hacker tiêm các lệnh javascript

<script>alert(Hacked')</script> vào đoạn code trên, nó sẽ được thực thi , và hacker sẽ lấy

Trang 14

$dataGet = filter_input(INPUT_GET,'s',FILTER SANITIZE SPECIAL CHARS);

$data = preg _replace("/<script.*?>+.*?<\/script>/', ”", $ GET['s']);

Ngày đăng: 18/10/2024, 16:28

w