Các thanh chống xóa gần đây vá lỗ hổng cho phép kẻ tấn công thực thi mã từ xa. Rõ ràng không vá này cũng giống như đem lại đen mũ một thảm chào đón màu đỏ với một bandwagon: -/Struts 2 S2-016 Giảm thiểu khả năng tiết kiệm cho đến khi nâng cấp
http://struts.apache.org/release/2.3.x/docs/s2-016.html
Về cơ bản nó cho phép lệnh tấn công thực hiện như thế này:
hành động VN: http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}
hành động bị bóc lột: http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
Mặc dù tôi biết rằng việc nâng cấp nên được thực hiện càng sớm càng tốt, càng sớm càng tốt sẽ có nghĩa là một thời gian kể từ khi cơ sở mã của chúng tôi sử dụng phiên bản và trình cắm cũ.
Mà sẽ yêu cầu một số refactoring để nâng cấp struts 2 thư viện, sau đó những người cần phải được kiểm tra, vv
Câu hỏi của tôi do là liệu có ai có bất kỳ ý tưởng để ngăn chặn lỗ hổng này từ được thực thi? Điều này sẽ chỉ cho đến khi chúng tôi có thể nâng cấp.
Tôi đã tự hỏi liệu viết một kẻ đánh chặn để khử trùng URL trước khi được đánh giá chống lại OGNL là có thể và nếu như vậy nó sẽ giảm thiểu vấn đề này?
Ý tưởng khác tôi đã có là sử dụng trình quản lý bảo mật Java bằng cách nào đó để ngăn chặn các yêu cầu quy trình tùy ý, điều này có khả thi không? Nó sẽ vá lỗ tạm thời?
Máy chủ đang được sử dụng là jBoss nếu có ai đó cho rằng có liên quan.
Bạn có một số máy chủ ở phía trước của jBoss của bạn, apache có thể? Làm thế nào về hạn chế truy cập vào một số uri-s trong đó. –
Bạn có ý nghĩa gì đó của trình cân bằng tải hoặc tường lửa có khả năng hạn chế URL? – Thihara
Điều đó hoặc proxy ngược lại, như Apache. –