Search
Latest topics
Một cách đơn giản để loại bỏ các kí tự meta
Page 1 of 1 • Share •
Một cách đơn giản để loại bỏ các kí tự meta
Loại bỏ các kí tự meta như ../, |, &, ... là điều làm đau đầu những người mới bắt đầu vào nghề viết ứng dụng web nhằm ngăn chặn tấn công phê chuẩn đầu vào của hacker. Trong Perl, =~s chưa chắc đã lọc được hết các kí tự này bởi bạn có thể bị hacker chưa khâm. Một ví dụ khá điển hình là trường hợp của fileseek.cgi đã được thông báo trên bugtrap trước đây. Fileseek.cgi cố gắng lọc bỏ tất cả các kí tự '../' nhưng nó sẽ thất bại nếu hacker dùng '....//'. Fileseek.cgi làm việc như một cái máy, nó loại bỏ '../' trong '....//', kết quả trả về là '../' và hacker sẽ ung dung làm thêm vài cái '....//' để leo lên thư mục root '....//....//....//....//..../' sau đó cat file /etc/passwd.
Một cách đơn giản để loại bỏ các kí tự meta là bạn chỉ chấp nhận các kí tự thường, không cần quan tâm đến các kí tự meta.
#!/usr/local/bin/perl
$_ = $user_data = $ENV{'QUERY_STRING'}; # nhận dữ liệu từ phía người dùng
print "$user_data\n";
$OK_CHARS='-a-zA-Z0-9_.@'; # tập kí tự được cho phép
s/[^$OK_CHARS]/_/go; # gỡ bỏ các kí tự không nằm trong tập kí tự trên
$user_data = $_;
print "$user_data\n";
exit(0)
Rất đơn giản như vô cùng hiệu quả, chúng ta không cần phải quan tâm đến các kí tự ../, |, ...
* Bạn tham khảo thêm Perl CGI problems (phrack 55/9 - http://www.phrack.org/) để biết rõ về các lỗi liên quan đến các script viết bằng Perl/CGI.
Một cách đơn giản để loại bỏ các kí tự meta là bạn chỉ chấp nhận các kí tự thường, không cần quan tâm đến các kí tự meta.
#!/usr/local/bin/perl
$_ = $user_data = $ENV{'QUERY_STRING'}; # nhận dữ liệu từ phía người dùng
print "$user_data\n";
$OK_CHARS='-a-zA-Z0-9_.@'; # tập kí tự được cho phép
s/[^$OK_CHARS]/_/go; # gỡ bỏ các kí tự không nằm trong tập kí tự trên
$user_data = $_;
print "$user_data\n";
exit(0)
Rất đơn giản như vô cùng hiệu quả, chúng ta không cần phải quan tâm đến các kí tự ../, |, ...
* Bạn tham khảo thêm Perl CGI problems (phrack 55/9 - http://www.phrack.org/) để biết rõ về các lỗi liên quan đến các script viết bằng Perl/CGI.

Admin- Admin
- Tổng số bài gửi: 779
Join date: 2009-08-15

Similar topics» Cách Ép Huyền Chân Đơn Võ Lâm Truyền Kỳ Miễn Phí Phiên Bản 8.0.26
» Mu Thoi Gian
» Một số mạch điện đơn giản
» Mu Thoi Gian
» Một số mạch điện đơn giản
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum

» Hàm mã hóa MD5 bằng JavaScript
» Giá của món quà
» Sẽ chỉ yêu ai?
» Cách đọc bảng chữ cái!
» Gắn trojan, keylog, virus vào website, forum
» PictureBox Class
» TỔNG QUAN VÈ HỆ THỐNG IDS
» SỬ DỤNG ISA SERVER 2006 HẠN CHẾ TẤN CÔNG SQL INJECTION