Báo cáo
Ứng dụng web và vấn đề bảo mật
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
LỜI MỞ ĐẦU
Trong thời đại ngày này nay internet đã rất trở nên quen thuộc và là một công cụ
hữu ích để một đất nước giới thiệu hình ảnh hay đơn giản chỉ là một trang web cá nhân
của một ai đó giới thiệu về mình. Tất cả đã kéo theo sự phát triển không ngừng của các
ứng dụng web. Và dần dần khái niệm ứng dụng web đã trở nên phổ biến .Khi mà trên
internet ,ứng dụng web đã trở lên phổ biến ,ứng dụng một cách rộng rãi thì các cuộc tấn
công ứng dụng web cũng phát triển hết sức phức tạp. Điều này đã đặt ra vấn đề cấp thiết
cần làm như thế nào để bào đảm an toàn thông tin cho ứng dụng web, thông tin của người
sử dụng. Các khái niệm chuyên môn về ứng dụng web và tấn công ứng dụng web cũng
dần trở nên phổ biến hơn trong các tài liệu chuyên ngành . Các công cụ hỗ trợ người lập
trình web, người quản trị mạng cũng xuất hiện giúp tìm kiếm lỗ hổng của ứng dụng web
nhưng nó không theo kịp sự phát triển nhanh đến mức chóng mặt theo xu hướng nhanh
hơn đẹp hơn của các ứng dụng web, và tất nhiên nó không thể ngăn chặn hoàn toàn các
cuộc tấn công ứng dụng web, khi mà các cuộc tấn công ngày càng đa dạng khai thác triệt
để những lỗi của ứng dụng web, của người quản trị, hay người lập trình ứng dụng web.
Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web,nó gây
ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụng web là rất
cần thiết nhằm có cách phòng chống tấn công và bảo mật ứng dụng web hiệu quả trở
thành một yêu cầu cấp thiết…
Do đây là một xu thế tất yếu của thời, nên việc tìm hiểu và nghiên cứu về ứng
dụng web sẽ giúp ích rất nhiều cho các nhà lập trình web mới, hay các quản trị viên mới
còn ít kinh nghiệm trong việc quản trị hệ thống mạng của mình, phòng tránh , hay khắc
phục những lỗi của ứng dụng web. Bài tập lớn này được thực hiện nhằm mục đích giới
thiệu rõ hơn về ứng dụng web nhằm tránh những nhầm lẫn và đồng thời tìm hiểu về
những tấn công ứng dụng web phổ dụng nhằm có cách phòng chống ,bảo mật cho ứng
dụng web hợp lý.
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 2
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
cần tạo một tầng view mới riêng cho di động, tầng model và controller không thay dổi.
Hay nếu chúng ta muốn thay đổi database, việc đó cũng dễ dàng hơn, chỉ cần ta tạo tầng
model mới, phần view và controller không bị ảnh hưởng.
Mô hình thể hiện quan hệ của ba lớp trong ứng dụng web:
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 4
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
Hình 1: Mô hình 3 tầng của một wungs dụng web
Còn đây là mô hình của một dịch vụ ứng dụng web:
Hình2. Mô hình dịch vụ ứng dụng web đơn giản
2.2 Giao diện của một ứng dụng web
Giao diện web đặt ra rất ít giới hạn khả năng người dùng. Thông qua Java,
JavaScript, DHTML, Flash và những công nghệ khác, những phương pháp chỉ ứng dụng
mới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có
thể thực hiện được. Những kỹ thuật thông thường như kéo thả cũng được hỗ trợ bởi
những công nghệ trên.
2.3 Chức năng cơ bản của các ứng dụng web
Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chương
trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt
phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó. Ứng dụng web
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 5
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
được dùng để hiện thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn
thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năng
khác
Tất cả dữ liệu như vậy cần phải được đóng gói, lưu trữ, xử lý và truyền vận theo
một cách nào đó, có thể sử dụng ngay hoặc vào một ngày nào đó sau này. Các ứng dụng
Web, trong lĩnh vực đăng ký, đệ trình, truy vấn, đăng nhập, bán hàng và hệ thống quản lý
nội dung chính là các website widget cho phép thực hiện tất cả công việc mong muốn.
Web chính là là yếu tố cơ bản giúp doanh nghiệp tăng cường hình ảnh trực tuyến
của mình trên thế giới mạng, tạo ra và duy trì nhiều mối quan hệ đem lại lợi nhuận lâu dài
Theo mô hình MVC (Model - View - Controller).
Hình 3. Mô tả hoạt động của một ứng dụng web
Các bước hoạt động của một ứng dụng web đơn giản:
Bước 1: Browser tạo một HTTP Request gửi tới ứng dụng web.
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 7
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
Bước 2: Controller chính của Struts là class ActionServlet sẽ bắt request này, phân tích
URL của nó, và dựa vào file struts-config.xml để gửi request này tới Action class tương
ứng.
Bước 3: Action class là một class của Struts Framework. Ứng dụng của chúng tathường
extends từ class này và viết code để sử lý những business tương ứng. Chẳng hạn ta sẽ có
một LoginAction để xử lý việc user login, logout.
Bước 4: Action class có thể truy xuất, cập nhật database nếu cần thiết.
Bước 5: Khi Action class thực hiện việc xử lý business xong, nó sẽ gửi yêu cầu
forward/redirect, cùng với dữ liệu (nếu có) về controller.
Bước 6: Controller chuyển control đến trang JSP tương ứng ở tầng view. Nếu trang JSP
này có sử dụng dữ liệu, controller sẽ cung cấp cho nó (đây chính là dữ liệu mà action đã
tạo ra và đua cho controller.
Bước 7: Sau khi trang JSP đã chuẩn bị xong, Controller tạo một HTTP Response gửi về
cho browser, để browser hiển thị ra màn hình.
2.5 Vấn đề bảo mật ứng dụng web
Khi mà ứng dụng web phát triển rất nhanh về mọi mặt, khả năng ứng dụng một
cách rộng rãi thì vấn đề bảo mật cho ứng dụng web cũng được chú trọng hơn. Mặc dù
không thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, nhưng vấn đề về bảo mật
trong ứng dụng Web vẫn không ngừng tăng lên. Nguyên nhân có thể xuất phát từ các
đoạn mã không phù hợp. Nhiều điểm yếu nghiêm trọng hay các lỗ hổng cho phép hacker
xâm nhập thẳng và truy cập vào cơ sở dữ liệu tách lấy dữ liệu nhạy cảm. Nhiều cơ sở dữ
liệu chứa thông tin giá trị (như chi tiết cá nhân, thông tin tài chính) khiến chúng trở thành
đích nhắm thường xuyên của hầu hết hacker. Mặc dù hoạt động tấn công phá hoại
website doanh nghiệp vẫn diễn ra thường xuyên, nhưng bây giờ tin tặc thích tăng cường
hiểm.
Các ứng dụng Web thường truy cập dữ liệu cuối như cơ sở dữ liệu khách hàng,
điều khiển dữ liệu có giá trị và do đó rất khó để có thể tuyệt đối an toàn. Lúc này truy cập
dữ liệu thường không kèm script cho phép đóng gói và truyền tải dữ liệu. Nếu một hacker
nhận ra điểm yếu trong một script, anh ta có thể dễ dàng mở lại lưu lượng sang khu vực
khác và chia lẻ bất hợp pháp chi tiết cá nhân người dùng, dù đôi khi không hề chủ tâm
làm điều đó
Hầu hết ứng dụng Web đều là tự tạo, do đó ít có được các kiểm tra trình độ hơn so
với phần mềm cùng loại. Do đó các ứng dụng tùy biến thường dễ bị tấn công hơn.
Có thể nói ứng dụng Web là một cổng vào (gateway) của cơ sở dữ liệu, nhất là các
ứng dụng tùy biến. Chúng không được phát triển với mức bảo mật tốt nhất vì không phải
qua các kiểm tra bảo mật thông thường. Nói chung, bạn cần trả lời câu hỏi: “Phần nào
trên website chúng ta nghĩ là an toàn nhưng lại mở cửa cho các cuộc tấn công?” và “Dữ
liệu nào chúng ta đem vào một ứng dụng khiến nó thực hiện một số điều không nên
làm?”.Đó là công việc của phần mềm rà soát lỗ hổng Web.
Hiện nay , hacker có rất nhiều cách tấn công một ứng dụng web từ các kĩ thuật cơ
bản cho đến những kĩ thuật đòi hỏi kĩ thuật và công nghệ cao cao. Các công cụ(tool) hỗ
trợ ra đời ngày càng nhiều , hỗ trợ rất nhiều cho người quản trị mạng , tìm ra những lỗ
hổng để có bản vá lỗi kịp thời nhưng đồng thời nó cũng là một con dao hai lưỡi. Hacker
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 10
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
có thể dùng những tool này để phát hiện những lỗ hổng của một ứng dụng web và từ đó
sẽ có cách tấn công tương ứng vào lỗ hổng này gây ra rất nhiều tổn thất.
CHƯƠNG 2: GIỚI THIỆU VỀ CÁC THUẬT NGỮ VÀ KHÁI NIỆM LIÊN QUAN
1. Các khái niệm và thuật ngữ thường dùng
1.1 Các khái niệm chung về ứng dụng web
Web browser (trình duyệt web) là các ứng dụng phần mềm cho phép người dùng
truy vấn dữ liệu và tương tác với nội dung nằm trên trang Web bên trong website.
Trang Web là tĩnh; người dùng gửi yêu cầu một tài nguyên nào đó, và server sẽ trả
về tài nguyên đó. Các trang Web không có gì hơn là một văn bản được định dạng và phân
có thể truy nhập cơ sở dữ liệu sản phẩm và hiển thị kết quả. Sử dụng các form HTML
đơn giản và các CGI script, có thể tạo các “cửa hàng” ảo cho phép bán sản phẩm cho
khách hàng qua một trình duyệt. CGI script có thể được viết bằng một số ngôn ngữ từ
Perl cho đến Visual Basic.
Applet:Tháng 5/1995, John Gage của hãng Sun và Andressen (nay thuộc
Netscape Communications Corporation) đã công bố một ngôn ngữ lập trình mới có tên
Java. Netscape Navigator đã hỗ trợ ngôn ngữ mới này, và một con đường mới cho các
trang Web động được mở ra, kỷ nguyên của applet bắt đầu.
Applet cho phép các nhà phát triển viết các ứng dụng nhỏ nhúng vào trang Web.
Khi người dùng sử dụng một trình duyệt hỗ trợ Java, họ có thể chạy các applet trong trình
duyệt trên nền máy ảo Java Virtual Machine (JVM). Dù rằng applet làm được nhiều điều
song nó cũng có một số nhược điểm: thường bị chặn bởi việc đọc và ghi các file hệ
thống, không thể tải các thư viện, hoặc đôi khi không thể thực thi trên phía client. Bù lại
những hạn chế trên, applet được chạy trên một mô hình bảo mật kiểu sandbox bảo vệ
người dùng khỏi các đoạn mã nguy hiểm. Có những lúc applet được sử dụng rất nhiều,
nhưng nó cũng có những vấn đề nảy sinh: đó là sự phụ thuộc vào máy ảo Java JVM, các
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 12
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
applet chỉ thực thi khi có môi trường thích hợp được cài đặt phía client, hơn nữa tốc độ
của các applet là tươngđối chậm vì thế applet không phải là giải pháp tối ưu cho Web
động.
JavaScript:Cùng thời gian này, Netscape đã tạo ra một ngôn ngữ kịch bản gọi là
JavaScript. JavaScript được thiết kế để việc phát triển dễ dàng hơn cho các nhà thiết kế
Web và các lập trình viên không thành thạo Java. (Microsoft cũng có một ngôn ngữ kịch
bản gọi là VBScript). JavaScript ngay lập tức trở thành một phương pháp hiệu quả để tạo
ra các trang Web động.
Việc người ta coi các trang như là một đối tượng đã làm nảy sinh một khái niệm
mới gọi là Document Object Model (DOM). Lúc đầu thì JavaScript và DOM có một sự
kết hợp chặt chẽ nhưng sau đó chúng được phân tách. DOM hoàn toàn là cách biểu diễn
hướng đối tượng của trang Web và nó có thể được sửa đổi với các ngôn ngữ kịch bản bất
và DOM. Tập hợp các công nghệ trên cho phép các nhà pháp triển sửa đổi nội dung và
cấu trúc của một trang Web một cách nhanh chóng. Tuy nhiên, DHTML yêu cầu sự hỗ
trợ từ các trình duyệt. Mặc dù cả Internet Explorer và Netscape hỗ trợ DHTML, nhưng
các thể hiện của chúng là khác nhau, các nhà phát triển cần phải biết được loại trình duyệt
nào mà phía client dùng. DHTML thật sự là một bước tiến mới, nhưng nó vẫn cần một sự
qui chuẩn để phát triển. Hiện nay DHTML vẫn đang trên con đường phát triển mạnh.
XML:Kể từ khi ra đời vào giữa năm 1990, eXtensible Markup Language (XML)
của W3C dẫn xuất của SGML đã trở nên rất phổ biến. XML có mặt ở khắp nơi,
Microsoft Office 12 cũng sẽ hỗ trợ định dạng file XML.Ngày nay chúng ta có rất nhiều
dạng dẫn xuất của XML cho các ứng dụng Web (tất nhiên là có cả XHTML): XUL của
Mozilla; XAMJ, một sản phẩm mã nguồn mở trên nền Java; MXML từ Macromedia; và
XAML của Microsoft.
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 14
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
1.3 Các khái niệm và thuật ngữ liên quan đến tấn công và bảo mật ứng dụng web
1.3.1 Khái niệm hacker
Khái niệm hacker có từ những 50, 60 của thế kỉ trước , và cho đến nay trải qua
một thời gian phát triển khá dài hacker chia làm 4 loại:
- Hacker mũ trắng: là những chuyên gia lập trình chuyên tìm các lỗi của phần mềm
với mục đích sửa chữa, xây dựng hệ thống an toàn hơn.
- Hacker mũ đen: đối lập với hacker mũ trắng, là những hacker phá hoại và trục lợi
cho mình.
- Hacker mũ xanh/samurai: là những chuyên gia lập trình tài năng, được các hãng
như Microsoft mời về làm việc chuyên tìm lỗi cho phần mềm của họ.
- Hacker mũ xám hay mũ nâu: là những người đôi khi làm công việc của hacker mũ
trắng nhưng vẫn làm công việc của hacker mũ đen.
- Dù tự nhận mình là giới nào, họ vẫn đang làm công việc xâm nhập hệ thống thông
qua những lỗ hổng bảo mật. Vì vậy tôi sẽ sủ dụng thuật ngữ hacker để chỉ nhũng
người tấn công ứng dụng web.
1.3.2 HTTP Hearder
Các cookie được lưu trũ dưới dạng những file dữ liệu nhỏ dạng text , được ứng
dụng tạo ra để lưu trữ truy tìm nhận biết những người dùng đã ghé thăm trang web và
những vùng họ đã ngang qua trang. Những thông tin nay có thể bao gôm thông tin người
dùng, tài khoản, mật khẩu…cookie được trình duyệt của người dùng chấp nhận lưu trên
đĩa cứng của mình . Nhiều trình duyệt không tự động lưu trữ cookie mà còn phụ thuộc
vào người dùng có chấp nhận lưu nó hay không.
Những lần truy cập sau vào trang web đó ứng ứng dụng có thể sử dụng lại những
thông tin trong cookie(các thôgn tin tai khoản liên quan) mà người dùng không cần phải
đăng nhập hay cung cấp thêm thông tin gì cả.
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 16
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
Có nhiều cách phân loại cookie, phân loại theo đối tượng thiết lập của cookie.thì
cookie chia làm 2 loại: Cookie của bên thứ nhất là cookie được thiết lập bởi tên miền
trang web được liệt kê trong thanh địa chỉ. Cookie của bên thứ ba đến từ các nguồn tên
miền khác có các mục, chẳng hạn như quảng cáo hoặc hình ảnh, được nhúng vào trang.
CHƯƠNG 3: CÁC KỸ THUẬT TẤN CÔNG ỨNG DỤNG WEB CƠ BẢN
I. LÝ THUYẾT
1. Kiểm soát truy cập ( Web Access Control )
Thâm nhập hệ thống qua cửa sau (Back door).
Trong quá trình thiết kế ứng dụng, những người phát triển ứng dụng có thể càimột
“cửa sau” (back door) để sau này có thể thâm nhập vào hệ thống một cách dễdàng.
2. Chiếm hữu phiên làm việc ( Session Management )
2.1 Ấn định phiên làm việc ( Session Fixation )
Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cách gửi
một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệ
thống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành
người dùng hợp lệ.
2.2 Đánh cắp phiên làm việc
Là kĩ thuật tấn công cho phép hacker mạodanh người dùng hợp lệ sau khi nạnnhân
đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu
tấn công “session hacking”.
3.7 Thêm câu lệnh hệ thống ( OS Command Injection )
Khả năng thực thi được những câu lệnh hệ thống hay những đoạn mã được
thêmvào trong những tham số mà không có sự kiểm tra chặt chẽ như tham số của form,
cookies, yêu cầu HTTP Header, và những dữ liệu nguy hiểm trong những tập tin được
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 18
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
đưa lên trình chủ. Thành công trong kĩ thuật này giúp hacker có thể thực thi được những
câu lệnh hệ thống với cùng quyền của trình chủ.
3.8 Kí tự rỗng ( Null Characters )
Lợi dụng chuỗi kí tự thường kết thúc bằng \0 mà hacker thường thêm vào để đánh
lừa ứng dụng vì với những ứng dụng sử dụng chương trình dịch như C++ thì C++cho
rằng \0 là dấu kết thúc chuỗi.
3.9 Chèn câu truy vấn SQL ( SQL Injection )
Trong lập trình với cơ sở dữ liệu, người lập trình đã sai sót trong vấn đề kiểm
tragiá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay những giá
trị không hợp lệ để dễ dàng đăng nhập vào hệ thống.
3.10 Ngôn ngữ phía máy chủ ( Server side includes )
Là khả năng thêm vào những câu lệnh thuộc hệ thống như nhúng file (includefile),
truy xuất cơ sở dữ liệu (jdbc)…khiến cho hacker có cơ hội truy xuất đến file, cơ sở dữ
liệu…mà bình thường không thể xem được trên Web site.
3.11 Thao tác trên tham số truyền ( Parameter manipulation )
Những thông tin trao đổi giữa trình chủ và trình duyệt được lưu trữ trong
nhữngbiến như biến trên URL, biến ẩn form, cookie…Bởi vì việc kiểm soát biến chưa
được quan tâm đúng mức nên hacker có thể lợi dụng sửa đổi giá trị biến để đánh cắp
phiên làm việc của người dùng hay thay đổi giá trị một món hàng….
3.12 Từ chối dịch vụ ( DOS )
Một khối lượng lớn yêu cầu được gửi cho ứng dụng trong một khoảng thời gian
nhất định khiến hệ thống không đáp ứng kịp yêu cầu dẫn đến hệ thống bị phá vỡ.
II. Các cách triển khai tấn công ứng dụng web
tuynhiên hacker có thể sử dụng Proxy để che dấu nguồn gốc thực của nó, vì vậy cũng
không nên quá tin tưởng biến HTTP_REFERER để kiểm tra.
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 20
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
Ghép tên và giá trị của biến ẩn thành một chuỗi đơn. Sử dụng thuật toán mã
hoá MD5 hoặc một kiểu hash một chiều khác để tổng hợp chuỗi đóvà lưu nó vào một
hidden field gọi là “Chuỗi mẫu”.
Khi giá trị trong form được gửi đi, các thao tác như trên được thực hiện lại
vớicùng một khoá mà ta định trước. Sau đó đem so sánh với“Chuỗi mẫu”, nếu chúng
không khớp nhau thì chứng tỏ giá trị trong biểu mẫu đã bị thay đổi.
Dùng một sessionID để tham chiếu đến thông tin được lưu trữ trên cơ sở dữliệu.
2. Kỹ thuật tấn công SQL Injection
2.1 Kỹ thuật SQL Injection đơn giản nhất
Mục đích dùng để vượt qua các form đăng nhập.
Ví dụ 1: giả sử ứng dụng web có đoạn mã sau:
SQLQuery= “SELECT tkUsername FROM User WHERE tkUsername= ‘” &
strUsername & “’ AND Password= ‘” & tkPassword & “’”
flag= GetQueryResult (SQLQuery)
if flag = “” then
check=FALSE
else
check=TRUEend if
Đoạn mã trên kiểm tra chuỗi nhập Username và Password. Nếu tồn tại trong bảng
User thì check=true ngược lại check=false.
Giá tri nhập vào là:
Username:’ OR ‘’=’
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 21
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
Password: ’ OR ‘’=’
Câu lệnh SQL lúc này như sau:
Câu lệnh trên trả về một tập kết quả là sự kết hợp giữa tkUsername với
tkPassword trong bảng User.
2.5 Tấn công dựa vào lệnh Insert
Từ khoá INSERT dùng để đưa thông tin vào cơ sở dữ liệu. Thông thường câu lệnh
INSERT được dùng trong các trường hợp như: thông tin đăng kí người sử dụng,
guestbook…v v…
Kĩ thuật “;”, “ “ được dùng như đã từng dùng với câu lệnh SELECT, phải đảm
bảo đúng số lượng và kiểu giá trị được nhập vào nhằm tránh lỗi về cú pháp (nếu không
xác định được kiểu dữ liệu có thể nhập tất cả là số).
Ví dụ 15:
SQLString= “INSERT INTO User VALUES (‘” & strUsername & “’, ‘” &
strName& “’, ‘” & strPassWord & “’,’”& strLimitSize & “’)”
2.6 Tấn công dựa vào Stored Procedure
Stored Procedure được sử dụng trong lập trình Web với mục đích giảm sự phức
tạp trong ứng dụng và tránh sự tấn công trong kĩ thuật SQL Injection. Tuy nhiên hacker
vẫn có thể lợi dụng những Stored Procedure để tấn công vào hệ thống.
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 23
Báo cáo: Ứng dụng web và vấn đề bảo mật GVHD: Trần Công Mậu
Ví dụ 16: Stored procedure sp_login gồm hai tham số là username và password. Nếu
nhập:
Username: nhimmap
Password: ‘;shutdown
Lệnh gọi stored procedure như sau:
exec sp_login ‘nhimmap’,‘’;shutdown ’
Lệnh shutdown thực hiện dừng SQL Server ngay lập tức.
3. Kỹ thuật tấn công gây tràn bộ đệm và từ chối dịch vụ ( Buffer overflow)
Kĩ thuật này chủ yếu khai thác việc người dùng mà vượt quá lượng bộ nhớ cấp
phát ban đầu bởi ứng dụng do đó gây chohệ thống lâm vào tình trạng tràn bộ nhớ, thậm
chí có thể bị chèn thêm một đoạn mã bất kì. Nếu ứng dụng được cấu hình để được thực
thi như root thì người tấn công có thể thao tác như một nhà quản trị hệ thống của web
hơn băng thông của máy đích. Kiểu tấn công này không bị hạn chế bởi tốc độ
truyền mạng.
3.3.2 Kiểu tấn công thứ hai
Kiểu tấn công này được sử dụng khi đường truyền mạng của hacker là quá thấp so
với đường truyền của máy đích.
Không giống như kiểu tấn công DoS truyền thống ( phần 2 ), kiểu tấn công vào
băng thông lớn hơn sẽ lợi dụng những gói tin từ những hệ thống khác nhau cùng một lúc
SVTH: Trần Văn Lực – Lê Văn Hợp – Phan Văn Thắng Lớp K2 - CNTT 25