Sơ lược về kỹ thuật hack Full path disclosure ( FPD )

Hello mọi người, vừa hôm qua thì mình có viết bài hướng dẫn một số thủ thuật về XSS, các bạn có thể xem lại tại đây

Một số thủ thuật vượt qua tường lửa XSS

Nay mình giới thiệu tiếp với các bạn về một lỗi cũng rất phổ biến đó là Full Path Disclosure. Tới phần chính luôn nào.

1) Giới thiệu chung

Full path disclosure là một lỗi không quá lớn. Nhưng đôi khi nó quyết định cả vấn đề có thể khai thác được tiếp hay là không.FPD cho phép ta xác định được đường dẫn trong server.Từ đó giúp khai thác nhanh hơn, ví dụ như khi ta khai thác LFI chẳng hạn. Nếu như folder thay đổi.Ta có thể dùng cách này để xác định.

http://site.com/index.php?page=../../../../../../../home/example/public_html/includes/config.php

Nhìn vào đường dẫn trên ,để đọc được file config bằng kĩ thuật LFI (Local File Inclusion ) trước tiên ta phải xác định đc đường dẫn đến nó.Và FPD là một phương pháp giúp ta đi nhanh hơn trong việc này. ( Còn tới đâu thì mình chưa biết :))

2) Cách khai thác.

Việc tận dụng và khai thác FPD còn tùy thuộc vào nhiều yếu tố khác. Ví dụ đối với một số mã nguồn mở phổ biến thì mình có thể tham khảo để xác định được đường dẫn tới file mình cần. Ví dụ với Vbulletin 4.x hoặc 5.x thì bạn có thể check qua một số đường dẫn phổ biến sau :

/includes/api/commonwhitelist_2.php /includes/api/commonwhitelist_5.php /includes/api/commonwhitelist_6.php /includes/api/1/album_album.php /includes/api/1/album_editalbum.php /includes/api/1/album_latest.php /includes/api/1/album_overview.php /includes/api/1/album_picture.php /includes/api/1/album_user.php /includes/api/1/announcement_edit.php /includes/api/1/announcement_view.php /includes/api/1/api_cmscategorylist.php /includes/api/1/api_cmssectionlist.php /includes/api/1/api_forumlist.php /includes/api/1/api_getnewtop.php /includes/api/1/api_getsecuritytoken.php /includes/api/1/api_getsessionhash.php /includes/api/1/api_init.php /includes/api/1/api_mobilepublisher.php /includes/api/1/api_usersearch.php /includes/api/1/blog_blog.php /includes/api/1/blog_bloglist.php /includes/api/1/blog_comments.php /includes/api/1/blog_custompage.php /includes/api/1/blog_dosendtofriend.php /includes/api/1/blog_list.php /includes/api/1/blog_members.php /includes/api/1/blog_post_comment.php /includes/api/1/blog_post_editblog.php /includes/api/1/blog_post_editcomment.php /includes/api/1/blog_post_edittrackback.php /includes/api/1/blog_post_newblog.php /includes/api/1/blog_post_postcomment.php /includes/api/1/blog_post_updateblog.php /includes/api/1/blog_sendtofriend.php /includes/api/1/blog_subscription_entrylist.php /includes/api/1/blog_subscription_userlist.php /includes/api/1/blog_usercp_addcat.php /includes/api/1/blog_usercp_editcat.php /includes/api/1/blog_usercp_editoptions.php /includes/api/1/blog_usercp_editprofile.php /includes/api/1/blog_usercp_modifycat.php /includes/api/1/blog_usercp_updateprofile.php /includes/api/1/editpost_editpost.php /includes/api/1/editpost_updatepost.php /includes/api/1/forum.php /includes/api/1/forumdisplay.php /includes/api/1/inlinemod_domergeposts.php /includes/api/1/list.php /includes/api/1/login_lostpw.php /includes/api/1/member.php /includes/api/1/memberlist_search.php /includes/api/1/misc_showattachments.php /includes/api/1/misc_whoposted.php /includes/api/1/newreply_newreply.php /includes/api/1/newreply_postreply.php /includes/api/1/newthread_postthread.php /includes/api/1/newthread_newthread.php /includes/api/1/poll_newpoll.php /includes/api/1/poll_polledit.php /includes/api/1/poll_showresults.php /includes/api/1/private_editfolders.php /includes/api/1/private_insertpm.php /includes/api/1/private_messagelist.php /includes/api/1/private_newpm.php /includes/api/1/private_showpm.php /includes/api/1/private_trackpm.php /includes/api/1/profile_editattachments.php /includes/api/1/profile_editoptions.php /includes/api/1/profile_editprofile.php /includes/api/1/register_addmember.php 

/includes/api/1/register_checkdate.php /includes/api/1/search_process.php /includes/api/1/search_showresults.php /includes/api/1/showthread.php /includes/api/1/subscription_addsubscription.php /includes/api/1/subscription_editfolders.php /includes/api/1/subscription_viewsubscription.php /includes/api/1/threadtag_managetags.php /includes/api/2/album_picture.php /includes/api/2/api_blogcategorylist.php /includes/api/2/blog_blog.php /includes/api/2/blog_bloglist.php /includes/api/2/blog_list.php /includes/api/2/blog_subscription_entrylist.php /includes/api/2/blog_subscription_userlist.php /includes/api/2/blog_usercp_groups.php /includes/api/2/content.php /includes/api/2/editpost_editpost.php /includes/api/2/forumdisplay.php /includes/api/2/member.php /includes/api/2/newreply_newreply.php /includes/api/2/forum.php /includes/api/2/poll_newpoll.php /includes/api/2/poll_polledit.php /includes/api/2/poll_showresults.php /includes/api/2/private_messagelist.php /includes/api/2/private_trackpm.php /includes/api/2/profile_editattachments.php /includes/api/2/search_showresults.php /includes/api/2/showthread.php /includes/api/3/api_gotonewpost.php /includes/api/4/album_user.php /includes/api/4/api_forumlist.php /includes/api/4/api_getnewtop.php /includes/api/4/breadcrumbs_create.php /includes/api/4/facebook_getforumid.php /includes/api/4/facebook_getnewforummembers.php /includes/api/4/get_vbfromfacebook.php /includes/api/4/login_facebook.php /includes/api/4/newreply_postreply.php /includes/api/4/newthread_postthread.php /includes/api/4/register.php /includes/api/4/register_addmember.php /includes/api/4/search_findusers.php /includes/api/4/subscription_viewsubscription.php /includes/api/5/api_init.php /includes/api/6/api_getnewtop.php /includes/api/6/api_gotonewpost.php /includes/api/6/content.php /includes/api/6/member.php /includes/api/6/newthread_newthread.php /includes/block/blogentries.php /includes/block/cmsarticles.php /includes/block/html.php /includes/block/newposts.php /includes/block/sgdiscussions.php /includes/block/tagcloud.php /includes/block/threads.php /forumrunner/include/subscriptions.php /forumrunner/include/search_forum.php /forumrunner/include/profile.php /forumrunner/include/post.php /forumrunner/include/pms.php /forumrunner/include/online.php /forumrunner/include/moderation.php /forumrunner/include/misc.php /forumrunner/include/login.php /forumrunner/include/get_thread.php /forumrunner/include/get_forum.php /forumrunner/include/cms.php /forumrunner/include/attach.php /forumrunner/include/announcement.php /forumrunner/include/album.php /forumrunner/support/vbulletin_methods.php /forumrunner/support/stringparser_bbcode.class.php /forumrunner/support/utils.php /forumrunner/support/other_methods.php /packages/skimlinks/hooks/postbit_display_complete.php /packages/skimlinks/hooks/showthread_complete.php /packages/skimlinks/hooks/userdata_start.php

Đối với các mã nguồn khác như wordpress hay joomla cũng đều có những đường dẫn như này. ( Blog mình cũng chạy trên nền wordpress, khuyến khích các bạn không nên thử vì sau này không còn chỗ để đọc bài nữa)\
Tuy nhiên, nếu website không sử dụng mã nguồn mở thì ta có thể kiểm tra bằng 1 trong 3 phương pháp sau.\
Empty array: Thêm vào một empty array để yêu cầu in ra một thông báo.\
Ví dụ như thêm [] vào cuối biến index.php?page=home chẳng hạn.\
Khi ta thêm vào index.php?page[]=home sẽ nhận được thông báo như sau:

Warning: include_once() [function.include]: Failed opening " for inclusion (include_path='.:/usr/local/php5/lib/php') in/home/content/37/4936137/html/template.php on line 40

Nó có chỉ cho ta thấy đường dẫn /home/content/37/4936137/html/template.php từ đó có thể suy đoán ra đường dẫn file mà ta cần.Hoặc suy đoán được ra đường dẫn đến root folder.

+Null Session Cookie:

Một phương pháp phổ biến khác để đưa ra yêu cầu thông báo lỗi trong đó có chứa full path đó là dùng JS Injection (ở đây dùng Null Session Cookie)\
Đoạn code JS để get thông báo lỗi trên site có thể mô tả với dạng như sau 

javascript:void(document.cookie='PHPSESSID=');\
hoặc javascript:alert(document.cookie="PHPSESSID=");

Trong đó PHPSESSID được set bằng giá trị null. Như vậy chúng ta có thể nhận được một lời cảnh báo như sau

Warning: session_start() [function.session-start]: The session id contains illegal characters,\
valid characters are a-z, A-Z, 0-9 and '-,' in /home/example/public_html/includes/functions.php on line 2

+ Invalid Session Cookie

Tương tự như Null Session Cookie một session với PHPSESSID dược set >128 byte cũng sẽ cho ra thông báo lỗi với FPD.

javascript:void(document.cookie='PHPSESSID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');

Một kiểu khác cũng có tác dụng tương tự 

javascript:void(document.cookie='PHPSESSID=.');

ta có thể sử dụng một số tool để khai thác full path disclosure như inspathx ( link tải ở đây https://code.google.com/p/inspathx/)

3) Cách phòng chống.

Để phòng chống khai thác full path disclosure ta có thể ngăn chặn việc đưa ra thông báo lỗi bằng việc set trong php.ini

error_reporting(0);\
display_errors = 'off';

Hoặc trong php script thực hiện\
ini_set('display_errors',false);

Trong httpd.conf/apache2.conf set\
php_flag display_errors off

Nguồn : https://anonymousvn.org/so-luoc-ve-full-path-disclosure-fpd.hav

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Nguyễn Hợp Quang

9 bài viết.
26 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
41 13
Lỗ hổng bảo mật XSS và Bruteforce ở trang Sendo.vn Chào mọi người. Do mấy ngày rảnh rỗi không có gì làm ( Vì hè rồi mà, nên học và làm cũng nhàn ...
Nguyễn Hợp Quang viết 4 tháng trước
41 13
White
7 0
Cross Site Scripting Crosssite scripting (XSS) is a type of computer security vulnerability typically found in web applications. XSS enables atta...
Nguyễn Hợp Quang viết 10 tháng trước
7 0
White
6 0
Hiện nay do nhu cầu pentest tăng cao, số lượng tool được viết ra để phục vụ mục đích nghiên cứu ngày càng nhiều. Với kĩ thuật MITM, khi một hacker...
Nguyễn Hợp Quang viết 4 tháng trước
6 0
Bài viết liên quan
White
0 0
Mấy ngày nay trên mạng có rộ lên về một cách hack vào macOS bằng file zip. Qua quá trình tìm hiểu thì trong bài viết này mình sẽ hướng dẫn các bạn ...
Nguyễn Hợp Quang viết 4 tháng trước
0 0
White
41 13
Lỗ hổng bảo mật XSS và Bruteforce ở trang Sendo.vn Chào mọi người. Do mấy ngày rảnh rỗi không có gì làm ( Vì hè rồi mà, nên học và làm cũng nhàn ...
Nguyễn Hợp Quang viết 4 tháng trước
41 13
White
3 0
Chào các bạn, Hôm nay mình sẽ chỉ với các bạn cách mà mình gặp một lỗi html injection, và cách mình biến nó thành lỗi nghiêm trọng với kĩ thuật co...
Nguyễn Hợp Quang viết 4 tháng trước
3 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
9 bài viết.
26 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!