Skip to main content

🕸️CNSS 2024 Web Guideline

在 CTF 竞赛中,Web是占比重很大的一个方向,也可以说是最重要的 。Web类的题目种类繁多,知识点细碎,时效性强,能紧跟时下热点漏洞,贴近实战。同时网安领域一些必要的概念都可以在Web里学到,如果刚入门的宝宝不知道选什么方向,选WEB总没错

🎶WEB方向简述

由于大部分的任务都和“网络”有关,Web方向更像是符合大众刻板印象的Hacker形象:在电脑前飞速敲击键盘,轻而易举地攻破复杂的防火墙,窃取敏感信息或瘫痪整个系统。虽然Web确实是干这些的,但是现实中的Web安全工作更多是关于识别和修复网站和应用程序中的漏洞,确保数据传输的安全性,以及防范其他hacker的攻击。

与其他方向相比,Web同样需要高超的技术和细致入微的分析能力,但实际的工作内容往往更系统化和规范化,涉及大量的安全审计、风险评估和防御策略的制定。意味着你可能花了一整个晚上一行一行的审计人家代码试图找出漏洞,但最后却可能无功而返,感觉就像在代码海洋中捞针,结果捞出了五花八门的东西,就是没有针。

💖如何入门

  • 善用文档,善用搜索引擎,学会提问的智慧<优雅而不烦人的骚扰出题人>,这一点可以说是Web领域里最重要的能力,基本上99%的问题都能在网上找到各种各样的解答,这对自学能力是一个很大的锻炼和考验
  • 了解基本的 Linux 知识,会使用基本命令(如 cd ls cat 等),可以尝试学习一种可以在 Linux 下使用的文本编辑器 < 推荐学习一下Vim >
  • 了解基本的计算机网络知识,能读懂 HTTP 报文
  • 对前端语言有大致了解,可以读懂 HTML、JavaScript,参考 MDN Web 文档
  • 学习一种或几种后端语言,建议从 CTF 比赛中最常见的 PHP 入手,至少做到能读懂代码,再尝试自己构建简单的页面,之后可继续学习 Python(比赛中很常见)、JAVA 等不同的后端语言,参考 PHP ManualFlask 文档,最近比赛考的JAVA方向比较多,建议可以多学习一点。
  • 学习并掌握一种脚本语言(如 Python),了解其与 Web 相关的常用库(如 Python 的 Requests),运用脚本语言解决 Web 相关问题,Python 学习参考 Python3 - 菜鸟教程Requests 文档
  • 学习数据库相关知识及 SQL 语言,了解 MySQL 数据库的基本使用,参考 SQL - 菜鸟教程MySQL - 菜鸟教程
  • 学会自己搭建靶场或者通过 Docker 复现题目环境 参考 小皮面板Docker - 中文网DVWASQLib
  • 做题,多看别人的 Write-up ,多找找大佬博客收藏起来供着,说不定能找到往年你室招新题writeup哦<某种意义上来说这不起眼的一点最重要,上面的不管都行,以这个为基础去学习也算是一条路子>
  • ……

😴相关资料

过一下基础知识,选择性地学习就够了。重点在于实践。

  • CTF Wiki <Web🐶过一下目录知识,这个 wiki 上的 Pwn 更适合学习>
  • CTFHub
  • 看雪安全
  • Web安全学习笔记
  • Seebug
  • <一些靶场> XCTFNSSCTFBUUCTFBugku CTFSQLi-labsxss-labs
  • <一些经典书籍>
    • 《Web安全深度剖析》 相对讲得基础一点 <学习常见基础漏洞点,比下面那本开头讲一些安全概念来的更直接>
    • 《白帽子讲Web安全》 <经典之作,与上面那本属于同一类>
    • 《Web之困:现代Web应用安全指南》 <没看过,不作评述>
    • 《Web安全学习笔记》 基本知识可以简单过一遍了解下 <梳理了一些目录,学 Web 还是得深入去理解掌握→多尝试、复现>
  • ......

🧐常用工具

  • aliyun 如果觉得有必要,可以准备一台轻量级的服务器,很多题型需要公网ip
  • Burp Suite
  • Ant Sword
  • sqlmap <用用得了,千万别成为脚本小子啊喂>
  • Nmap
  • Chrome/Firefox 开发者工具及常用插件(如 Hack Bar
  • GitHub 上各种奇奇怪怪的脚本
  • 渗透工具 Metasploit , CobaltStrike, 包括必要的时候使用的Kali Linux
  • ......

😇如何学?怎么学?应该注意什么?

Guideline 真正的精华总是在碎碎念的部分的

How to

怎么学 是很多人的疑问,在请教过北方姐姐之后,小编发现有如下的一些学习方式:

  • 看书、看视频
  • 刷题、学习大佬博客
  • 直接啃 paper ?

归根结底,每个人都有自己的学习方式,高效的自主学习能力是你存活的保障。

某知名大黑阔、CTFer 也曾说过 CTF 比的就是信息快速检索和吸收的能力。

CTF不同于很多竞赛,比赛期间是联网的,那么使用搜索引擎、各种知识库、甚至AI工具等的能力就会无形中一并被列入考察范围。Web方向尤甚,因为Web的中遇见的各种框架各种技术迭代速度都非常快,你将会在招新题中常常遇到的php代码审计已经可以说是老掉牙的东西了。正因为如此,每时每刻全世界都有无数大黑客——不论红蓝阵营——都在渗透、审计、测试来寻找和修复新的漏洞,每年都会有上千个CVE(Common Vulnerabilities and Exposures,公共漏洞和暴露)被发布。也就是说,你遇到的可能会是这个月刚披露的漏洞,而这些漏洞都是其他网络安全从业者翻遍代码找到的漏洞,在比赛中如果不会检索,就没有做出这些题目的可能。总的来说,Web方向不是一个能有非常有条理的体系的方向,需要拥有很强的信息搜集、检索能力高效的自主学习、转化能力才能达到一个比较高的境界。

不过目前普遍的人认为看书比视频来得快,刷题比啃书来得快,

正确与否不予评述,根据本人经验来说,直接做题会让你快速学习并应用到某一个具体的点上,而看书更有利于构建体系化的知识与视角,至于视频,则和视频的质量关系很大。好,这一届负责人站出来说话了。小编最开始CTF入门的时候完全看不懂题,看书一页也看不懂(跟大家的情况也差不多),但是通过不断的做题和搜索逐渐完善了Web的知识框架,顺利通过了面试。

不管怎么说,实践、实践、实践出真知实践也忘了的话就 take notes & review <记笔记和产出writeup是检验实践最好的方式>

保持热烈,还有对于技术的热爱与探索💖

大黑阔真的泰裤辣!

What to

私以为 如何入门 里的内容只是参考,照着上面那样去一块儿块儿看知识不适用于快速拔高技能形成总的体系概念,其实 Web 没有绝对的学习路线,究其原因还是内容太多太杂,遇水涉水、见山开山,遇到问题快速搜集信息并掌握知识然后解决之,这就是一个CTFer的基本素养。

※我需要做什么 VS 我做什么:

  • 需要做的自然是进入这个领域对你提出的知识与技能要求,根据学习路线一步步去修炼自己,这也是常规意义上给出的一些学习建议、知识点——在 Web 安全这一块希望你能尽快掌握常见的漏洞点(相信以你的信息检索能力应该能找到他们都是些什么)。从本人经历来谈,遇到一个漏洞点学一个,这样结合实际点位更容易吸收掌握并且能有即时应用的正反馈保持学习热情,如果你习惯顺着书目先把大部分点位阅读一遍也可以,在不长也不短的招新期间有很多方式去提升自己。
  • 如此也自然引出了“我要做什么“的话题,多姿多彩的大学生活里请给到自己合理的规划。如果你对计算机的世界都还没有总括的认识的话,一些基础的信息、技能都是要主动去获取的。在有足够的信息的基础上才能更清晰的认知到自己是否对某个领域有兴趣,从而发展成主观上的“我要”。对不同方向有了更多的了解(包括但不限于本室招新方向,还有比如机器学习、嵌入式开发、游戏开发等),主动去汲取知识才是可取之道。

<这个话题也囊括了整个大学生涯规划,就业、保(考)研、出国?自己的专业本科就业的形势怎么样?电子科大专业保研率?出国的需求还有出路有哪些?在自己当前专业的领域又有哪些发展方向,不仅仅是网络安全这一块,IT 这个行业技术迭代过快,很多东西老师课堂上教不了或不够深入的都需要自己去学,这些都需要去了解后确定自己喜欢做的。既然能进群并将这份文件看到这儿,相信你是有一定的意识去获取信息的😆,加油去找到自己感兴趣的方向并为之努力吧(千万不要随波逐流看大家都做啥我就做啥最后陷入迷茫)>

当然,在学习过程中感到迷茫是很正常的。小编就因为太菜了什么也不会而经常迷茫无助偷偷emo,对未来的路,对目前的现状,对过去的颓废······但是小编相信,只有有一个保持热爱的心,坚持朝着大黑阔的方向努力,就一定会有收获。当你感到迷茫的时候,可以看看《知道创宇》的这份技能树,的确,web又多又杂,CTF每个方向还各有不同,安全这条路太广也太漫长了,但是小编希望每个人都能找到自己最喜欢的领域,愉快的开启安全学习之路!

还有很多有意思的东西不是在知识树上的: Windows Terminal 舒爽眼睛再添上WSL、VPS,如何自建梯子,拥有一个持续更新的博客的好处,拒绝流氓全家桶、国产套壳浏览器,为什么用 Google 不用 Baidu,为什么 CSDN 盛产劣质抄袭文章,怎么玩路由器透明代理,局域网做一个云盘,做一个私人 BT 下载器,Tampermonkey 的玩法,IDM下载的优势,装一个 Arch Linux,树莓派怎么玩,python 实现成电讲坛抢票。。。那些可能更倾向于 Geek 的玩法(作为一个 Web 手难道不应该对什么都感兴趣吗)看起来扯远了其实还是在说发挥主观能动性的事,在这个过程中也能有更多的体会。

🔨敲打负责人

如果在多次尝试搜索与实践之后,依然遇到什么难以解决的问题或者有建设性的意见,欢迎私聊负责人 @Anff33 @Fanllspd @yuuki