Thứ Tư, 25 tháng 2, 2009

hackthissite.org (HTS) : web bacsic missions walk through (1-10)

Hôm nay có chút thời gian ngồi làm mấy cái hack game một cách chi tiết, post lại đây để các bạn yêu thích hack game tham khảo. Kiến thức của 10 bài web bacsic missions này rất đơn giản nhưng để vượt qua hết cũng cần những kiến thức căn bản. Những bài này tôi đã chơi từ rất lâu rồi hồi 2006 thì phải. Nay ngồi tổng hợp lại cho bài bản big grin . Dân dần tôi sẽ có gắng post đầy đủ và chi tiết các nội dung khác nữa của phần hack game (application, javascript,...)

Kiến thức yêu cầu cho 10 bài này :
- Trình duyệt Firefox (hay một cái tương tự) + một số add-on (cookie manager,...)
- View-source
- html
- javascript
- cookie
- SSI (server side include)
- một tẹo UNIX command
---> có vẻ tạm ổn rồi

Cách tiếp cận : đọc giới thiệu của mỗi mission + đọc gợi ý của mission.

Web bacsic mission 1
http://www.hackthissite.org/missions/basic/1/



View-source của trang web này, bạn sẽ nhìn thấy mật khẩu của nó. Đây là bài đơn giản nhất. Theo đúng tư duy của người lập trình mới.







Web bacsic mission 2
http://www.hackthissite.org/missions/basic/2/


Theo nội dung thông báo:
Network Security Sam set up a password protection script. He made it load
the real password from an unencrypted text file and compare it to the
password the user enters. However, he neglected to upload the password
file...
Sam so sánh mật khẩu không mã hóa từ một file text vơi mật khẩu được nhập vào. Tuy nhiên anh ta quên mất upload file...
--> nếu bạn đánh vào mật khẩu để trống (empty password) thì sao ?




Web bacsic mission 3
http://www.hackthissite.org/missions/basic/3/


View source :








Web bacsic mission 4
http://www.hackthissite.org/missions/basic/4/
Desc : An email script has been set up, which sends the password to the administrator. Requirements: HTML knowledge, an email address

View source :



Để ý thấy rằng mật khẩu sẽ được gửi vào mail webmaster@hulla-baloo.com. --> đổi mail này thành mail của bạn.
Save lại file HTML và sửa lại thành:



Sau đó chạy file đó và nhận được kết quả happy





Web bacsic mission 5
http://www.hackthissite.org/missions/basic/5/
Desc : Similar to the previous challenge, but with some extra security measures in place. Requirements: HTML knowledge, JS or FF, an email address.

Yêu cầu biết : HTML, Javascript, Firefox, email

View-source thấy như sau.



Làm tương tự Mission 4, sẽ nhận được thông báo


Điều này có nghĩa là phí server có kiểm tra referer, referer cho biết form ta gửi đến có phải từ chính trang hackthissite.org hay không ?
Vì ta chạy file từ máy tính nên hiển nhiên referer khác với referer server so sánh. Vậy là sao để qua được cái này ?
Một khái niệm là fake referer hoặc một cái khác là HTTP header manipulation sẽ giúp bạn giải quyết vấn đề này.
Kỹ thuật HTTP header manipulation được sử dụng rất rộng rãi trong web hacking.
Trong trường hợp này bạn cần có một công cụ cho phép thay đổi referer hay cao cấp hơn dùng một công cụ HTTP header manipulation. Referer là một phần của HTTP.
Trước khi dùng công cụ trên thì chưa có referer



Công cụ: refcontrol cho trình duyệt firefox (bạn có thể dùng công cụ khác)
http://www.stardrifter.org/refcontrol/



Sau đó chạy lại file html đã save lúc nãy và bấm nút send mail.








Web bacsic mission 6
http://www.hackthissite.org/missions/basic/6/
Desc : An encryption system has been set up, which uses an unknown algorithm to change the text given. Requirements: Persistence, some general cryptography knowledge.

Phần này là một chút tư duy về mã hóa. Bản thân mission đã đưa ra công cụ mã hóa, bạn cần dùng công cụ này để phát hiện ra quy luận. Để phát hiện ra quy luật thì cần các bộ dữ liệu thử do bạn đưa vào.


Mật khẩu đã mã khóa của tôi là c9f69jim. Quy luật như sau:
ký tự mã hóa = ký tự bạn đầu trừ đi số thứ tự của nó trong dãy mật khẩu, tính theo bảng ASCII.
VD :
c9f69jim
01234567
c-0 9-1 f-2 6-3 9-4 j-5 i-6 m-7 = c8d35ecf
Bảng mã:






Web bacsic mission 7
http://www.hackthissite.org/missions/basic/7/

Desc : The password is hidden in an unknown file, and Sam has set up a script to display a calendar. Requirements: Basic UNIX command knowledge.
Yêu cầu : cơ bản về lệnh của UNIX



Ở đây theo gợi ý thì Sam đã để file chứa mật khẩu cùng thư mục với chương trình hiển thị lịch là cal.pl (chính là ô trên).
Do sam lập trình không cẩn thận anh không lọc biến đầu vào hơn nữa việc hiển thị lịch là chạy lệnh cal của hệ điều hành. Do đó có thể lợi dụng điểm này để chạy thêm các lệnh khác. Ở đây dùng lệnh ls (tức là list) --> ô trống ở trên bạn điền vào && ls sẽ nhận được kết quả sau.




Sau đó chạy file http://www.hackthissite.org/missions/basic/7/k1kh31b1n55h.php




Web bacsic mission 8
http://www.hackthissite.org/missions/basic/8/
Desc : The password is yet again hidden in an unknown file. Sam's daughter has begun learning PHP, and has a small script to demonstrate her knowledge. Requirements: Knowledge of SSI (dynamic html executed by the server, rather than the browser)

Con gái của Sam mới học PHP muốn thực hành nội dung mình đã học là đọc file. Vô tình đã cho phép đọc cả file mật khẩu của ông bố.
Nhưng tên file mật khẩu là gì ? Ở đây Sam dùng SSI (server side include) nên có thể dùng lệnh sau để liệt kê các file và thư mục:


Khi đó sẽ nhận được file chứa mật khẩu.
Bài này đơn giản nhưng lại là lỗi phổ biến của các lập trình viên, thường thì các bạn thiếu hiểu biết về hệ thống. Giống như con gái của Sam các bạn lập trình cho đọc file, download file từ server mà không kiểm tra cẩn thận biến đầu vào nên có thể bị lợi dụng đọc file từ server, thậm chí những file cực kỳ quan trọng. Ví dụ trên Linux có thể bị đọc file /etc/passpwd, file /etc/shadow (file này là gì các bạn biết ko ? - đó là file mã hóa mật khẩu của hệ điều hành --> nguy hiểm quá nhỉ). Lỗi này tôi đã gặp rất nhiều lần, trong đó có những sản phẩm thương mại.











Web bacsic mission 9
http://www.hackthissite.org/missions/basic/9/
Desc : The password is again hidden in an unknown file. However, the script that was previously used to find it has some limitations. Requirements: Knowledge of SSI, unix directory structure.



Mission này có gợi ý rất cụ thể. Sử dụng lại công cụ của mission 8, chỉ khác là thư mục lưu file chứa mật khẩu là
/var/www/hackthissite.org/html/missions/basic/9/














Web bacsic mission 10
http://www.hackthissite.org/missions/basic/10/
Desc : This time, the password is encoded straight into the script. Whether the user is allowed in or not is determined by cookies; small pieces of information stored by the browser about the webpage that is being visited. Requirements: Javascript knowledge.

Bài này nội dung là cookie --> bạn nên tập trung vào cái này.
Để hiển thị cookie dùng lệnh :
javascript:alert(document.cookie);



Khi đó bạn sẽ nhìn thấy cookie



Chương trình này chứng thực bằng cookie, biến chứng thực là : level10_authorized
hiện tại bằng no --> đổi lại = yes là ok.

làm sao đổi lại ? trên trình duyệt đánh lệnh:
javascript:alert(document.cookie="level10_authorized=yes");





Sau đó đánh bất kỳ ký tự nào vào ok passuword --> ok




Tôi sẽ tiếp tục cập nhật các nội dung khác.

Have fun!

Không có nhận xét nào:

Đăng nhận xét

Bài đăng phổ biến