诀锺 发表于 2026-3-11 14:40:08

西电CTF平台——NewStar CTF 2025

Week1-Misc

Sign in

直接复制粘贴即可。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306082529260-1371427910.png
EZ_fence

打开图片,一串字符串rdh9zfwzSgoVA7GWtLPQJK=vwuZvjhvPyyvjnMWoSotB。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306082608630-89584224.png
随波逐流一键解码,没有合适的结果。再看题目,说图片是残缺的,肯定有东西被隐藏了,找到代表宽高的字节改大一点。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306094440919-608244797.png
打开有新发现,得到自定义编码表8426513709qazwsxedcrfvtgbyhnujmikop1QWSAERFDTYHGUIKJOPLMNBVCXZ-_。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306094515701-1849993669.png
栅栏数为4,base64解码用自定义编码表,解码得到New5tar_zjuatrojee1mage5eed77yo#。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306094849183-1367678636.png
照片里藏着密码,16进制打开,在最后能看到一个压缩包,提取出来。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306095214011-627913278.png
是个加密压缩包,将base64解码得到字符串作为密码即可解压,打开word拿到flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306095304798-1423967402.png
Misc 城邦:压缩术

根据提示,密码是由小写字母和数字组成,长度为6位,开始爆破得到密码为ns2025。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306084625077-1217768383.png
打开tips.txt,提示下一个压缩包没有密码,但是还要输入密码,可能是伪加密,将09改为00。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306085006054-1008147184.png
得到key.txt和flag.zip,在flag.zip中也有一个key.txt,两个文件的crc值都一样,是明文加密。(CRC值计算)
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306085426960-1829674567.png
将key.txt压缩,开始明文爆破。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306104241003-1743912920.png
解压打开flagggggg.txt即可拿到flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306104324644-1575156547.png
OSINT:天空 belong

flag格式为flag{航班号_照片拍摄时所在省份的省会城市_拍摄设备的制造商},分别获得这三个字段即可。右键图片查看属性,制造商为Xiaomi。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306091508081-1572176654.png
飞机飞翼上有B-7198,搜索关键字,查到相关网页,看到照片拍摄时间为2025-08-17 15:03分,筛选一下,只有一个航班符合。(https://www.flightera.net/zh/planes/B-7198/20-Aug-2025_01_50)
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306093011593-1954456249.png
看下详情,航班号为UQ3574。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306093040267-237237704.png
航班的到达时间为15:17,终点站为长沙市,看下途经的离长沙市较近的城市,有三个。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306093230800-997223859.png
经过尝试为武汉市,所以flag为flag{UQ3574_武汉市_Xiaomi}。
前有文字,所以搜索很有用

Track1为零宽字符隐写,得到ZmxhZ3t5b3Vf。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306103550580-1753431157.png
base64解码。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306103801131-2084073072.png
Track2中的txt为brainfuck解码,得到brainfuckisgooooood,docx看到关键字咏雪,就是SNOW隐写了,将docx中的内容复制到1.txt。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306103206749-1785540254.png
摩斯解码得到0V3RC4ME_。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306103256234-1111216681.png
Track3统计词频,只需要获取到}之前的就可以cH@1LenG3s}。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306103359752-747184417.png
拼接起来即可flag{you_0V3RC4ME_cH@1LenG3s}。
我不要革命失败

用windbg读取dmo文件,输入!analyze -v命令。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306115615159-1944297714.png
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306115619985-161431550.png
flag为flag{CRITICAL_PROCESS_DIED_svchost.exe}。
Week1-Web

multi-headach3

访问看到关键字ROBOTS。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306162153000-1234459757.png
访问robots.txt,提示有个hidden.php。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306162255615-974952295.png
直接去访问hidden.php,会跳转到index.php页面。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306162343549-1283769713.png
用burp抓包去访问,在响应头中拿到flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306162437369-1943250531.png
strange_login

页面提示1=1,就知道是SQL注入了,直接万能密码登录拿到flag。用户名输入admin' or 1=1#,密码随便填,回车即可登录成功。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306162849453-1698017090.png
别笑,你也过不了第二关

第一关只需要30分,第二关需要1000000分,靠人工肯定是不行了。查看源代码。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306163524872-324690630.png
需要访问flag.php,用POST方法,再传个参数即可获取服务器返回的数据,构造数据包。
POST /flag.php HTTP/1.1Host: 127.0.0.1:54705User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeCookie: found_hidden=1; PHPSESSID=rgrqc01iu9i1noggel2m3c3039Upgrade-Insecure-Requests: 1Sec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: noneSec-Fetch-User: ?1If-Modified-Since: Sat, 30 Aug 2025 06:08:57 GMTIf-None-Match: "1946-63d8ef9459040-gzip"Priority: u=0, iContent-Type: application/x-www-form-urlencodedContent-Length: 17score=10000000000发送请求包得到flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306163709198-834434065.png
宇宙的中心是 PHP

查看页面源代码,看到s3kret.php文件。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306170451420-457821280.png
访问一下。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306170515873-87667229.png
只需要满足intval($answer)!=47&&intval($answer,0)==47就能拿到flag,直接利用16进制绕过,给newstar2025赋值为0x2f。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306170759026-874668365.png
我真得控制你了

页面禁止使用开发者工具,直接抓包,看响应包提到next-level.php。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306182041253-1231023579.png
访问next-level.php,响应代码为302是个重定向,直接跳转。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306182149728-1817926166.png
跳到weak_password.php,浏览器访问一下,是个弱口令。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306182245502-1747349745.png
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306182256174-1982915753.png
抓包进行爆破,得到用户名为admin,密码为111111,登录之后,看到代码。
代码审计,需要满足以下几个条件。

[*]允许的字符:0-9、*、\、/、(、)、空白
[*]不能是纯数字或空白
[*]将input的值赋给test,然后判断test=2025就能获得flag。
故payload:newstar=45*45。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306183702770-1813293341.png
黑客小 W 的故事(1)

需要800吉欧才能购买剑技,直接抓包修改count参数。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307153341210-1022551419.png
跳到下一关与蘑菇先生对话,看提示需要get传参shipin=mogubaozi。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307153518378-1689208385.png
蘑菇先生说把想跟他说的话用POST传给他,记得刚进第二关有个关键词guding。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307153812865-1652761309.png
要用DELETE方法把他身上的chongzi弄掉,加个参数。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154030947-661328400.png
得到新路径/Level2_END,访问一下,查看提示需要修改User-Agent。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154231793-1022155575.png
将User-Agent改为CycloneSlash,提示假把式、盗版货。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154331978-2111766129.png
豆包搜索CycloneSlash关键词,有发现。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154434486-1763374380.png
改为CycloneSlash/5.0,提示需要DashSlash。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154511677-257880713.png
在User-Agent中再添加一个DashSlash/5.0。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154639526-46260119.png
访问新路径,拿到flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307154709293-2085661673.png
Week2-Misc

美妙的音乐

直接用Audacity打开就能看到flag{thi5_1S_m1Di_5tEG0}。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306121451764-515782136.png
OSINT:威胁情报

微步在线直接搜索hash值。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306122950421-1549243463.png
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306123650903-1395827744.png
可以得到APT组织为Kimsuky,通信C2服务器为status.geotrust.com、alps.travelmountain.ml、www.korea.com中的一个。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260306123807809-1145971304.png
编译时间为2021-03-31,经过尝试最终flag为flag{kimsuky_alps.travelmountain.ml_2021-03-31}
星期四的狂想

导出所有的http对象,再某几个文件里能看到相似的代码。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260310190449069-1313529078.png
对flag每10个字符进行了反转或rot13编码,可能还对它进行了base64编码后赋值给cookie。全局搜索token关键词,在第521条流量中看到字符串R2FYdDNaaHhtWlMwS21TR0szRVZxSUF4QVV5c0hLVzlWZXN0MllwVmdDOUJUTlBaVlM9PQ==。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260310190933098-305795246.png
对其进行一次base64解码,得到的内容去除掉最后两个等号,刚好是50位,用脚本将所有的可能性都还原。
import itertoolsimport base64import codecsorigin_str = "GaXt3ZhxmZS0KmSGK3EVqIAxAUysHKW9Vest2YpVgC9BTNPZVS"part_1 = origin_str[:10]part_2 = origin_strpart_3 = origin_strpart_4 = origin_strpart_5 = origin_strpart_1_reverse = part_1[::-1]part_2_reverse = part_2[::-1]part_3_reverse = part_3[::-1]part_4_reverse = part_4[::-1]part_5_reverse = part_5[::-1]part_1_rot = codecs.encode(part_1, 'rot_13')part_2_rot = codecs.encode(part_2, 'rot_13')part_3_rot = codecs.encode(part_3, 'rot_13')part_4_rot = codecs.encode(part_4, 'rot_13')part_5_rot = codecs.encode(part_5, 'rot_13')part_1_lst = part_2_lst = part_3_lst = part_4_lst = part_5_lst = # 生成所有的排列组合length = 5permutations = list(itertools.product(, repeat=length))perm_list = for perm in perm_list:    temp_str = part_1_lst] + part_2_lst] + part_3_lst] + part_4_lst] + part_5_lst]    padding_needed = (4 - len(temp_str) % 4) % 4    temp_str += "=" * padding_needed    print(temp_str, base64.b64decode(temp_str))运行完之后,只有一项最符合。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260310193256262-1682523117.png
日志分析:不敬者的闯入

在日志里搜索200,代表该条请求是成功的。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260310194037974-1104594563.png
在admin目录里找到了webshell,打开就能获得flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260310194114798-99604187.png
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260310194126402-1482355096.png
Week2-Web

DD 加速器

非常简单的rce漏洞,直接采用;或者|进行绕过。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307155613224-693776588.png
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307155634154-971419611.png
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307155701138-177236737.png
是个假flag,查看环境变量拿到flag。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307155831602-1774791829.png
真的是签到诶

代码审计,@eval($encoded);存在任意命令执行漏洞,只需要让$encoded的值为我们需要执行的命令即可。
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307160227304-1974573762.png
代码逻辑如下:

[*]先进行base64解码;
[*]再执行自定义atbash函数;

[*]如果字符不是字母,直接拼接
[*]如果字符是字母,对其进行相应偏移量的移动转换成另一个字母。如:a->z,b->y,c->x,d->w,A->Z,B->Y,C->X,D->W.
https://img2024.cnblogs.com/blog/3369335/202603/3369335-20260307162012796-615046816.png

[*]然后替换空格;
[*]最后再进行rot13编码。
构造payload直接逆着逻辑就可以了。
页: [1]
查看完整版本: 西电CTF平台——NewStar CTF 2025