Thao tác url php

Nếu người dùng đang chạy bất kỳ trang web nào sử dụng nền tảng PHP trên máy chủ NGINX và có bật tính năng PHP-FPM Nhằm mang lại hiệu quả hoặc tốt hơn thì hãy cẩn thận với một lỗ hổng được tiết lộ gần đây có thể tạo ra tin

Lỗ hổng đã được định danh CVE-2019-11043 ảnh hưởng đến các wesbite có cấu hình PHP-FPM tốt nhất không gặp trên thực tế và có thể dễ dàng bị khai thác vì mã khai thác [PoC] cho lỗi này đã được hiển thị

PHP-FPM là bản viết tắt của FastCGI Process Manager cung cấp các tính năng tối ưu giúp quá trình xử lý thông tin hỗ trợ tăng tốc độ viết trang web bằng ngôn ngữ lập trình PHP

Lỗ truy cập chính nằm ở biến env_path_info trong mô-đun PHP-FPM, biến đó khi bị tràn số sẽ có thể khai thác và cho phép kẻ tấn công thực thi lệnh từ xa trên máy chủ web

Những trang web tiềm ẩn nguy cơ bị khai thác từ lỗ hổng trên?

Qua mã khai thác được thành công, việc khai thác này do các máy chủ chạy các phiên bản PHP 7+, lỗi tràn PHP-FPM cũng ảnh hưởng đến các phiên bản PHP trở về trước

Cụ thể, một trang web có thể sửa lỗi truy cập này, nếu
  • NGINX được cấu hình chủ đề chuyển tiếp yêu cầu của các trang PHP sang xử lý PHP-EPM
  • fastcgi_split_path_info chỉ thị tồn tại trong cấu hình và bao gồm một biểu thức chính quy bắt đầu bằng ký tự '^' và kết thúc bằng ký tự '$'
  • Biến PATH_INFO được định nghĩa với chỉ thị fastcgi_param
  • Không có kiểm tra như ‘try_files $uri =404’ hoặc nếu [-f $uri] Xác minh tài liệu một tệp có tồn tại không
Ví dụ



Lỗi thực thi mã thi trên PHP FPM đang hoạt động như thế nào?

Theo các nhà nghiên cứu, biểu thức chính quy trong chỉ thị ‘fastcgi_split_path_info’ có thể bị phá vỡ bằng cách sử dụng ký tự tạo dòng mới [ký tự dòng mới] %0a. Biểu thức chính quy bị phá vỡ dẫn đến PATH_INFO trống, gây ra lỗi

Đoạn sau, giá trị path_info[0] được đặt thành 0, sau đó FCGI_PUTENV được gọi. Sử dụng một URL với đường dẫn và chuỗi truy vấn có độ dài được lựa chọn thận trọng, những kẻ tấn công có thể làm cho path_info con trỏ chính xác đến byte đầu tiên của cấu trúc _fcgi_data_seg. Đặt 0 vào nó chuyển trường ‘char* pos’ về sau, và tiếp theo FCGI_PUTENV ghi đè một số dữ liệu [bao gồm các biến cgi nhanh khác] với đường dẫn của tập lệnh. Sử dụng kỹ thuật này nhà nghiên cứu có thể tạo ra một biến fcgi PHP_VALUE giả và sau đó sử dụng một chuỗi các giá trị cấu hình được lựa chọn thận trọng để thực thi mã



Bản cập nhật PHP 7 đã được phát hành để sửa lỗi FPM

Danh sách các điều kiện tiên quyết để khai thác theo dõi lỗ hổng thành công như đã đề cập ở trên không phải là lỗi thời bởi các cấu hình có lỗ hổng được một số nhà cung cấp máy chủ web sử dụng và có sẵn trên mạng là một phần

Một trong những nhà cung cấp dịch vụ máy chủ web là Nextcloud, đã phát đi cảnh báo người dùng cấu hình Nextcloud NGINX mặc định cũng có thể bị tấn công và khuyến cáo quản trị hệ thống cập nhật bản vá ngay lập tức

Vì mã khai thác lỗ hổng này được bố trí và bản vá mới được phát hành gần đây nên những kẻ tấn công có thể bắt đầu quét mạng nhằm mục đích tìm kiếm các wesbite lỗi truy cập

Người dùng được khuyến mãi ngay lập tức cập nhật phiên bản PHP 7. 3. 11 và PHP 7. 2. 24 mới nhất kể cả khi không sử dụng cấu hình có lỗi truy cập

Theo The Hacker News​

 

Là lỗi cho phép hacker có thể đọc được các tệp trên máy chủ, cơ bản nhất là qua url, có thể là thông số hoặc đường dẫn trực tiếp

Ví dụ. bạn có url foodle.com/menus?menu=menu.pdf => foodle.com/menus?menu=../../../../ssl/private.key => xong cái server nha bạn

Hoặc dễ thấy nhất là bạn có url file [thường là ảnh]


0 =>

1 => full gia phả 3 đời của menu2nd. png đã hiện ra trước mặt anh hacker

Gấu Mẹ Vĩ Đại @hungpv

Theo dõi

1. 4K 44 18

Đã đăng vào ngày 16 tháng 3 năm 2021 6. 54 SA 7 phút đọc

1. 9k

0

6

Các kỹ thuật hack cơ bản lập trình viên nên biết - Phần 2

Chúc mừng năm mới

  • Report
  • Add to series of me

Phần 1

Phần 2

Truyền tải thư mục

Là lỗi cho phép hacker có thể đọc được các tệp trên máy chủ, cơ bản nhất là qua url, có thể là thông số hoặc đường dẫn trực tiếp

Ví dụ. bạn có url foodle.com/menus?menu=menu.pdf => foodle.com/menus?menu=../../../../ssl/private.key => xong cái server nha bạn

Hoặc dễ thấy nhất là bạn có url file [thường là ảnh]


0 =>

1 => full gia phả 3 đời của menu2nd. png đã hiện ra trước mặt anh hacker

anti-defence

1. Sử dụng hệ thống quản lý nội dung

Trường hợp bạn quản lý nhiều tệp thì việc sử dụng một hệ thống thông tin bên thứ 3 giúp hỗ trợ quản lý là công việc đang làm và mặc dù có thể phải trả một khoản phí hàng năm, nhưng vấn đề hoàn toàn không phải lo nữa

2. Chuyển hướng tập tin

Thay vì sử dụng đường dẫn trực tiếp đến tệp, bạn có thể sử dụng api hoặc bất kỳ thứ gì đó để lấy tệp qua bộ điều khiển chung không gian hạn chế, hãy nhớ là đầu vào hợp lệ nhé

3. Tách các loại tài liệu

Tách các loại tài liệu ra, thành sử dụng chung, người dùng, quản trị viên,. với điều đó, bạn có thể phân quyền truy cập nên kể cả khi hacker có thể lần ra đường dẫn, nếu không có quyền tương ứng, họ cũng không thể lấy được thông tin

XSS phản ánh

Hầu hết các kỹ thuật XSS là XSS phản ánh, hacker không gửi dữ liệu độc hại đến máy chủ sự cố nhân, mà gửi liên kết trực tiếp có chứa mã độc cho người dùng, khi người dùng nhấp vào liên kết này thì trang web sẽ được tải chung với . Reflected XSS thường dùng để ăn cắp cookie, chiếm phiên,… của nạn nhân hoăc cài đặt keylogger, trojan… vào máy tính nạn nhân

VD. nhân có tài khoản đang đăng nhập tai nạn tại trang web


2

tin tặc sẽ gửi cho nhân sự cố một đường dẫn kiểu như vậy


3

Khi nạn nhân nhấp vào, đầu tiên họ sẽ được mở đến trang


2 và tìm kiếm

5

Đoạn script sẽ thực thi và lấy cookie, đồng thời điều hướng sang trang web của hacker cùng với cookie trên tham số

vậy là hacker đã có thể truy cập vào


2 bằng tài khoản của người dùng mà chả cần biết mật khẩu

anti-defence

1. Xác thực đầu vào

Rất đơn giản và vô cùng hiệu quả, mã hóa tất cả các ký tự đặc biệt, hiển thị chúng dưới dạng mã html, sử dụng danh sách trắng để cho phép bất kỳ ký tự nào được nhập vào, ez game

"	"
#	#
&	&
'	'
[	(
]	)
/	/
;	;
<	<
>	>
2. Use main content-Security

Các bạn có thể thêm thẻ meta này vào đầu


XSS dựa trên DOM

Lỗi này, về kịch bản thì giống y hết lỗi trên, nhưng về bản chất thì có chút khác biệt

  • Phản ánh XSS, khi nạn nhân nhấp vào liên kết chứa mã độc, đoạn mã sẽ được máy chủ nhận dưới dạng 1 tham số gửi lên và trả lại cho nạn nhân như một phần nội dung hợp lệ của trang
  • Dựa trên DOM thì trang web sẽ luôn nhận url đoạn mã độc trang và luôn render mà không gửi về server, vẫn hack được session, cookie của bạn thôi, không cần lo đâu =]]

Các bản ghi công thì nó kiểu như vậy

Giả sử bạn có 1 trang có cuộn vô cực [cuộn vô tận, không phải cuộn vô cực], bình thường khi cuộn đến đoạn tải thêm, url sẽ có dạng


7,

8

Đoạn mã để tải trang dữ liệu sẽ như vậy

$[document].onload[function[] {
  var page = window.location.hash;
  loadPage[page];

  $["#page-no"].html[page];
}];

Hacker sẽ lợi dụng và thay đổi phần sau # =>


9

Khi đó trình duyệt sẽ tải mã đọc dưới dạng 1 tập lệnh hợp lệ của trang và thực thi

anti-defence

1. Sử dụng JavaScript Framework2. Kiểm tra mã của bạn cẩn thận3. Phân tích cú pháp JSON cẩn thận4. Sử dụng Công cụ phát triển để phát hiện toàn bộ các đoạn mã không5. Không sử dụng phân đoạn Uri6. Use main content-Security

File Uploading Error

Tải lên 1 tệp mã độc lên máy chủ, sau đó gọi đên nó bằng api mặc định của hệ thống hoặc gọi trực tiếp nhờ lỗi Traversal Directory để thực thi tệp, hacker có thể chiếm quyền máy chủ của bạn hoặc bắt các hàng khác của bạn tải tệp . Nó thường xuyên nằm trong top 10 lỗi bảo mật luôn đấy nhé

  1. Tạo tập tin hack. php

  1. tải lên hình đại diện

  1. mở file "avatar" và upload

  1. thực hiện lệnh để lấy clip đầy đủ không che

  1. dạy tai nạn nhân tiếng má để tiện cho việc khóc

PHP not type file duy nhất, các đuôi như. php1, php2, 3. hoặc. tôi,. cgi, double when only to change the normal as PHP, PHP1,. Hoặc chứ không phải vài 3 cái đuôi như

$[document].onload[function[] {
  var page = window.location.hash;
  loadPage[page];

  $["#page-no"].html[page];
}];
0 , thậm chí vị trí là
$[document].onload[function[] {
  var page = window.location.hash;
  loadPage[page];

  $["#page-no"].html[page];
}];
1

anti-defence

1. Tách các tập tin tải lên2. An ninh các tệp tải lên không thể thực hiện được3. Đổi tên tệp sau khi tải lên4. Validate format of file and extension extension

cái này mà dùng whitelist thì đỡ khổ hơn, những vẫn có cách bypass

  • Tiêm Null Byte.
    $[document].onload[function[] {
      var page = window.location.hash;
      loadPage[page];
    
      $["#page-no"].html[page];
    }];
    
    2
  • Mở rộng gấp đôi.
    $[document].onload[function[] {
      var page = window.location.hash;
      loadPage[page];
    
      $["#page-no"].html[page];
    }];
    
    3,
    $[document].onload[function[] {
      var page = window.location.hash;
      loadPage[page];
    
      $["#page-no"].html[page];
    }];
    
    4,
    $[document].onload[function[] {
      var page = window.location.hash;
      loadPage[page];
    
      $["#page-no"].html[page];
    }];
    
    5
  • Bỏ qua tiện ích mở rộng không hợp lệ
5. xác thực tiêu đề kiểu nội dung6. Use scan virus

Các bạn có thể xem thông tin về lỗi kỹ thuật này tốt hơn tại đây https. //viblo. asia/p/khai-thac-cac-lo-hong-file-upload-phan-1-aWj53L6pK6m

Kiểm soát truy cập bị hỏng

Có lỗi xảy ra khi quản lý kiểm soát truy cập của người dùng không được chăm chút, khiến người dùng có thể truy cập thông tin hoặc thực hiện các hành động bên ngoài thầm quyền của họ, như xem hay chỉnh sửa thông tin của người dùng khác,. đây là lỗi thường thuộc top 10 theo OWASP, nói chung thì cái vấn đề phân quyền ngứa cũng không ít phức tạp lắm

anti-defence

Cũng không có giải pháp chung nào cho mọi trường hợp khi gặp lỗi này, nhưng nói chung thì chúng ta nên tập chung vào 3 khía cạnh sau

Chủ Đề