type
status
date
slug
summary
tags
category
icon
password
兑换码
首先观察题目内容
“什么,你没有看到?原来是png的下面啊”
易知是png图片隐写类型,推测是通过修改图片尺寸将flag隐藏于图片下方
先使用开源工具tweakpng打开图片

由提示信息 确认 图片尺寸被更改,于是使用010editor打开图片获得图片当前CRC

于是编写python脚本计算正确尺寸
最后在图片目录下运行

获得正确尺寸
用010editor复原并保存


flag{La_vaguelette}
ez_answer
flag{I_Agr3e_to_FoL10w_th3_ru1es_5138fb6a}
WhereIsFlag
首先查看题目内容
“才。。。才不会告诉你我把flag藏在哪里了!”
然后使用nc连接靶机

先使用ls查看有哪些文件

先尝试cd home

并未获得有效信息,于是逐个尝试,直到cd proc

获得真实flag
flag{7ed02a4f-47d6-4102-8200-48bd2c7bafb4}
你也玩原神
先观察题目“如果你玩原神,那么你看得懂这些提瓦特文字吗?请把得到的内容用flag{}包裹”推测是有关于密码的题目,下载附件打开后是gif文件,于是使用在线网站分解gif图片https://uutool.cn/gif2img/,观察得到第37帧是提瓦特文字

提取第37帧

网络搜索提瓦特通用文拉丁字母对照

先解密左上角的文字
得到:flagisasentence,得知flag是一个句子
再解密左下角的文字
得到:doyouknowfence,得知与栅栏密码有关系
再解密右下角文字
得到:mesioaabgnhnsgogmyeiade
用在线栅栏密码解密工具http://www.hiencode.com/railfence.html,穷举key,当key=3时获得可读明文

flag{maybegenshinisagoodgame}
Labyrinth
观察题目“
#newstar# #LSB# #听好了#
”猜测是lsb隐写于是使用开源工具stegsolve打开图片

一般是遇到Red plane 0、Green plane 0、Blue plane 0时会出现线索
尝试后发现red plane 0时出现二维码

扫码后得到flag
flag{e33bb7a1-ac94-4d15-8ff7-fd8c88547b43}
用溯流仪见证福特台风
观察题目
“漂亮国也干了。照着2024年7月8日央视新闻的方法来看看隐匿在图片下的东西吧。
新闻视频: https://b23.tv/BV1Ny411i7eM
新闻中提到的威胁盟报告里,隐藏在图片下,Domain下方那个框里所有字符的16位小写md5,包裹 flag{} 即为 flag。
提示:这个视频就是WP;运气不好的话,你也许需要使用溯流仪(网站时光机)。
PS:如果你眼力好,肉眼能从视频读出来,也是你的水平。祝你玩得开心。“

肉眼提取题目中的domain得到
powerj7kmpzkdhjg4szvcxxgktgk36ezpjxvtosylrpey7svpmrjyuyd.onion
根据题目进行转换为16位小写md5,使用在线网站
得到6c3ea51b6f9d4f5e
flag{6c3ea51b6f9d4f5e}
pleasingMusic
观察题目
“一首歌可以好听到正反都好听(以flag{}形式提交,所有英文字母均为小写)”
应该是音频隐写题目
使用开源软件audacity打开,发现可疑之处

推测是莫斯电码,正听得到结果为:
. ..- --- .-.- -.--.. . … .-. --- -- -.--.. ..-- .
反听结果为:
. --.. ..--.- -- --- .-. … . ..--.- -.-. --- -.. .
使用在线网站解密得知反听才是正确结果

flag{ez_morse_code}
Base
观察题目
“This is a base question!
4C4A575851324332474E324547554B494A5A4446513653434E564D444154545A4B354D45454D434E4959345536544B474D5134513D3D3D3D”
乍一看应该是base16编码,用在线网站解码http://www.hiencode.com/base64.html

结果应该是base32编码,再次解码

结果应该是base64编码,再次解码

flag{B@sE_0f_CrYpt0_N0W}
Begin
观察题目“什么是IDA?”先运行附件

应该是考察ida基本使用
用ida打开附件
先按下f5

双击falgpart1得到第一部分

再按下a把它转换

然后按下shift+f12

得到flag第二部分,根据提示在函数名上面按x得到第三部分

拼凑起来得到完整flag
flag{Mak3_aN_3Ff0rt_tO_5eArcH_F0r_th3_f14g_C0Rpse}
headach3
观察题目内容
“头疼,帮我治治”
应该和请求有关系
用curl -v显示更详细的信息

得到flag{You_Ar3_R3Ally_A_9ooD_d0ctor}
decompress
观察题目
“正在失传的技艺之压缩包解压
注:由于平台对flag的长度限制,请把解压的结果再计算32位小写md5后包上flag{}提交”
考察解压,先解压第一层得到

发现还有个压缩包,继续解压得到


Flag太长,用在线网站https://www.sojson.com/encrypt_md5.html#google_vignette转换得到

包裹得到
flag{c6edaba55bac51875a215e2de11c35dd}
wireshark_secret
观察题目“un偷看涩图,被抓到流量了”推测是从流量中提取图片,使用开源软件wireshark打开附件,发现可疑之处

导出http对象,保存到桌面



flag{you_are_gooddddd}
wireshark_checkin
观察题目
“un搭建了一个简单的http服务器,但是不小心把重要文件删除了,只剩下访问这些文件时的流量,你能帮他找到吗”
用wireshark打开附件发现可疑流量

提取http流量中的flag.txt

获得flag

flag{ez_traffic_analyze_isn't_it}
热心助人的小明同学
观察题目
“小明的邻居小红忘记了电脑的登录密码,好像设置的还挺复杂的,现在小红手里只有一个内存镜像(为什么她会有这个?),小明为了帮助邻居就找到了精通电脑的你……”
推测是内存取证,用volatility工具进一步分析
首先分析该raw文件是什么系统

进一步,从内存中获取当前用户密码

得到密码ZDFyVDlfdTNlUl9wNHNTdzByRF9IQUNLRVIh
flag{ZDFyVDlfdTNlUl9wNHNTdzByRF9IQUNLRVIh}
Real Login
观察题目得知是pwn签到题
首先用nc连接靶机

发现是检测输入
然后用IDApro工具打开附件,进行反编译

发现func函数,双击查看

发现原理是要检测输入值是否与预设密码相同,于是双击password查看密码

发现密码是NewStar!!!

输入密码成功拿到shell,先用ls查看有哪些文件,最后用cat指令查看flag内容
flag{91d660ca-7e15-4602-82b3-b8352d3ddada}
Game
观察题目“不会连最简单的加法都不会吧”
用ida打开附件,f5进行反编译,发现game函数

双击查看

原理是将输入的数字累加,达到999以上就能拿到shell,但是输入的时间只有短短5秒,显然是不可能的,于是分析漏洞发现代码中使用了 __isoc99_scanf("%d", &v0) 进行输入读取,它期望的是一个整数输入(%d)。然而,在某些情况下,scanf 处理带有 e 或 E(科学计数法)的输入时,可能会解析错误或导致未定义行为。
于是尝试输入10e,拿到shell,用ls查看文件,再用cat读取flag的内容


flag{53c5b398-536a-4862-930a-b189d9857854}
会赢吗
观察题目
“什么是控制台?js又是什么
(本题下发后,请通过http访问相应的ip和port,例如 nc ip port ,改为http://ip:port/)”
考察JavaScript
先打开题目网址,按下f12,查看网站源代码,得到flag第一部分并且获得第二部分的提示

获得第二部分网址

继续f12

发现这段代码定义了一个异步函数revealFlag,用于发送post请求以获取特定的flag,根据提示课程名称是4cqu1siti0n
于是在控制台输入revealFlag("4cqu1siti0n")

得到第二部分,顺势进入第三部分


总结为以下几点:
- DOM 内容加载:使用 DOMContentLoaded 事件确保 DOM 完全加载后再执行代码。
- 获取元素:通过 getElementById 获取表单、状态文本和消息文本的元素。
- 表单提交事件:为表单添加 submit 事件监听器,防止默认提交行为。
- 状态检查:检查状态元素的内容是否为 "解封"。如果不是,则显示提示信息并返回。
- 发送 POST 请求:
- 使用 fetch 向 /api/flag/s34l 发送 POST 请求,包含 CSRF 令牌(从一个隐藏的输入字段中获取)。
- 请求头设置为 JSON 格式。
- 处理响应:
- 如果请求成功,解析响应并更新消息元素,显示获得的 flag 和下一关的链接。
如果请求失败或发生错误,则更新消息元素以提示用户重试。
因此要在控制台中手动创建一个时间并触发上述代码
成功获得第三部分flag

顺势进入第四部分

直接使用 fetch 方法来模拟 POST 请求
在控制台输入

成功获得第四个flag
拼凑得到ZmxhZ3tXQTB3IV95NF9yM2FsMXlfR3I0c1BfSkpKcyF9
推测是base64编码,使用在线解码平台http://www.hiencode.com/base64.html
flag{WA0w!_y4_r3al1y_Gr4sP_JJJs!}
你能在一秒打出八句英文吗
观察题目,显然不能一秒打出八句英文,应该是模拟表单提交,考虑到每次刷新后句子都不同,所以在控制台中获取当前显示的句子并直接提交

由于在第二界面无法进入开发者控制台,所以要先在第一界面进入
,点击I can后迅速在控制台中输入上述代码

flag{6d9fad69-b9bc-4e7d-816b-8bc63a191626}
ezAndroidStudy
观察题目,考察安卓逆向,需要使用到工具jadx-gui


观察到可疑activity名字homo


获得第一部分

根据提示找到第二部分


根据提示找到第三部分



根据提示找到第四部分

so文件由c编写,可以用ida反编译,先将apk后缀改为zip,然后解压提取so文件



按下shift+f12查看字符,获得第五部分
拼凑得到
flag{Y0u_@r4_900d_andr01d_r4V4rs4r}
智械危机
观察题目” 我家看门的robots有点铸币,怎么会告诉别人后门没有锁呢”,考察后门利用,现根据提示进入url/robots.txt

发现后门php,于是进入查看

分析代码得出以下逻辑
首先,使用 base64_decode() 解码传入的 key。
然后,逆序传入的 cmd 字符串,生成 reversed_cmd。
接着,计算逆序字符串的 MD5 哈希值,并与解码后的 key 比较。如果不匹配,输出 "Invalid key" 并终止执行。
如果匹配,则对 cmd 进行 Base64 解码,并返回解码后的命令。
假设要执行cat /flag
先进行base64编码得到Y2F0IC9mbGFn,这就是输入的cmd
再将cmd逆序得到nFGbm9CI0F2Y
再对逆序的结果计算md5哈希得到879a591c6785a4e1398b96a9a1bc67eb
再把哈希值进行base64编码ODc5YTU5MWM2Nzg1YTRlMTM5OGI5NmE5YTFiYzY3ZWI=
这就是key
用到的工具网站
整理得到post指令

flag{955a7716-8204-44c9-bf50-aaed890d0240}
XOR

分析得到
理解变量:
- c1是flag前13个字节与key进行XOR的结果。
- c2是flag剩余部分与key进行XOR的结果。
XOR操作:
- XOR操作是可逆的,即如果用相同的key进行XOR运算,可以得到原始值。
- 恢复flag:
- 第一部分: m1=c1⊕keym1 = c1 \oplus \text{key}m1=c1⊕key
- 第二部分: m2=c2⊕keym2 = c2 \oplus \text{key}m2=c2⊕key
以下是实现代码:

flag{0ops!_you_know_XOR!}
一眼秒了

观察代码,考察rsa加密算法
要恢复 flag,需要进行以下步骤:
- 获取素数 p 和 q:由于 RSA 的安全性基于大素数的难以分解性,首先需要从模数 n中分解出这两个素数 p和 q。
- 计算 ϕ(n)\phi(n)ϕ(n):
- 计算 ϕ(n)=(p−1)(q−1)\phi(n) = (p-1)(q-1)ϕ(n)=(p−1)(q−1)
- 计算私钥 d:
- 使用扩展的欧几里得算法计算私钥 ddd,使得 e⋅d≡1mod ϕ(n)e \cdot d \equiv 1 \mod \phi(n)e⋅d≡1modϕ(n)。
- 解密密文:
- 使用私钥解密密文,计算 m=cdmod nm = c^d \mod nm=cdmodn。
- 转换消息:
- 将恢复的长整型数转换回字节串,得到原始的 flag。
首先采用sympy数学库分解n
代码实现:

得到结果
Factors: {7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956044421: 1, 7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956045093: 1}
接着进行以下步骤
计算 n:
- p=7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956044421p = 7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956044421p=7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956044421
- q=7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956045093q = 7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956045093q=7221289171488727827673517139597844534869368289455419695964957239047692699919030405800116133805855968123601433247022090070114331842771417566928809956045093
- 计算 ϕ(n)\phi(n)ϕ(n):
- ϕ(n)=(p−1)(q−1)\phi(n) = (p - 1)(q - 1)ϕ(n)=(p−1)(q−1)
计算私钥 d:
- 使用扩展的欧几里得算法计算 d,使得 e⋅d≡1mod ϕ(n)e \cdot d \equiv 1 \mod \phi(n)e⋅d≡1modϕ(n)(这里 e=65537e = 65537e=65537)。
- 解密密文:
- 计算 m=cdmod nm = c^d \mod nm=cdmodn。
代码实现:

flag{9cd4b35a-affc-422a-9862-58e1cc3ff8d2}
Since you know something

- XOR 加密:xor() 函数用于将 FLAG 和 key 进行按位异或运算。XOR 加密的一个重要特性是,如果知道加密后的结果(c)和密钥(key),可以通过再次进行 XOR 运算来解密。
- bytes_to_long:这个函数将字节序列转换为一个长整型(大整数),便于进行数学运算或存储。
- 给定的输出 c:这是加密后的结果,表示 FLAG 与 key 进行 XOR 运算后的长整型值。
分析代码,key是未知的,由于非常短,可能是 1 到 4 字节的长度,所以可以可以使用 Python 编写一个简单的循环来尝试所有可能的 key,直到找到一个有效的 FLAG。
以下是代码实现:
最终解出key为ns

flag{Y0u_kn0w_th3_X0r_b3tt3r}
Just one and more than two

分析代码
- 提取参数:
- 有 p, q, r, c1, 和 c2。
- 计算模数 N:
- N = p * q * r。
- 解密 c1:
- 使用 p 和 e 来解密 c1: m1=c1dmod pm1 = c1^{d} \mod pm1=c1dmodp
- 这里的 d 是 e 在 p-1 的模逆元。可以用扩展的欧几里得算法计算。
- 解密 c2:
- 使用 N 和 e 来解密 c2: m2=c2dmod Nm2 = c2^{d} \mod Nm2=c2dmodN
- 合并结果:
- 将 m1 和 m2 转换回字节并合并: flag=m1+m2flag = m1 + m2flag=m1+m2
代码实现:

flag{Y0u_re4lly_kn0w_Euler_4nd_N3xt_Eu1er_is_Y0u!}
- Author:R4nd0m99
- URL:https://www.loyce030.xyz/article/newstar1%262
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts