CTF之WEB学习路线规划
前言
受大佬Lzer0Kx(公众号:LK安全)启发,打算整一篇关于CTF-web的学习路线的分享。当然也算是给一些刚入门的小白的一些学习方向,不至于不知道学啥。废话少说,开整!
以下的所有内容属于我个人的经验分享,且只适用于想入门的小伙伴,以下内容均不会推荐教程,硬要推荐的话请认准 https://www.bilibili.com/
语言篇
这里说的语言基础真是基础,而不是要让你达到可以独立开发一个项目的地步
有一说一,夯实的语言基础是网络安全的必备技能,在学习的过程中我们会接触到各种各样的语言,像c,c++,python,php,html,js,java
等等。所以学习的第一步,选择一门编程语言入门,并进行一定的深入学习,那之后学习其它语言的时候会达到事半功倍的效果,因为你会发现只是一些语法以及处理方式的改变,其逻辑是大体相同的。以下推荐入门学习的编程语言
Python
python作为业内公认的胶水
,且深受广大Ctfer的欢迎,是入门语言的不二之选。其简易的写法以及各种集成库极大方便了ctfer在赛场上的发挥。这里博主推荐python基础语法
搭配着爬虫
去学,这算是一个web手必备的专业素养了
PHP
php由于历史版本的原因,存在着较多的漏洞,算是业内的扛把子了。同时这也是web手最适合磨练自己的语言,因为基础的漏洞基本都跟php沾点边,漏洞的入门学习也都是从php出发的,如果有较好的编程基础,甚至不用专门学习php的语法,看着看着就会了,不会的直接现查就行了
HTML
HTML作为一种超文本标记语言,往往出现在网站代码的编写中。成为web手会的第一件事就是右键查看页面源代码看html藏着什么好东西。HTML的体现就在浏览器中,因此HTML可以在php文件里穿插着写,总之能在浏览器体现就行
总结
有句老话说的好,不懂开发的安全人员不是一个好安全人员,作为一个web手,我们还得了解一个网站的基本架构,并且得自己亲手写一些简单页面,搭一个简易网站。越了解网站,你的硬实力相应的也会越强,不管是在ctf还是在src中都会更加容易的理解本质
网络篇
这里指一些网络协议的学习,其实只列了一种协议,因为入门学习嘛(doge)
HTTP协议
HTTP协议,web手基本一生都在跟它打交道,抓包改包都离不开HTTP的辛勤奉献,什么GET,POST,PUT
请求web手牢记于心,什么cookie,seesion,User-Agent,xxf
web手爱不释手。可以说没有http协议就没有web手
总结
在ctf中其实也就HTTP协议体现的最多,其它的一些协议,例如arp协议,ICMP协议
在网络攻击中会体现出来,或许AWD可能需要此类知识,当然不是说不学,只是暂时可以分个学习先后
漏洞篇
随便网上找一张OWASP-TOP10的图就能知道你该了解的漏洞,这里列举一些基础漏洞
· 信息泄漏
· SQL注入
· 文件上传
· 文件包含
· XSS
· 命令执行
以上漏洞全都学会,就可以试着打一些新生赛了,赛场是最能磨练你所学的技术的地方。当然上面的漏洞可以搭配着网上的一些开源靶场来联手,比如
sqli-labs
,xss-labs
等等
提升篇
过完以上内容,就可以算一个简单的web手了,能够在一些入门赛中风生水起,当然这还远远不够,在打一些稍微中端赛肯定还是会碰壁,这里介绍一些常在较为困难的赛事中的考点。针对以下内容,博主会开个新系列技术分享!!!
PHP反序列化
惊不惊喜,意不意外,又是PHP,但是这次的PHP上强度了,反序列化可能打击过了大部分的web手,因为可能稍微有点晦涩难懂,比较耗脑子。这里推荐y4爷写的反序列化总结,写的嘎嘎好->https://y4tacker.blog.csdn.net/article/details/113588692/。有这一篇就够了!!
SSTI模板注入
常见的SSTI注入出现在python flask框架,php也有smarty框架有这个漏洞,这里就考查你对flask和python类的熟悉程度了,丢个博客->https://blog.csdn.net/LYJ20010728/article/details/120205725
JS原型链污染
这里就考你对js函数的了解程度了,继续丢博客->https://cbatl.gitee.io/2021/10/19/jsprototype/
SSRF
百度百科:
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造,由服务端发起请求的一个网络攻击,一般用来在外网探测或攻击内网服务,其影响效果根据服务器用的函数不同,从而造成不同的影响。
这个漏洞理解起来也稍微有些困难,且利用比较废脑子。
JAVA安全
大头,巨头,这方面的学习不亚于以上所有的加起来了,而且目前ctf困难题的出题似乎都在往java安全出,这里也丢个链接: https://javasec.org/
总结
针对以上技术内容,博主会陆续创作技术分享。敬请期待~
CTF之WEB学习路线规划的更多相关文章
- WEB学习路线2019完整版(附视频教程+网盘下载地址)
WEB学习路线2019完整版(附视频教程+网盘下载地址).适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利.高薪水的职业了.所以现在学习web前端开发的技术人员也是 ...
- Java Web 学习路线
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...
- 零基础快速入门web学习路线(含视频教程)
下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...
- Java Web学习路线
2016-08-22的早上,本是一个很平静的早上,坐在去往公司的公交车上想到了很多之前上学时的点点滴滴,回想起来还真的是耐人寻味啊,当初青春的懵懂,当初的冲动,当初的做事不考虑后果! 也正是这耐人寻味 ...
- 我推荐的 Java Web 学习路线
晚上再 V2 的 Java 的节点看到有人问 Java Web 书籍推荐.我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spr ...
- PHP的学习路线规划
第一阶段:WEB的快速入门 前期入门学习我们需要学一些HTML+CSS+JS前端的一些技术,这个阶段不需要太深入的学习,学习到可以制作出一个像样点的静态页面就可以了.因为大家是学习PHP,对于新人来说 ...
- Linux再学习(一)-学习路线规划
1 抛弃旧文化,迎接Linux命令新文化 Linux第一步,从Windows思维,切换到Linux的"命令行+文件"模式 在Linux中,做什么都有相应命令.一般就在bin或者sb ...
- web学习路线
- 2019最新WEB前端开发小白必看的学习路线(附学习视频教程)
2019最新WEB前端开发小白必看的学习路线(附学习视频教程).web前端自学之路:史上最全web学习路线,HTML5是万维网的核心语言,标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次 ...
- ios 学习路线总结
学习方法 面对有难度的功能,不要忙着拒绝,而是挑战一下,学习更多知识. 尽量独立解决问题,而不是在遇到问题的第一想法是找人. 多学习别人开源的第三方库,能够开源的库一定有值得学习的地方,多去看别的大神 ...
随机推荐
- Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.
$git push origin master 报错: Warning: Permanently added the RSA host key for IP address '192.30.253.1 ...
- Referenced file contains errors (http://mybatis.org/dtd/mybatis-3-config.dtd). For more information, right click on the message in the Problems View and select "Show Details..."
mybatis配置文件报错Referenced file contains errors mybatis的配置文件报错 The errors below were detected when vali ...
- 一个小时,200行代码,手写Spring的IOC、DI、MVC
一.概述 配置阶段:主要是完成application.xml配置和Annotation配置. 初始化阶段:主要是加载并解析配置信息,然后,初始化IOC容器,完成容器的DI操作,已经完成HandlerM ...
- SAP程序发布流程
更改程序名称 如果你想要更改程序名称的话,首先进入程序,关闭编辑,只显示代码 点击重命名就可以了 或者直接输入事务代码se38进入APAP编辑器,输入程序名称,重命名 为程序创建事务代码 事务代码为s ...
- 关于JavaScript每句结尾是否需要添加分号问题
最近在学习JS的时候遇到这么一个问题.由于我之前的学习中一直是写一句JS代码,加一个分号.但是最近我才发现原来JS代码是可以不添加分号的.如果可以不写分号的话会不会更省事呢?于是我在网上查了相关资料整 ...
- Flaks框架(g对象,session,数据库连接池,信号,flask-script,SQLAlchemy(ORM))
目录 一:g对象 简介 1.g对象和session的区别 2.g对象实战代码 二:flask-session(借助于第三方插件连接redis保存session ) 1.方式一: 2.方式二(flask ...
- IntelliJ IDEA中我最爱的10个快捷操作
前言 欢迎关注微信公众号「JAVA旭阳」交流和学习 IntelliJ IDEA提供了一些Java的快捷键,同样也可以帮助我们提高日常的开发效率.关于这些快捷操作,你知道那几个呢? 1. psvm/ma ...
- C语言读写txt文件
写入和读取txt文件 #include<stdio.h> #include<string.h> int main( int argc, char *argv[] ) { int ...
- 含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入)
所谓文无第一,武无第二,云原生人工智能技术目前呈现三足鼎立的态势,微软,谷歌以及亚马逊三大巨头各擅胜场,不分伯仲,但目前微软Azure平台不仅仅只是一个PaaS平台,相比AWS,以及GAE,它应该是目 ...
- Netty-架构设计及入门程序-3
一.原生 NIO 存在的问题 1.NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector.ServerSocketChannel.SocketChannel.ByteBuffer等. ...