西电CTF平台——NewStar CTF 2025

[复制链接]
发表于 2026-3-11 12:39:34 | 显示全部楼层 |阅读模式
Week1-Misc

Sign in

直接复制粘贴即可。

EZ_fence

打开图片,一串字符串rdh9zfwzSgoVA7GWtLPQJK=vwuZvjhvPyyvjnMWoSotB。

随波逐流一键解码,没有符合的效果。再看标题,说图片是残破的,肯定有东西被隐蔽了,找到代表宽高的字节改大一点。

打开有新发现,得到自界说编码表8426513709qazwsxedcrfvtgbyhnujmikop1QWSAERFDTYHGUIKJOPLMNBVCXZ-_。

栅栏数为4,base64解码用自界说编码表,解码得到New5tar_zjuatrojee1mage5eed77yo#。

照片里藏着暗码,16进制打开,在末了能看到一个压缩包,提取出来。

是个加密压缩包,将base64解码得到字符串作为暗码即可解压,打开word拿到flag。

Misc 城邦:压缩术

根据提示,暗码是由小写字母和数字构成,长度为6位,开始爆破得到暗码为ns2025。

打开tips.txt,提示下一个压缩包没有暗码,但是还要输入暗码,大概是伪加密,将09改为00。

得到key.txt和flag.zip,在flag.zip中也有一个key.txt,两个文件的crc值都一样,是明文加密。(CRC值盘算)

将key.txt压缩,开始明文爆破。

解压打开flagggggg.txt即可拿到flag。

OSINT:天空 belong

flag格式为flag{航班号_照片拍摄时所在省份的省会都会_拍摄装备的制造商},分别得到这三个字段即可。右键图片查察属性,制造商为Xiaomi。

飞机飞翼上有B-7198,搜索关键字,查到相干网页,看到照片拍摄时间为2025-08-17 15:03分,筛选一下,只有一个航班符合。(https://www.flightera.net/zh/planes/B-7198/20-Aug-2025_01_50)

看下详情,航班号为UQ3574。

航班的到达时间为15:17,止境站为长沙市,看下途经的离长沙市较近的都会,有三个。

颠末实行为武汉市,以是flag为flag{UQ3574_武汉市_Xiaomi}。
前有笔墨,以是搜索很有用

Track1为零宽字符隐写,得到ZmxhZ3t5b3Vf。

base64解码。

Track2中的txt为brainfuck解码,得到brainfuckisgooooood,docx看到关键字咏雪,就是SNOW隐写了,将docx中的内容复制到1.txt。

摩斯解码得到0V3RC4ME_。

Track3统计词频,只须要获取到}之前的就可以cH@1LenG3s}。

拼接起来即可flag{you_0V3RC4ME_cH@1LenG3s}。
我不要革命失败

用windbg读取dmo文件,输入!analyze -v下令。


flag为flag{CRITICAL_PROCESS_DIED_svchost.exe}。
Week1-Web

multi-headach3

访问看到关键字ROBOTS。

访问robots.txt,提示有个hidden.php。

直接去访问hidden.php,会跳转到index.php页面。

用burp抓包去访问,在相应头中拿到flag。

strange_login

页面提示1=1,就知道是SQL注入了,直接全能暗码登录拿到flag。用户名输入admin' or 1=1#,暗码任意填,回车即可登录乐成。

别笑,你也过不了第二关

第一关只须要30分,第二关须要1000000分,靠人工肯定是不可了。查察源代码。

须要访问flag.php,用POST方法,再传个参数即可获取服务器返回的数据,构造数据包。
  1. POST /flag.php HTTP/1.1
  2. Host: 127.0.0.1:54705
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  5. Accept-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.2
  6. Accept-Encoding: gzip, deflate
  7. Connection: close
  8. Cookie: found_hidden=1; PHPSESSID=rgrqc01iu9i1noggel2m3c3039
  9. Upgrade-Insecure-Requests: 1
  10. Sec-Fetch-Dest: document
  11. Sec-Fetch-Mode: navigate
  12. Sec-Fetch-Site: none
  13. Sec-Fetch-User: ?1
  14. If-Modified-Since: Sat, 30 Aug 2025 06:08:57 GMT
  15. If-None-Match: "1946-63d8ef9459040-gzip"
  16. Priority: u=0, i
  17. Content-Type: application/x-www-form-urlencoded
  18. Content-Length: 17
  19. score=10000000000
复制代码
发送哀求包得到flag。

宇宙的中心是 PHP

查察页面源代码,看到s3kret.php文件。

访问一下。

只须要满足intval($answer)!=47&&intval($answer,0)==47就能拿到flag,直接利用16进制绕过,给newstar2025赋值为0x2f。

我真得控制你了

页面克制利用开发者工具,直接抓包,看相应包提到next-level.php。

访问next-level.php,相应代码为302是个重定向,直接跳转。

跳到weak_password.php,欣赏器访问一下,是个弱口令。


抓包举行爆破,得到用户名为admin,暗码为111111,登录之后,看到代码。
  1. [/code]代码审计,须要满足以下几个条件。
  2. [list]
  3. [*]允许的字符:0-9、*、\、/、(、)、空缺
  4. [*]不能是纯数字或空缺
  5. [*]将input的值赋给test,然后判定test=2025就能得到flag。
  6. [/list]故payload:newstar=45*45。
  7. [align=center][/align]
  8. [size=5]黑客小 W 的故事(1)[/size]
  9. 须要800吉欧才气购买剑技,直接抓包修改count参数。
  10. [align=center][/align]
  11. 跳到下一关与蘑菇老师对话,看提示须要get传参shipin=mogubaozi。
  12. [align=center][/align]
  13. 蘑菇老师说把想跟他说的话用POST传给他,记得刚进第二关有个关键词guding。
  14. [align=center][/align]
  15. 要用DELETE方法把他身上的chongzi弄掉,加个参数。
  16. [align=center][/align]
  17. 得到新路径/Level2_END,访问一下,查察提示须要修改User-Agent。
  18. [align=center][/align]
  19. 将User-Agent改为CycloneSlash,提示假把式、盗版货。
  20. [align=center][/align]
  21. 豆包搜索CycloneSlash关键词,有发现。
  22. [align=center][/align]
  23. 改为CycloneSlash/5.0,提示须要DashSlash。
  24. [align=center][/align]
  25. 在User-Agent中再添加一个DashSlash/5.0。
  26. [align=center][/align]
  27. 访问新路径,拿到flag。
  28. [align=center][/align]
  29. [size=6]Week2-Misc[/size]
  30. [size=5]美好的音乐[/size]
  31. 直接用Audacity打开就能看到flag{thi5_1S_m1Di_5tEG0}。
  32. [align=center][/align]
  33. [size=5]OSINT:威胁谍报[/size]
  34. 微步在线直接搜索hash值。
  35. [align=center][/align]
  36. [align=center][/align]
  37. 可以得到APT构造为Kimsuky,通讯C2服务器为status.geotrust.com、alps.travelmountain.ml、www.korea.com中的一个。
  38. [align=center][/align]
  39. 编译时间为2021-03-31,颠末实行终极flag为flag{kimsuky_alps.travelmountain.ml_2021-03-31}
  40. [size=5]星期四的狂想[/size]
  41. 导出全部的http对象,再某几个文件里能看到相似的代码。
  42. [align=center][/align]
  43. 对flag每10个字符举行了反转或rot13编码,大概还对它举行了base64编码后赋值给cookie。全局搜索token关键词,在第521条流量中看到字符串R2FYdDNaaHhtWlMwS21TR0szRVZxSUF4QVV5c0hLVzlWZXN0MllwVmdDOUJUTlBaVlM9PQ==。
  44. [align=center][/align]
  45. 对其举行一次base64解码,得到的内容去撤消末了两个等号,刚好是50位,用脚本将全部的大概性都还原。
  46. [code]import itertools
  47. import base64
  48. import codecs
  49. origin_str = "GaXt3ZhxmZS0KmSGK3EVqIAxAUysHKW9Vest2YpVgC9BTNPZVS"
  50. part_1 = origin_str[:10]
  51. part_2 = origin_str[10:20]
  52. part_3 = origin_str[20:30]
  53. part_4 = origin_str[30:40]
  54. part_5 = origin_str[40:]
  55. part_1_reverse = part_1[::-1]
  56. part_2_reverse = part_2[::-1]
  57. part_3_reverse = part_3[::-1]
  58. part_4_reverse = part_4[::-1]
  59. part_5_reverse = part_5[::-1]
  60. part_1_rot = codecs.encode(part_1, 'rot_13')
  61. part_2_rot = codecs.encode(part_2, 'rot_13')
  62. part_3_rot = codecs.encode(part_3, 'rot_13')
  63. part_4_rot = codecs.encode(part_4, 'rot_13')
  64. part_5_rot = codecs.encode(part_5, 'rot_13')
  65. part_1_lst = [part_1_reverse, part_1_rot]
  66. part_2_lst = [part_2_reverse, part_2_rot]
  67. part_3_lst = [part_3_reverse, part_3_rot]
  68. part_4_lst = [part_4_reverse, part_4_rot]
  69. part_5_lst = [part_5_reverse, part_5_rot]
  70. # 生成所有的排列组合
  71. length = 5
  72. permutations = list(itertools.product([0, 1], repeat=length))
  73. perm_list = [list(p) for p in permutations]
  74. for perm in perm_list:
  75.     temp_str = part_1_lst[perm[0]] + part_2_lst[perm[1]] + part_3_lst[perm[2]] + part_4_lst[perm[3]] + part_5_lst[perm[4]]
  76.     padding_needed = (4 - len(temp_str) % 4) % 4
  77.     temp_str += "=" * padding_needed
  78.     print(temp_str, base64.b64decode(temp_str))
复制代码
运行完之后,只有一项最符合。

日记分析:不敬者的突入

在日记里搜索200,代表该条哀求是乐成的。

在admin目次里找到了webshell,打开就能得到flag。


Week2-Web

DD 加快器

非常简朴的rce弊端,直接接纳;大概|举行绕过。



是个假flag,查察情况变量拿到flag。

真的是签到诶

代码审计,@eval($encoded);存在恣意下令实行弊端,只须要让$encoded的值为我们须要实行的下令即可。

代码逻辑如下:

  • 先辈行base64解码;
  • 再实行自界说atbash函数;

    • 假如字符不是字母,直接拼接
    • 假如字符是字母,对其举行相应偏移量的移动转换成另一个字母。如:a->z,b->y,c->x,d->w,A->Z,B->Y,C->X,D->W.


  • 然后更换空格;
  • 末了再举行rot13编码。
构造payload直接逆着逻辑就可以了。
[code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表