HNUCTF2024新生杯writeup

This post is not yet available in English. Showing the original version.

March 5, 2025

Table of Contents
Table of Contents

HNUCTF2024新生杯writeup

HNUCTF新生杯——来自不睡觉的新生MOMOsleeping的wirteup 这是一篇留档,为HNU2024年12月的一场新生杯writeup。 也是我的第一场CTF。

基本信息

平台id:Moyuin 排名:第8名

解题情况

Misc

1.Misc 签到

复制粘贴即可。

HNUCTF{Welcome_to_HNUCTF2024!}

2.Misc 网络鲨鱼

上网搜索后发现是一个网络嗅探包,使用Wireshark打开文件,在一堆files not found中发现这个http流量get的有点特别。 猜测是base64加密,解码后得到。

HNUCTF{w1r3sh4rk_4n4lys1s}

3.Misc bob_traffic

同样是网络嗅探包。 利用wireshark直接去分析tcp和http的get,发现有一个特殊流量(唯一的,显示f!ag,打开看看发现) 得到flag。 与上一题解题思路重复了,也许上一题的各大http流量里面藏有所玄机?

HNUCTF{pcapng_Zcpuatre_traffic}

4.Misc 新佛经

打开txt是一个hex编码,使用cyberchef解密得到

TFJZR1hKe2E2blIzaWdfcTBWM19JcmcwZ01yOX0=

拖过去base64解密,得到

LRYGXJ{a6nR3ig_q0V3_Irg0gMr9}

什么玩意儿? 迷茫中看到题目说:

听闻凯撒贝斯。知晓16与string的轮回。

贝斯是指base64,那么凯撒就是… 凯撒密码?尝试凯撒密码一步一步解决。 遍历4个加密位移后得到想要的结果。

HNUCTF{w6jN3ec_m0R3_Enc0cIn9}

5.Misc Tetris

经典本地游戏CE修改器刷分咯。 用ce修改这个游戏,跟着网上教程来。 先得几分然后next scan最终得到这两个address。 Change一下变成10000,得到题目要求“10000分得到flag”。 把value改到10000以上的数,然后让乱玩让gameover,之后弹出来: 得到flag。

HNUCTF{#31c0m3_t0_HN#CtF_2024_eX1JT0O1} 这里使用非代码块会出渲染问题…{和#的组合太恐怖

6.Misc git_leak

打开下载的文件,看见flag.txt打开: 那我就下一个Typora吧。学长有心了,给新生这样的小建议。 说里有个flag,开找“这里”,题目也说了是“git leak”。 刚好,打开.git翻找,发现有一个文件叫flag,说明git里面有有关flags的记录! 打开得到: 刚好vscode里面有一个git插件,就导入进去看看记录吧。 Flag在git里面leak咯。

HNUCTF{y0u_h4ve_f1nd_th3_g1t_l34k}

Crypto

1.Cypto Buddha

佛曰解密为base64 Base64解密即可

HNUCTF{buddha_2c5f12b7-a95f-4c22-9372-1e320b297f49}

2.Crypto ebg13

Base64解密 加凯撒密码

HNUCTF{rot_is_fun_e8057890-1e42-4c61-9e57-4ad8c218e4c3}

3.Crypto ezrsa

让ai写一个解密rsa的python ,再不断装库之后得到。

HNUCTF{rsa_is_fun_8e4b49fd-070c-473f-a510-ff891b95f56b}

WEB

1.Web ez_sqli

经典sql注入。 经典的用户名:admin’ OR ‘1’=‘1 密码:输入啥都行

HNUCTF{SQL_iNJECTor_4059a701-61a6-4f11-96bd-e6b01e3a3186}

2.Web ez_cmdi

现学curl,理解一下get和post。 看ip,ip后的输入可以当作命令,直接cat flag。 那我们给ip后发送command即可。

HNUCTF{ping_command_091ae904-c702-4b02-9bf6-9d377aa382c6}

3.Web md5:

经典md5= =比较。 根据if条件可以判断要找两个不同但md5相同的字符串 找个md5碰撞对相同的密码和用户名就ok了,这个得去网上找一下。 随便挑一个curl一下输入post传参即可。 输入:

curl -X POST -d "password=QNKCDZO" "http://129.204.78.34:20703?name=240610708"

得到Flag:

HNUCTF{easy_md5_2b34686e-50b2-45e8-9757-e28a94fece1f}

4.Web md5_again:

以为是Name从get变成post,改一下输入curl就行 发现不对! 转头一看发现是严格相等。为=== 由于题目还限定了强制转化字符串比较,因此不能使用数组来绕过,我们需要构造一对md5相同而不同字符的字符串。我们只能使用md5碰撞来实现。 去网上找一下符合要求的,复制粘贴形成post要传的参数。 curl post记得urlencode,把特殊字符传出去。

curl -X POST "http://x.x.x.x:xxxx" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "name=M%9C9h%FF%E0%E3%5C%20%9...%93%D8&password=M%9C9h%FF%E0%E3%5C%20%9...%93%D8"

powershell传入。 得到flag

HNUCTF{md5_again_bcf8de06-3aa5-4c09-9120-4bfeccf0b5a1}

5.Web ez_serialize

看得懂那个网站的php: 传入post的参数为base64可以转化为command指令,那我们直接先ls看看有没有flag,然后cat一下就出来了。 先将命令转化为base64,然后curl传进去。 获取ls:

curl -X POST -d
"data=Tzo10iJteWNtZCI6MTp7cz0z0iJjbWQ103M6NDoibHMgLyI7fQ=="
http://129.204.78.34:20738/

cat flag:

curl -X POST -d
"data=Tzo10iJtewNtZCI6MTp7cz0z0iJjbwQi03M60ToiY2F0Ic9mbGFnIjt9" http://129.204.78.34:20738/

HNUCTF{easy_serialize_af79f24b-7638-4e49-b60d-08ac1431d690}

PWN

1.Pwn command injection

nc连接到ip,这不用说。 获取command权限后,但是发现ls和cat没反应。 但是看了看规则后,显示==;==后的命令会进行。 诶,那是不是说明 ;前面的指令无法执行,后面的指令可以进行?然后就尝试 ;cat flag了一下,结果就出来了

HNUCTF{u_have_completed_the_command_injection_28918ec949db}

Reverse

1.Reverse: ez_reverse1

签到题就要有签到题的样子,在网上看看reverse签到题一般什么样,然后学习。 先下载神器ida pro,再跟着做

 HNUCTF{W3lcome_t0_HNUCTF}

OSINT

1.Osint here is

照片里可以看到: 虎踞龙盘在此间;灵秀聚钟人莫识 在bing搜索一下发现一篇介绍韶山滴水洞引用这句诗的新闻。(顺便感慨一下bing的强悍爬虫…已经把这个博客的文章给爬取了) 结合这里的山环境,可以合理猜测一下这个地点就是滴水洞景区,搜索一下它的票价。 根据flag所给规则,写入正确:

HNUCTF{dishuidong_O3!nT_40.00}

2.Osint where_are_i

关键词 云巴,磁悬浮,空旷,十字路口。打开百度地图搜索就看得见一个云巴旅游磁悬浮线,观察附近街景直接确定。 并且周围还有相同的建筑物,更加笃定了。 找到街景最近的十字路口。 得到flag。

HNUCTF{112.924_28.096_Os!nT}

3.Osint where_are_i_again!

通过12306查询D3009这辆车 ,对比时间,粗略判断这一站是南京南 然后从南京南找到75为末尾号,终点站为合肥南,始发站为XX南的列车,恰好就这一个: 注意flag是始发站的车次号就ok,G7675始发站为G7674,得到flag。

HNUCTF{0siN7_G7674_nanjingnan}

4.Osint see_see_need

去bing搜搜信安协会会长L1uYun 找到了他的github! 然后在他的blog里看他最近的submit的文件 发现了 交上去发现不对,很怪,结合聊天记录说有干扰项,另辟思路看看其他大佬的。 发现了一个健身学长yulv706的github仓库! 其实还有一个派大星学长的,但是派大星学长直接说是HNUCTF{fake_flag},故直接提交可用的flag。 因为健身佬的blog好久没更新了,所以我只要看最新的更新一直点一直点,然后看到HNUCTF复制粘贴就好了。或者直接去他的博客检索HNUCTF,也可以得到含有这个flag的博客文章。顺便学到了一些ctf知识 提交成功。 大家平时也要注意自己的个人信息能不能直接被搜索引擎搜到哦…😑

HNUCTF{OSINT_leads_to_flag}

总结

作为新生打这场ctf还是很开心的!这一次新生杯严格来说算是自己的第一次网安的比赛,感觉和acm很不一样,也更好玩一些,像一系列趣味游戏! 前面的大佬还是超级多!!有ak的!太强了,和前一名的这位新生大佬差快800分了,但是作为新生,第一次尝试这场比赛我已经很知足,边打边学新知识,实践出真知! 虽然reverse和pwn没写出来几个哈哈哈,但是web和misc做了很多,还是很感兴趣的,以后要选比赛方向的话,这两个很有趣,可能会选。 但是pwn的操作很像 《Hacknet》的玩法,这个更符合我对hacker的印象了,超级酷,reverse有点难难的,涉及到编译基础,也激励着我在之后的学习中多多了解。

收获很多,期待以后的前行路。