BkavCR
VIP Members
-
27/09/2013
-
106
-
203 bài viết
[Writeup] Chủ đề WebVuln - Vòng loại WhiteHat Grand Prix 2014
Link tải đề:
Web 200
http://grandprix.whitehat.vn:8014/6f9402925c55674b83536ad3d89d8971
Web 400
http://grandprix.whitehat.vn:8014/582a013d1336d7d4958590d36aa4b3e3/
Mời các bạn viết Writeup và cùng thảo luận về Chủ đề WebVuln - Vòng loại WhiteHat Grand Prix 2014.
BQT cập nhật Writeup hay và đầy đủ nhất của Team REBD
1. Web200
2. Web400
by bibo
Web 200
http://grandprix.whitehat.vn:8014/6f9402925c55674b83536ad3d89d8971
Web 400
http://grandprix.whitehat.vn:8014/582a013d1336d7d4958590d36aa4b3e3/
Mời các bạn viết Writeup và cùng thảo luận về Chủ đề WebVuln - Vòng loại WhiteHat Grand Prix 2014.
BQT cập nhật Writeup hay và đầy đủ nhất của Team REBD
1. Web200
Mã:
- Dùng Firebug của FF để decode Javascript
- Excute đoạn code này
- Get password
- Submit
- Get flag
2. Web400
Mã:
- Bài này có 2 vị trí tiềm năng có thể gây lỗi: trang view tin tức và trang view ảnh
- Không SQL injection, không XSS
- Ở trang view ảnh: thử inject: ?album=./love => không báo lỗi => chúng ta có lỗi Local File Inclusion.
- Với LFI trong tay, bước tiếp theo thường là read code trên server => thử inject: ?album=./index.php => Fail. Có lẽ tác giả không muốn ta tiếp cận theo hướng này. Thử các tập tin thú vị khác, thì success ở .htaccess (?album=./.htaccess).
- Tập tin .htaccess không có nội dung nào thú vị, đến đây thì bí ý tưởng. Thử tiến hành directory/file scanning thì phát hiện một directory thú vị là adminwww, bước ngoặt của bài này là đây.
- Truy cập adminwww, một HTTP authen bật ra. Hmm, ta cần một tài khoản. Với vũ khí LFI trong tay, ta biết là ta có thể có tài khoản đăng nhập thông qua tập tin .htpasswd
- Với request: ?album=adminwww/.htpasswd, ta có tài khoản đăng nhập adminwww: sup3r_4dm1n:$apr1$qbdYQbbG$Z5WLB6CphGAnWhAxSWtmw/. May mắn là password này có thể crack được trong vòng một nốt nhạc(sử dụng John de ripper).
- Truy cập adminwww, màn hình hiện ra một trang login, một trang register. Với tài khoản register không thể login thành công. Có lẽ tác giả muốn ta login bằng admin.
- Sau vài phép thử đăng nhập, nhận thấy ứng dụng kiểm tra username tồn tại trước, sau đó mới kiểm tra username và password correct.
- Thử vài SQL injection cơ bản, nhận thấy ý đồ tác giả muốn ta sử dụng ký tự "\" (backslash) để tấn công qua việc không tổ chức kèm cặp (filter) ký tự này. Nhưng ta không thể thoải mái sử dụng backslash vì khi reg, backslash bị chuyển thành \$.(1)
- Thử register vài username hơi dài so với quy định, nhận thấy bắt đầu ở len(username)=16, có thể register với cùng một username một cách thoải mái mà không bị báo lỗi username exists => có hiện tượng username truncate ở server, cụ thể là len(username)>15 thì sẽ truncate về 15. Vậy ta có thể giải quyết bài toán (1) bằng cách reg một username có dạng 'a' * 14 + '\'
- Vấn đề còn lại chỉ là bypass câu truy vấn đăng nhập, sử dụng pass: %09or%09True%23
Chỉnh sửa lần cuối bởi người điều hành: