NewStarCTF 2023 公开赛道 WEEK4|MISC 部分WP
R通大残
1、题目信息
R通大残,打了99,补!
2、解题方法
仔细分析题目,联想到隐写的R通道。
首先解释一下:R是储存红色的通道,通道里常见有R(红)、G(绿)、B(蓝)三个通道,如果关闭了R通道图片就没有红色的部分,G、B同理。
因此我们想到R大残应该是不显示红色了,猜测结果就在R通道里,所以使用 Stegsolve 打开附件图片,把R的通道全勾上,即可看到flag。

Nmap
1、题目信息
请给出Nmap扫描得到所有的开放端口用英文逗号分隔,端口号从小到大排列。 例如flag{21,22,80,8080}
2、解题方法
题目要求找出Nmap扫描得到所有的开放端口,并按顺序排列。
Nmap通常用于直接扫描目标主机,而不是直接扫描pcap文件。
因此这里我们使用wireshark来分析,使用过滤器:
tcp.flags.syn == 1 and tcp.flags.ack == 1
这个过滤条件可以筛选出TCP端口开放的数据包

udp
这个过滤条件可以筛选出UDP端口开放的数据包,该过滤条件会匹配所有的UDP数据包,因为UDP没有像TCP那样的连接建立过程,所以UDP数据包的到达通常表示端口是开放的。

icmp and icmp.type == 3 and icmp.code == 3
这个过滤条件用于查找被目标主机标记为"端口不可达"的数据包,通常表示端口关闭;该过滤条件匹配了ICMP "端口不可达"类型的数据包,其中的 "code" 值为3表示端口关闭。

因此发现后两个筛选出来都是空,所以我们只需要看第一个过滤之后的结果就行:

记得一定要把显示过滤器的限制勾上,不然结果并不是过滤之后的结果。

因此,端口由小到大排序, 80,3306,5000,7000,8021,9000
flag{80,3306,5000,7000,8021,9000}
依旧是空白
1、题目信息
我们之间还有太多空白格,但是这次的空白格不太一样

2、解题方法
一张图片但宽高有问题,爆破一下得到密码。

s00_b4by_f0r_y0u
而另一个文件是空白的txt文档,大致看了一下像是不可见字符,结合题目和给了密码,猜测可能就是snow隐写了。
将文本附件拖到snow.exe所在目录,执行命令:
snow.exe -p s00_b4by_f0r_y0u -C White.txt
flag{2b29e3e0-5f44-402b-8ab3-35548d7a6a11}
3-溯源
1、题目信息
在调查清楚攻击者的攻击路径后你暗暗松了一口气,但是攻击者仍控制着服务器,眼下当务之急是继续深入调查攻击者对服务器进行了什么操作,同时调查清楚攻击者的身份,请你分析攻击者与WebShell通讯的流量获取攻击者获取的相关信息,目前可以得知的是攻击者使用了冰蝎进行WebShell连接。 Tip:沿着前序题目的进度分析会更符合逻辑,或许有助于解题 FLAG格式:flag{攻击者获取到的服务器用户名_服务器内网IP地址} 例如flag{web_10.0.0.3}
2、解题方法
题目描述是冰蝎进行WebShell连接的流量包,需要找到攻击者获取到的服务器用户名和服务器内网IP地址。
首先简单介绍一下常见webshell工具的流量特征:
1、中国菜刀
请求体中存在eval、base64等特征字符;连接过程中使用base64编码对发送的指令进行加密;还有一段以QG开头,7J结尾的固定代码。
2、蚁剑
默认的user-agent请求头是antsword XXX(可以修改)
一般将payload进行分段,分别进行base64编码;具有像eval这样的关键字和@ini_set("display","0");这段代码。
3、冰蝎
PHP代码中可能存在eval、assert等关键词;
jsp代码中可能会有get class(),get class loader()等字符特征。
中国菜刀、蚁剑的攻击流量特征明显,容易被各类安全设备检测,而冰蝎是一款基于Java开发的动态加密通信流量的Webshell工具,由于通信流量被加密,传统的 WAF、IDS 设备难以检测,冰蝎最大特点就是对交互流量进行对称加密(冰蝎密文采用对称加密算法AES加密,加密后还会进行 base64 编码),且加密秘钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。
因此解题第一步,先找AES加密算法的密钥:
服务器使用随机数MD5的高16位作为密钥,存储到会话的SESSIONID中,我们可以通过wireshark抓包看到。
在找这些包之前我们其实可以先利用wireshark的过滤器进行初步的筛选:
筛选HTTP POST请求,因为攻击者通常通过POST请求发送命令和数据
http.request.method == "POST"
筛选非常大或非常小的HTTP POST数据包,这些可能包含有关服务器的信息
http.request.method == "POST" and (frame.len < 1000 or frame.len > 5000)
筛选出具有 ACK 标志的 TCP 数据包,这些数据包通常表示响应报文
tcp.flags.ack == 1
我们也可以使用 and 对上面的一些条件进行组合筛选 。查看请求shell.php的包:

注意:每个包前面是什么协议,就追踪什么流,比如这里这个包是http协议,那么就要追踪http流,否则出来的响应报文可能会存在格式的问题导致无法解码和识别。
追踪http流,找到与AES加密相关的东西:

进行base64解码,拿到 $key="e45e329feb5d925b";

接下来我们就可以对请求报文或者响应报文中的AES密文进行解密了:
像下面这种格式的就是AES的密文,红色部分是请求报文,蓝色部分是响应报文。

可以使用在线网站批量解码:http://tools.bugscaner.com/cryptoaes/
先给大家看一下我前面提到过关于追踪流的情况:这是对同一个http协议的包追踪http流和tcp流的不同结果

这里这个用户名是很好找的,很多包里面都有,这里只是列举了其中某个包:



用户名为www-data
而服务器的内网ip则在长度为100的post请求1.php里面,其他包里面可能也还有,可以再找找。

第一段响应报文解两次码后还是密文,在第二段里面,从图片框起来的位置一直拉到结尾。

先解AES,再对msg的内容解base64:


得到一个以basicInfo开头的东西,对其内容再解base64,注意要去掉basicInfo头否则会出错:

在解码内容里找到服务器内网ip和用户名:
172.17.0.2 和 www-data

flag{www-data_172.17.0.2}
第一次取证(未出)
1、题目信息
简单的内存取证第一题 附件链接: https://pan.baidu.com/s/1LtVf1j00NR3CB7U38ags5w 提取码: hg7b
2、解题方法
NewStarCTF 2023 公开赛道 WEEK4|MISC 部分WP的更多相关文章
- CG-CTF misc部分wp
将Misc剥离出来了,已完结(coding gay不想做了) MISC1,图种一听图种,现将图片的GIF改为zip,然后解压得到另一张动图看动图最后一句话为‘都深深的出卖了我’,得到 flag2, 丘 ...
- ciscn 2022 misc 部分wp
目录 everlasting_night ez_usb everlasting_night 提示是注意png数据块 然后注意图片通道数据可以用来lsb解码 下载是一张图片,尝试几种方法之后没有太大 ...
- 2018DDCTF Misc部分WP
题目给出了这样一串字符:d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7 ...
- buu misc 1-32 wp
buuCTFwp(1~32) 1.签到题 题里就有flag flag{buu_ctf} 2.二维码 1.题目是一个二维码,用010发现提示四位数字,想到应该是暗藏压缩包 2.虚拟机foremost分离 ...
- Java 动态代理机制分析及扩展
Java 动态代理机制分析及扩展,第 1 部分 王 忠平, 软件工程师, IBM 何 平, 软件工程师, IBM 简介: 本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟 ...
- [转]Java 动态代理机制分析及扩展
引言 Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类.代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执 ...
- Java代理全攻略【有瑕疵:字节码生成部分没看到,最后两节没仔细看,累了】
Java代理 1.代理模式 定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象. 其实就是委托.聚合.中间人. 为了保持行为的 ...
- Java 动态代理机制分析及扩展--转
http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/#icomments http://www.ibm.com/developerworks/c ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- Java设计模式-代理模式之动态代理(附源代码分析)
Java设计模式-代理模式之动态代理(附源代码分析) 动态代理概念及类图 上一篇中介绍了静态代理,动态代理跟静态代理一个最大的差别就是:动态代理是在执行时刻动态的创建出代理类及其对象. 上篇中的静态代 ...
随机推荐
- Isito 入门(四):微服务可观测性
本教程已加入 Istio 系列:https://istio.whuanle.cn 目录 可观测性 通过 Gateway 访问 Kiali 查看链路追踪数据 可能失败的原因 修复 Kiali Grafa ...
- Day09_Java_作业
A:简答题 1.什么是多态,多态的前提是什么? 2.多态中成员(成员变量,成员方法,静态成员方法)的访问特点是什么? 3.多态的好处? 4.多态的弊端是什么,如果我们想访问子类的特有的功能我们应该怎么 ...
- 帮老娘导入SF信息
转自自己的QQ空间 2023/1/3 老娘公司要统计Excel 简单说就是把顺丰上面寄的85个快递填到表里去 再把没有寄的从那两张表加起来130多个人里面揪出来单独填表 有些企业的Excel就是个灾难 ...
- MarkdownQuote:简化 Markdown 中的代码引用!
MarkdownQuote:简化 Markdown 中的代码引用! 这是 SourceCodeTrace 项目之一,通过在 IDE 中提供一种便捷的方式,快速复制包含代码来源 Markdown 代码块 ...
- openpyxl 设置某列单元格样式
1 # 边框线 2 border_set = Border(left=Side(border_style='thin', color='000000'), 3 right=Side(border_st ...
- UE源码分析:Slate 类鼠标输入处理
序言 UE4.25版本 本章看一下UE的 "类鼠标"输入处理(其实就是鼠标和触摸的输入,我也没找到专门的术语来代指,英文UE用的是PointerXXX),主要是按下.移动.抬起等相 ...
- 安装部署RabbitMQ
前言 RabbitMQ是一款使用Erlang语言开发,实现AMQP(高级消息队列协议)的开源消息中间件.RabbitMQ的特点: 可靠性.支持持久化,传输确认,发布确认等保证了MQ的可靠性. 灵活的分 ...
- [shell]在curl测试的data参数中引用变量
在curl测试的data参数中引用变量 前言 在使用curl接口进行接口传参时,常会使用如下方法: #!/bin/bash url="http://192.168.0.10:8000/api ...
- 银河麒麟等 Linux系统 安装 .net 5,net 6及更高版本的方法
最近项目上用到 银河麒麟的操作系统,需要搭建 .net 跨平台方案.一开始使用各种命令都安装不上,很多提示命令找不到,或者下载包时候网络无法下载. 网上教程很多,但没有一个是成功的,多数使用 apt ...
- Sourcetrail 代码分析工具的使用
Sourcetrail 概述 Sourcetrail 是一个代码分析工具,它旨在帮助开发人员理解和导航复杂的代码库.它可以创建代码库的可视化图形,显示代码中的类.函数.变量.依赖关系等信息,从而帮助开 ...