游客发表

网络攻防大赛试题

发帖时间:2026-10-17 04:47:31

去年某高校CTF校赛,网络有一道题让全场两百多支队伍卡了整整四十分钟。攻防题目本身不复杂:给了一个登录页面,大赛没有任何提示,试题flag就藏在数据库里。网络大部分人的攻防第一反应是SQL注入,' or 大赛1=1-- 一顿猛怼,结果全被WAF拦了。试题真正解出来的网络那几支队伍,走的攻防是另一条路——他们发现登录失败时返回的报错信息里,响应时间有微妙差异,大赛正确用户名比错误用户名的试题响应慢了大约80毫秒。这就是网络时间盲注的变体,但出题人故意把payload过滤做得很粗糙,攻防只拦了常见的大赛union和select关键字,却没管sleep()函数。

网络攻防大赛的题,说到底就是在模拟真实渗透场景。但和真实环境比,比赛有个天然优势:你知道一定有解,而且出题人一定留了后门。这个后门可能是某个忘了删的测试接口,可能是某个版本号的中间件存在已知CVE,也可能就是一段逻辑写得稀烂的验证代码。我见过最离谱的一道题,flag直接写在robots.txt里,文件名改成了flag_is_here.txt。你说这算题吗?算。但它考的不是技术,是你有没有顺手看一眼robots。

Web方向永远是参赛人数最多的。原因很简单,门槛低。会点HTTP协议,装个Burp Suite,就能上场比划两下。但真正拉开差距的是信息收集阶段。很多队伍一上来就盯着输入框,恨不得把每个参数都注一遍。老手会先跑一遍目录扫描,看看有没有备份文件、编辑器残留、.git泄露。去年强网杯有一道题,www.zip就摆在根目录下,下载下来解压,源码里数据库密码明文写着。你说这题难吗?不难。但就是有人没扫到。

逆向和Pwn的题,画风就完全不一样了。参赛队伍数量直接砍半,能做出题的更少。我旁观过一次线下赛,Pwn区有个哥们儿对着IDA Pro盯了三个小时,最后发现漏洞点在read函数没有检查长度,栈溢出偏移量算出来是72。他写exp的时候手都在抖,不是因为紧张,是空调太冷。这种题考验的是耐心和对底层机制的理解。你光会Python不行,得懂汇编,得知道函数调用约定,得会调gdb。门槛摆在那,跨过去的人自然少。

密码学题目经常被低估。很多人觉得不就是RSA、AES那点东西吗?真拿到题就懵了。有一次给了一个RSA的公钥和密文,e=3,n特别大。正常思路是分解n,但n有1024位,怎么分?出题人考的是低加密指数攻击,因为m^3 < n,直接对密文开三次方就行。这题要是没见过类似套路,想破头也做不出来。但见过一次,下次就是秒杀。所以打CTF,刷题量很重要,但更重要的是赛后复盘。每道没做出来的题,看完writeup都得问自己一句:这个知识点我到底会不会?

杂项题是最让人又爱又恨的。图片隐写、音频频谱、流量分析、内存取证,什么都可能出。有一次给了一个wireshark抓包文件,里面全是USB流量。你得先把鼠标和键盘的流量分离出来,键盘流量每8个字节一组,根据HID规范还原按键。鼠标流量更麻烦,要画轨迹图。最后轨迹画出来是一串字母。这种题考的是知识面广不广,跟智商没关系,就是见没见过。我认识一个打杂项特别厉害的人,他的方法很笨:把所有常见的隐写工具都装了一遍,每个都拿样本试,试到形成肌肉记忆。

比赛打多了会发现一个规律:题目难度和出题人想考的知识点往往不成正比。有些题看起来花里胡哨,其实核心就一行代码。有些题界面简陋得不行,点进去发现是道硬核堆题。判断一道题值不值得花时间,我的经验是看分值。100分的题,最多给15分钟。超过时间没思路,果断换题。这不是怂,是策略。比赛时间有限,死磕一道题的结果往往是后面简单的题也没时间做。

最后说个真事。某次省赛,有道Web题一直没人做出来。比赛快结束时,一个队伍提交了flag。裁判问怎么做的,答:扫到了源码泄露,但源码里数据库密码是错的。于是他们试了试把密码字段反过来,居然对了。出题人后来承认,那是他随手写的,自己都忘了。你看,攻防比赛有时候就这么荒诞。技术很重要,但运气和脑洞,也是实力的一部分。

    热门排行

    友情链接